Page 1 sur 1

requete imbriquée

Posté : 25 juin 2008, 11:23
par lili
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?

Posté : 25 juin 2008, 20:48
par Ryle
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) ?