Location: PHPKode > projects > Pnyx : des lections virtuelles! > pnyx1.0.1/doc/importer.php
<?PHP
	#########################################################################################
	# Chargement des donnéesécoles.csv dans la base de données de Pnyx						#
	# Auteur : V. Blais																		#
	# Création : 2006-05-08																	#
	# Modification : 2006-05-08																#
	# 																						#
	# Pnyx - une application Web (PHP/MySQL) d'élections virtuelles conçue pour	des	élèves	#
	# du primaire et du secondaire, dans lequel ils sont amenés à faire des	propositions	#
	# en ligne et voter pour leur favorite, sous la supervision d'un enseignant.			#
	#																						#
    # Copyright (C) <2008 - 2009>															#
	# <Service national du RÉCIT de l'univers social de la Commission scolaire de la		#
	# Pointe-de-l'Île>																		#
	#																						#
	# This program is free software; you can redistribute it and/or modify it under the 	#
	# terms of the GNU General Public License as published by the Free Software Foundation.	#
	# This program is distributed in the hope that it will be useful, but WITHOUT ANY 		#
	# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 		#
	# PARTICULAR PURPOSE.  See the GNU General Public License for more details.				#
	# You should have received a copy of the GNU General Public License along with this 	#
	# program as the file LICENSE.txt; if not, please see 									#
	# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.									#
	# 																						#
	# Service national du RÉCIT de l'univers social											#
	# http://www.recitus.qc.ca																#
	# Contact e-mail : steve-hide@address.com												#
	#########################################################################################

	require "../lib/constantes.php";
	require "../lib/lib_fonction.php";
	
	bd_connexion();
	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Pnyx</title>
</head>

<body>
<?
	
	
  /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
