We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 38506
    • 103 Posts
    Bonjour,

    Je crée des pages automatiquement en remplissant deux BDD différentes (modx_site_content et modx_site_tmplvar_contentvalues) via des flux csv.

    Le problème c'est que j'ai l'impression que la boucle continue infiniment lorsqu'elle devrait s’arrêter...

    Voici le script (si vous voyez d'où cela peux venir ) :

    
    <?php
    //////////////////////////////////////////////////// On ouvre les fichiers zip //////////////////////////////////////////
    
    require_once('pclzip.lib.php');
    
    function rmdir_recursive($dir)
    {
    	//Liste le contenu du répertoire dans un tableau
    	$dir_content = scandir($dir);
    	//Est-ce bien un répertoire?
    	if($dir_content !== FALSE){
    		//Pour chaque entrée du répertoire
    		foreach ($dir_content as $entry)
    		{
    			//Raccourcis symboliques sous Unix, on passe
    			if(!in_array($entry, array('.','..'))){
    				//On retrouve le chemin par rapport au début
    				$entry = $dir . '/' . $entry;
    				//Cette entrée n'est pas un dossier: on l'efface
    				if(!is_dir($entry)){
    					unlink($entry);
    				}
    				//Cette entrée est un dossier, on recommence sur ce dossier
    				else{
    					rmdir_recursive($entry);
    				}
    			}
    		}
    	}
    	//On a bien effacé toutes les entrées du dossier, on peut à présent l'effacer
    	rmdir($dir);
    }
    
    
    @rmdir_recursive('MCADA');
    
    
    
    $zip = new ZipArchive;
    if ($zip->open('MCADA.zip') === TRUE) {
    $zip->extractTo('MCADA');
    $zip->close();
    
    } else {
    echo 'échec';
    }
    
    /////////////////////////////////////////////////////////On remet la base à 0 ///////////////////////////////////////////////////////
    
    
    
    mysql_connect("bdd", "root", "pass"); 
    mysql_select_db("annonces");
    
    $strSQL = "DELETE FROM `mdc`";
    
    mysql_query($strSQL) or die(mysql_error());
    
    mysql_connect("bdd", "root", "pass") or die (mysql_error ());
    mysql_select_db("MDC");
    
    $strSQL2 = "DELETE FROM `bdd` WHERE `parent` =12 AND `publishedby`= 0 ";
    
    mysql_query($strSQL2) or die(mysql_error());
    $strSQL2 = "DELETE FROM `bdd` WHERE `parent` =13 AND `publishedby`= 0 ";
    
    mysql_query($strSQL2) or die(mysql_error());
    
    
    ///////////////////////////////////////////////////////////////////////////////// Créavilla 26////////////////////////////////////////////////////////////////
    
    $handle = fopen('MCADA/Annonces.csv', 'r');
    
    while (($c = fgetcsv($handle, 5000, "!#",'"','\\')) !== FALSE)
    {
    $agence = $c[0] ;
    $agence = str_replace("#","",$agence);
    $agence = utf8_encode($agence) ; 
    
    
    $ville = $c[5] ;
    $ville = str_replace("#","",$ville);
    $ville = str_replace("\"","",$ville);
    $ville = str_replace("'","",$ville); 
    $ville = utf8_encode($ville) ; 
    
    
    
    $type = $c[3] ;
    $type = str_replace("#","",$type);
    $type = str_replace("\"","",$type);
    $type = utf8_encode($type) ; 
    
    $titre = $c[19] ;
    $titre = str_replace("#","",$titre);
    $titre = str_replace("\"","",$titre);
    $titre = str_replace("'","",$titre); 
    $titre = utf8_encode($titre) ; 
    
    $resume = $c[20] ;
    $resume = str_replace("#","",$resume);
    $resume = str_replace("\"","",$resume);
    $resume = str_replace(",","",$resume);
    $resume = str_replace("'","",$resume); 
    $resume = utf8_encode($resume) ;
    
    $contenu = $c[20] ;
    $contenu = str_replace("#","",$contenu);
    $contenu = str_replace("\"","",$contenu);
    $contenu = str_replace(",","",$contenu); 
    $contenu = str_replace("...","",$contenu); 
    $contenu = str_replace("'","",$contenu); 
    $contenu = utf8_encode($contenu) ;
    
    $ref = $c[1] ;
    $ref = str_replace("#","",$ref);
    $ref = str_replace("\"","",$ref);
    $ref= addslashes($ref);
    
    
    $tarif = $c[10] ;
    $tarif = str_replace("#","",$tarif);
    $tarif = str_replace("\"","",$tarif);
    
    $cp = $c[4] ;
    $cp = str_replace("#","",$cp);
    $cp = str_replace("\"","",$cp);
    
    $image1 = $c[84] ;
    $image1 = str_replace("#","",$image1);
    $image1 = str_replace("\"","",$image1);
    
    
    $image2 = $c[85] ;
    $image2 = str_replace("#","",$image2);
    $image2 = str_replace("\"","",$image2);
    
    
    
    $image3 = $c[86] ;
    $image3 = str_replace("#","",$image3);
    $image3 = str_replace("\"","",$image3);
    
    $superficie = $c[16] ;
    $superficie = str_replace('#"','',$superficie); 
    
    
    //vos requetes SQL ici
    mysql_connect("bdd", "root", "pass"); 
    mysql_select_db("annonces");
    
    $sql = "INSERT INTO `bdd` VALUES ('','".$agence."', '".$ville."','".$type. "', '".$titre. "','".$resume. "','".$contenu. "','".$ref. "','".$tarif. "','".$cp. "','".$superficie. "','".$image1. "','".$image2. "','".$image3. "')";
    
    $req = mysql_query($sql)or die('<br> Erreur SQL ! '.$req.'<br />'.mysql_error());
    }
    
    //////////////////////////////////////////////////////////////////// création des pages //////////////////////////////////////////////////////////////////////////////////////////// 
    
    
    $reponses = mysql_query("SELECT * FROM `bdd` WHERE `type` = \"maison\" "); 
    $reponses2 = mysql_query("SELECT * FROM `bdd` WHERE `type` = \"terrain\" "); 
    
    
    $donnees = mysql_fetch_array($reponses) ;
    $donnees2 = mysql_fetch_array($reponses2) ;
    
    while ($donnees = mysql_fetch_array($reponses)) // On boucle pour afficher toutes les données et on met toutes données dans un tableau
    {
    
    $requete1 = $donnees['agence']; 
    $requete2 = $donnees['ville']; 
    $requete3 = $donnees['type']; 
    $requete4 = $donnees['titre']; 
    $requete6 = $donnees['contenu']; 
    $requete5 = substr("$requete6", 0,90);
    $requete7 = $donnees['ref']; 
    $requete8 = $donnees['tarif']; 
    $requete9 = $donnees['cp']; 
    $requete10 = $donnees['image1']; 
    $requete11 = $donnees['image2']; 
    $requete12 = $donnees['image3']; 
    
    // Connect to database server
    $connexion= mysql_connect("bdd", "root", "pass") or die (mysql_error ()); 
    // Select database
    mysql_select_db("bdd") or die(mysql_error());
    
    
    
    $strSQL = "INSERT INTO bdd (pagetitle, template, parent, published, introtext, content, editedon, publishedon, createdon ) VALUES('" .$requete4. "', 6, 13, 1,'" .$requete5. "','" .$requete6. "', '".time()."', '".time()."', '".time()."' )";
    
    mysql_query($strSQL) or die(mysql_error());
    
    
    
    $id = mysql_insert_id();
    //TARIF
    $strSQL = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (45,'" .$id. "','" .$requete8. "')";
    mysql_query($strSQL) or die(mysql_error());
    //REF
    $strSQL = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (46,'" .$id. "','" .$requete7. "')";
    mysql_query($strSQL) or die(mysql_error());
    //VILLE
    $strSQL = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (68,'" .$id. "','" .$requete2. "')";
    mysql_query($strSQL) or die(mysql_error());
    //IMAGE PRINCIPALE
    $strSQL = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (38,'" .$id. "','" .$requete10. "')";
    mysql_query($strSQL) or die(mysql_error());
    //IMAGE2
    $strSQL = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (50,'" .$id. "','" .$requete11. "')";
    mysql_query($strSQL) or die(mysql_error());
    //IMAGE3
    $strSQL = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (51,'" .$id. "','" .$requete12. "')";
    mysql_query($strSQL) or die(mysql_error());
    
    
    
    $rest = substr("$requete9", 0, -3);
    
    
    if($rest==26) {
    
    $tel="04 82 75 25 13";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (47,'" .$id. "','" .$tel. "')";
    mysql_query($strSQL2) or die(mysql_error());
    $departement="Drome";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (53,'" .$id. "','" .$departement. "')";
    mysql_query($strSQL2) or die(mysql_error());
    
    }
    if ($rest==7){
    
    $tel="04 82 75 25 13";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (47,'" .$id. "','" .$tel. "')";
    mysql_query($strSQL2) or die(mysql_error());
    $departement="Ardeche";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (53,'" .$id. "','" .$departement. "')";
    mysql_query($strSQL2) or die(mysql_error());
    
    }
    
    if ($rest==38){
    
    $tel="04 82 75 25 13";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (47,'" .$id. "','" .$tel. "')";
    mysql_query($strSQL2) or die(mysql_error());
    $departement="Isere";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (53,'" .$id. "','" .$departement. "')";
    mysql_query($strSQL2) or die(mysql_error());
    
    }
    
    
    // fin if
    
    } // fin maison
    
    // pour les terrains
    mysql_connect("bdd", "root", "pass"); 
    mysql_select_db("annonces");
    
    while ($donnees2 = mysql_fetch_array($reponses2)) // On boucle pour afficher toutes les données et on met toutes données dans un tableau
    {
    
    $requete1 = $donnees2['agence']; 
    $requete2 = strtoupper($donnees2['ville']); 
    $requete3 = $donnees2['type']; 
    $requete4 = "Terrain à $requete2"; 
    
    $requete6 = $donnees2['contenu'];
    $requete5 = substr("$requete6", 0,90);
    $requete7 = $donnees2['ref']; 
    $requete8 = $donnees2['tarif']; 
    $requete9 = $donnees2['cp']; 
    $requete10 = $donnees2['image1']; 
    $requete11 = $donnees2['image2']; 
    $requete12 = $donnees2['image3']; 
    $requete13 = $donnees2['superficie']; 
    
    // Connect to database server
    $connexion= mysql_connect("bdd", "root", "pass") or die (mysql_error ()); 
    
    // Select database
    mysql_select_db("MDC") or die(mysql_error());
    
    
    
    $strSQL2 = "INSERT INTO tradi_site_content (pagetitle, template, parent, published, introtext, content, editedon, publishedon, createdon ) VALUES('" .$requete4. "', 12, 12, 1,'" .$requete5. "','" .$requete6. "', '".time()."', '".time()."', '".time()."' )";
    
    mysql_query($strSQL2) or die(mysql_error());
    
    
    $id = mysql_insert_id();
    //TARIF
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (45,'" .$id. "','" .$requete8. "')";
    mysql_query($strSQL2) or die(mysql_error());
    //REF
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (46,'" .$id. "','" .$requete7. "')";
    mysql_query($strSQL2) or die(mysql_error());
    //VILLE
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (68,'" .$id. "','" .$requete2. "')";
    mysql_query($strSQL2) or die(mysql_error());
    //cp
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (69,'" .$id. "','" .$requete9. "')";
    mysql_query($strSQL2) or die(mysql_error());
    
    //IMAGE PRINCIPALE
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (38,'" .$id. "','" .$requete10. "')";
    mysql_query($strSQL2) or die(mysql_error());
    //IMAGE2
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (50,'" .$id. "','" .$requete11. "')";
    mysql_query($strSQL2) or die(mysql_error());
    //IMAGE3
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (51,'" .$id. "','" .$requete12. "')";
    mysql_query($strSQL2) or die(mysql_error());
    
    
    
    $rest = substr("$requete9", 0, -3);
    
    
    if($rest==26) {
    
    $tel="04 82 75 25 13";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (47,'" .$id. "','" .$tel. "')";
    mysql_query($strSQL2) or die(mysql_error());
    $departement="Drome";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (53,'" .$id. "','" .$departement. "')";
    mysql_query($strSQL2) or die(mysql_error());
    
    }
    if ($rest==7){
    
    $tel="04 82 75 25 13";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (47,'" .$id. "','" .$tel. "')";
    mysql_query($strSQL2) or die(mysql_error());
    $departement="Ardeche";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (53,'" .$id. "','" .$departement. "')";
    mysql_query($strSQL2) or die(mysql_error());
    
    }
    
    
    if ($rest==38){
    
    $tel="04 82 75 25 13";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (47,'" .$id. "','" .$tel. "')";
    mysql_query($strSQL2) or die(mysql_error());
    $departement="Isere";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (53,'" .$id. "','" .$departement. "')";
    mysql_query($strSQL2) or die(mysql_error());
    
    }
    
    
    if ($requete13 < 400) {
    $superficie= " inferieure à 400m2 ";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (72,'" .$id. "','" .$superficie. "')";
    mysql_query($strSQL2) or die(mysql_error());
    // echo "superficie : $strSQL2.'<br/>'";
    }
    
    if (($requete13 > 400 ) and ($requete13 < 600 )){
    $superficie = " 400 à 600m² ";
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (72,'" .$id. "','" .$superficie. "')";
    // echo "superficie : $strSQL2.'<br/>'";
    }
    if ($requete13 > 600) {
    $superficie = " superieure à 600m²"; 
    $strSQL2 = "INSERT INTO tradi_site_tmplvar_contentvalues (tmplvarid, contentid, value) VALUE (72,'" .$id. "','" .$superficie. "')";
    //echo "superficie : $strSQL2.'<br/>'";
    }
    
    else {
    // echo"ne rentre dans aucune boucle";
    }
    
    
    } // fin terrain