probleme de requette sql !! - SQL/NoSQL - Programmation
Marsh Posté le 27-05-2008 à 10:40:40
non.
Tu ne donnes aucun message d'erreur, rien...on ne sait même pas si ton fichier csv est bien sur le serveur, au bon endroit, ni pourquoi tu mixes des \\ et des / dans ton chemin...
Marsh Posté le 27-05-2008 à 11:01:14
c'est le chemin directement creer par mysql....mais meme si je remplace par base.csv qui se trouve a la racine ....aucune erreur n'est renvoyée mais rien est ajouté a la base..je fais quoi?
Marsh Posté le 27-05-2008 à 11:02:08
donner un chemin absolu correct?
Afficher mysql_error()?
Marsh Posté le 27-05-2008 à 11:04:12
ReplyMarsh Posté le 27-05-2008 à 11:04:50
clem1138 a écrit : ben le chemin est le bon... |
non. Un chemin avec des slashes et antislashes en même temps n'es tpas bon.
Marsh Posté le 27-05-2008 à 11:05:31
Et donne ton code php...
Marsh Posté le 27-05-2008 à 11:05:56
ben je t'ai dis justement si je ne met que nomdufichier.csv ....le chemin est correct dans ce cas la et ca ne marche pas mieux
Marsh Posté le 27-05-2008 à 11:06:52
clem1138 a écrit : ben je t'ai dis justement si je ne met que nomdufichier.csv ....le chemin est correct dans ce cas la et ca ne marche pas mieux |
si tu mets ça le fichier doit être au même endroit que ton script.
Marsh Posté le 27-05-2008 à 11:07:00
<?
include("connexion_bdd.php" );
mysql_query( 'LOAD DATA LOCAL INFILE "base.csv"
REPLACE INTO TABLE `organigramme`
FIELDS TERMINATED BY ";"
ENCLOSED BY """
ESCAPED BY "\\\\"
LINES TERMINATED BY "\\r\\n"');
?>
Marsh Posté le 27-05-2008 à 11:12:56
et tu récupères jamais le code de retour de mysql_query?
Marsh Posté le 27-05-2008 à 11:15:14
ben la c'est juste un test pour voir si rajouter les infos ds la BDD fonctionne....mais oui je vais le recuperer apres
Marsh Posté le 27-05-2008 à 11:17:52
et si tu le récupérais maintenant pour voir si t'as pas un code d'erreur qui remonte?
Marsh Posté le 27-05-2008 à 11:19:46
c'est fait..mais il ne renvoi qu'une page blanche...le probleme vient bien du fait qu'il ne met rien ds la BDD (pourtant le nbr de champs est identique...jai tt verifier)
Marsh Posté le 27-05-2008 à 11:23:21
mais c'est quoi le code de retour de ton putain de mysql_query à la fin?
Marsh Posté le 27-05-2008 à 11:27:39
<?
include("connexion_bdd.php" );
mysql_query( 'LOAD DATA LOCAL INFILE "base.csv"
REPLACE INTO TABLE organigramme
FIELDS TERMINATED BY ";"
ENCLOSED BY """
ESCAPED BY "\"
LINES TERMINATED BY "\r\n"');
$requette=mysql_query("select champs3 from organigramme where id='1'" );
while ($row=mysql_fetch_row($requette))
{
$test=$row[0];
echo $test;
}
?>
Marsh Posté le 27-05-2008 à 11:28:22
Affiche $requette.
Marsh Posté le 27-05-2008 à 11:32:00
si je le met avant le while il y a ca renvoyé mais je ne sais pas du tt ce que c'est : " Resource id #4"
Marsh Posté le 27-05-2008 à 11:34:48
ouh pinaise j'avais mal regardé. c'est le résultat du query précédent qui est intéressant, pas celui-là!!!!!!!!!!!!!!!!!!
Marsh Posté le 27-05-2008 à 11:36:31
mdr ...et comment je dois faire?? je le met dans un mysql_fetch_row de la meme facon que pr la 2eme ?
Marsh Posté le 27-05-2008 à 11:43:28
Non.
Au lieu de juste faire mysq_query(...) tu fais $toto = mysql_query(...), puis tu affiches $toto...
Marsh Posté le 27-05-2008 à 11:53:20
on m'a dit ca sur un autre formum est ce possible que ca vienne de ca ??
as-tu bien déclaré ta base de données en tant que source système ODBC (Panneau de config --> Outils d'administration --> Sources de données (ODBC) --> Onglet System DSN (ou File DSN, ou éventuellement User DSN) --> bouton Ajouter.
Sinon, PHP ne sera pas capable d'atteindre la base.
Marsh Posté le 27-05-2008 à 12:07:42
rien à voir, tu n'utilises pas odbc. Montre ton code qui affiche le résultat du premier mysql_query
Marsh Posté le 27-05-2008 à 13:33:22
réponse peut-être a coté de la plaque mais est ce que c'est réellement une "requête"? çà ressemble plus a un contenu de fichier de paramètre pour un outil d'import.
Marsh Posté le 27-05-2008 à 13:37:25
voila...
<?
include("connexion_bdd.php" );
$requette=mysql_query( 'LOAD DATA LOCAL INFILE "base.csv"
REPLACE INTO TABLE organigramme
FIELDS TERMINATED BY ";"
ENCLOSED BY """
ESCAPED BY "\"
LINES TERMINATED BY "\r\n"');
echo $requette;
?>
Marsh Posté le 27-05-2008 à 13:38:45
non c'est bien une requette puisque on peut le faire directement dans mysql....et pour arriver au resultat il execute quand meme une requette.....
Marsh Posté le 27-05-2008 à 13:52:31
et ça affiche rien ça? et avec un print_r($requette); à la place de echo?
Marsh Posté le 27-05-2008 à 13:54:06
absolument rien.....je me demande si c'est pas dans les " et les ' que ca foire....quoique il m'aurait renvoyer une erreur....
Marsh Posté le 27-05-2008 à 14:01:47
tient on avance..:
Erreur de syntaxe près de '\" LINES TERMINATED BY "\r\n"' à la ligne 4
Marsh Posté le 27-05-2008 à 14:06:53
clem1138 a écrit : tient on avance..: |
Quelle surprise, la requête générée est incorrecte!
il te reste plus qu'à générer une requête valide.
Marsh Posté le 27-05-2008 à 14:08:00
mais je ne vois pas du tt en quoi elle est incorrecte puisque je l'ai recuperer de sites specialisés
Marsh Posté le 27-05-2008 à 14:11:55
mdr le pauvre je dois carrement lui casser les .....pieds......nn mais c'est pas faute d'avoir chercher sa fait 2 jours complets que je fais presque que ca
Marsh Posté le 27-05-2008 à 14:29:48
...et ça t'est pas venu à l'idée pendant 2 jours d'aller lire la doc de mysql_query?
Ecris ta requête dans une variable, puis affiche cette variable.
Marsh Posté le 27-05-2008 à 14:38:37
$requette=mysql_query('LOAD DATA LOCAL INFILE "base.csv"
REPLACE INTO TABLE organigramme
FIELDS TERMINATED BY ";"
ENCLOSED BY """
ESCAPED BY "\\"
LINES TERMINATED BY "\r\n" ');
echo $requette;
mysql_query($requette);
if(!$requette){
echo mysql_error();
}
else{
echo "ok";
}
reponse : Query est vide
j'avais jamais vu ca
Marsh Posté le 27-05-2008 à 10:04:39
voila j'importe les données de mon fichiers excel dans mysql ..(le fichier est un .csv)...Ca fonctionne normalement..par contre en mettant cette requette directement dans php ca ne fonctionne pas...comment je dois l'ecrire...la voici :
LOAD DATA LOCAL INFILE 'CProgram Files/EasyPHP1-8\\tmp\\php1E.tmp'
REPLACE INTO TABLE `organigramme`
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'