if($HTTP_POST_VARS['action'] == "inserer"){
 
 
 #on récupère dans un tableau les id de resposables et le nom de leur école
	$tab_ecole = array();
	 
	$requete_sql = "SELECT resp_id, ecole_id 
					FROM responsable 
					";
	$reponse_resp = bd_executer_sql($requete_sql);
	$i =0;
	while ($ligne_resp = mysql_fetch_array($reponse_resp)){
	
		
		$requete_sql = "SELECT nom 
						FROM ecole
						WHERE ecole_id = \"$ligne_resp[ecole_id]\" 
					";
		$reponse_ec = bd_executer_sql($requete_sql);
		$ligne_ec = mysql_fetch_array ($reponse_ec);
	
		$tab_ecole[$i] = array("resp" => $ligne_resp['resp_id'], "ecole"=> $ligne_ec['nom']); 

		$i++;
	}
 
 
 /* On effaces les données de la table */
 	$requete_sql = "DELETE FROM ecole";
	$reponse_del = bd_executer_sql($requete_sql);
  
  	$requete_sql = "ALTER TABLE ecole AUTO_INCREMENT = 1";
	$reponse_del = bd_executer_sql($requete_sql);
	
	$requete_sql = "DELETE FROM commission_scolaire";
	$reponse_del = bd_executer_sql($requete_sql);
  
  	$requete_sql = "ALTER TABLE commission_scolaire AUTO_INCREMENT = 1";
	$reponse_del = bd_executer_sql($requete_sql);
	
 /* On ouvre le fichier à importer en lecture seulement */
 if (file_exists("ecoles.csv")){
     $fp = fopen("ecoles.csv", "r"); 
 }else
     { /* le fichier n'existe pas */
       echo "Fichier introuvable !<br>Importation stoppée.";
       exit();
     }
     
	$i = 0; 
    while (!feof($fp)) /* Et Hop on importe */{ 
		/* Tant qu'on n'atteint pas la fin du fichier */ 
       	$ligne = fgets($fp,4096); /* On lit une ligne */  
		if ($i == 0){
			$i ++;
		} else{
			/* On récupère les champs séparés par ; dans liste*/
		   	$liste = explode( ";",$ligne);  
		
		   	/* On assigne les variables */ 
		   	if(isset($liste[2])){
				$region = $liste[2];
			}
			if(isset($liste[1])){
				$com_scolaire = $liste[1];
			}
			if(isset($liste[7])){
				$circonscription = $liste[7];
			}
			if(isset($liste[0])){
				$nom = $liste[0];
			}
			if(isset($liste[4])){
				$ville = $liste[4];
			}
			if(isset($liste[6])){
				$code_postal = $liste[6];
			}
			if(isset($liste[8])){
				if(isset($liste[9])){
					if ($liste[8] == "Oui" && $liste[9] == "Oui"){
						$ordre = "Primaire, Secondaire";
					}else if ($liste[8] == "Oui" && $liste[9] == "Non"){
						$ordre = "Primaire";
					}else if ($liste[8] == "Non" && $liste[9] == "Oui"){
						$ordre = "Secondaire";
					}
				}
			}
			if(isset($liste[3])){
				$adresse = $liste[3];
			}
			if(isset($liste[13])){
				$telephone = $liste[13];
			}
			if(isset($liste[15])){
				$fax = $liste[15];
			}
			if(isset($liste[16])){
				$courriel = $liste[16];
			}
			
		if ($region != ""){

			$adresse = addslashes($adresse);
			
			$requete_sql = "SELECT * 
							FROM region 
							WHERE nom = \"$region\"
							";
			$reponse_region = bd_executer_sql($requete_sql);
			$nb_region = mysql_num_rows($reponse_region);
			
			if ($nb_region == 0){
				
				$requete_sql = "INSERT INTO region (nom)
		   						VALUES(\"$region\")
							";
				$reponse_ins = bd_executer_sql($requete_sql);
				
				$id_region = mysql_insert_id();
			
			} else {
				$ligne_region = mysql_fetch_array($reponse_region);
				$id_region = $ligne_region[region_id];
			}
			
			$requete_sql = "SELECT * 
							FROM commission_scolaire 
							WHERE nom = \"$com_scolaire\"
							";
			$reponse_com_scol = bd_executer_sql($requete_sql);
			$nb_com_scol = mysql_num_rows($reponse_com_scol);
			
			if ($nb_com_scol == 0){
				
				$requete_sql = "INSERT INTO commission_scolaire (nom, region_id)
		   						VALUES(\"$com_scolaire\", \"$id_region\")
							";
				$reponse_ins = bd_executer_sql($requete_sql);
				
				$id_com_scol = mysql_insert_id();
			
			} else {
				$ligne_com_scol = mysql_fetch_array($reponse_com_scol);
				$id_com_scol = $ligne_com_scol[comscol_id];
			}
			
			$requete_sql = "INSERT INTO ecole (comscol_id, nom, ville, code_postal,
		   						 ordre, adresse, telephone, fax, courriel, circonscription)
		   					VALUES(\"$id_com_scol\", \"$nom\", \"$ville\",\"$code_postal\",
		   						 \"$ordre\", \"$adresse\", \"$telephone\", \"$fax\", \"$courriel\", \"$circonscription\")
							";
			$reponse_ins = bd_executer_sql($requete_sql); 

	   
		}
		 }
		 
		 $i++;
	}
 
	#on vérifie les id de resposables et le nom de leur école
	 
	for ($j = 0; $j < count($tab_ecole); $j++){

	$rp = $tab_ecole[$j]['resp'];
	$ec = $tab_ecole[$j]['ecole'];
	
	$requete_sql = "SELECT ecole_id 
					FROM responsable
					WHERE resp_id = \"$rp\" 
					";
	$reponse_resp = bd_executer_sql($requete_sql);
	$ligne_resp = mysql_fetch_array($reponse_resp);
	$nb_rp = mysql_num_rows($reponse_resp);
	
	$requete_sql = "SELECT nom 
					FROM ecole
					WHERE ecole_id = \"$ligne_resp[ecole_id]\" 
					";
	$reponse_ec = bd_executer_sql($requete_sql);
	$ligne_ec = mysql_fetch_array ($reponse_ec);
	$nb_ec = mysql_num_rows($reponse_ec);
	
	if ($ligne_ec[nom] != $tab_ecole[$j]["ecole"]){
	
		$requete_sql = "SELECT ecole_id 
						FROM ecole
						WHERE nom = \"$ec\" 
					";
		$reponse_mod = bd_executer_sql($requete_sql);
		$ligne_mod = mysql_fetch_array ($reponse_mod);
		
		
		$requete_sql = "UPDATE responsable 
						SET ecole_id = $ligne_mod[ecole_id]
						WHERE resp_id = \"$tab_ecole[$j]['resp']\" 
					";
		$reponse_mod = bd_executer_sql($requete_sql);

	}
	

}

	
	echo "<br>Importation terminée, avec succès.<br>";
		   
		 
	fclose($fp);
	
mysql_query("INSERT INTO region (nom)
			 VALUES('autre')");
$reponseRA = mysql_query("SELECT * FROM region WHERE nom = 'autre'");
$regionActuel = mysql_fetch_array($reponseRA);
													
mysql_query("INSERT INTO commission_scolaire (nom, region_id)
			 VALUES('autre', '" . $regionActuel['region_id'] . "')");

$reponseCSA = mysql_query("SELECT * FROM commission_scolaire WHERE nom = 'autre'");
$comScolActuel = mysql_fetch_array($reponseCSA);
								
mysql_query("INSERT INTO ecole (comscol_id, nom, circonscription)
			 VALUES('" . $comScolActuel['comscol_id'] . "', 'autre', 'autre')");
}else{

	echo "<form method=\"post\" action=\"$PHP_SELF\">"; ?>
     <p>Importer les données du fichier <i>ecoles.csv</i> dans la base de données.</p>
	 <p>Cette opération prend plusieurs minutes.</p>
       <td> <input type="submit" name="submit" value="Importer"> </td> 
      </tr>
     </table>
     <input type="hidden" name="action" value="inserer">  
    </form>

<? 

   }
?>
</body>
</html>
Return current item: Pnyx : des lections virtuelles!