requete imbriquée

Eléphanteau du PHP | 29 Messages

25 juin 2008, 11:23

Bonjour,


J'ai un probléme avec deux requetes ,en fait j'ai cette premiére requete qui me permet d'afficher les résultats dans une page html et une dexiéme requete qui me permet de récuperer une partie (c'est à dire deux colonnes) des résultats de ma premiére requete dans un fichier CVS

Code : Tout sélectionner

$sql="SELECT * FROM MULTIPLET, EVENEMENTS WHERE MULTIPLET.num_mult = EVENEMENTS.num_mult AND MULTIPLET.num_mult =". $num_mult .""; $sql="SELECT lat,lon INTO OUTFILE '/var/www/html/interface/essai/Login/data6.cvs' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\n' FROM MULTIPLET, EVENEMENTS WHERE MULTIPLET.num_mult = EVENEMENTS.num_mult AND MULTIPLET.num_mult =". $num_mult .""; $exec = mysql_query($sql,$cnx) or die ("Requ�te incorrecte<br />\n". $sql ."<br />\nErreur : ". mysql_error()); { ?> if (mysql_num_rows($exec) > 0) { // Si il y a des r�sultats while(false != ($rs = mysql_fetch_array($exec))) { ?> <tr> <td><?php echo $rs["nom_even"]; ?></td> <td><?php echo $rs["lat_even"]; ?></td> <td><?php echo $rs["lon_even"]; ?></td> <td><?php echo $rs["depth_ev"]; ?></td> <td><?php echo $rs["mag_ev"]; ?></td> <td><?php echo $rs["nb_sta"]; ?></td> </tr> <?php } // Fin instruction while } else { // Pas de r�sultat trouv� echo "Pas de résultat"; } } mysql_close(); // Ferme la connexion ?>
J'ai pas su comment combiner les deux requetes pour au meme temps afficher les résultats et récuperer une partie dans une fichier cvs, en plus de cela si j'execute la deuxiéme requete toute seule, j'ai une erreur qui me dit que le fichier existe dejà donc comment faire pour spécifier dans ma requete qu'il faut écraser les donnes du fichier en question?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 juin 2008, 20:48

Alors dans le désordre :
- Tu mets tes deux requêtes dans la même variable $sql, du coup la seconde vient forcément écraser la première qui ne sera pas exécuté. Procède par ordre : fais ta requête pour générer le fichier, exécute là, puis fait ta requête pour afficher les résultat et exécute là à son tour :)
- la commande SQL "SELECT ... INTO OUTFILE ... " ne peut pas compléter ou écraser un fichier existant pour des raisons de sécurité. Si tu veux remplacer le fichier, il te faut donc le supprimer au préalable (s'il existe déjà) avec php et unlink()


Ps : c'est vraiment un fichier ".cvs" que tu veux et pas plutôt un ".csv" (fichier plat avec séparateur point-virgule) ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...