IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Problème avec mysql_fetch_array


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut Problème avec mysql_fetch_array
    Bonjour,
    Après avoir mise au point ma requête avec INSTR le script me renvois l'erreur que j'ai mise après le code ci dessous. La requête effectue bien ce que je souhaite réaliser, en me rentrant bien les différents id à l'endroit que je souhaite dans mon insert into.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    	List ($serveur, $secteur, $ue, $batiment,$source, $fichier) = $tableau;
     
     
    	    $var = "SELECT id_secteur FROM secteur WHERE nom_secteur = '".$secteur."'";
     
    			$result = mysql_query($var) or die ("<br>Erreur");
    			$valeur1 = mysql_fetch_array($result);
     
    		$get = "SELECT id_ue FROM ue WHERE nom_ue = '".$ue."'";
     
    			$result = mysql_query($get);
    			$valeur2 = mysql_fetch_array($result);
     
    		$requete = "SELECT id_bat FROM batiment WHERE nom_bat = '".$batiment."'";	
     
    			$result = mysql_query($requete);
    			$valeur3 = mysql_fetch_array($result);
     
    		$req = "SELECT id_instal FROM nomination WHERE INSTR('".$fichier."', type_instal) OR INSTR('".$fichier."', type_instal2) > 0";	
     
    			$result = mysql_query($req);
    			$valeur4 = mysql_fetch_array($result);
     
    		$queri = "INSERT INTO automate (id_instal, id_ue, id_bat, id_secteur, pdf) VALUES ('".$valeur4['id_instal'] ."','".$valeur2['id_ue'] ."','".$valeur3['id_bat'] ."','".$valeur1['id_secteur'] ."','".$fichier."')";
     
    		mysql_query($queri) or die ("Erreur dans \"$queri\""); 
    	}
    Et voilà l'erreur :
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\php\fichierphp\liste.php on line 66
    La ligne 66 correspond à $valeur4 = mysql_fetch_array($result);

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Si tu remplaces :

    $req = "SELECT id_instal FROM nomination WHERE INSTR('".$fichier."', type_instal) OR INSTR('".$fichier."', type_instal2) > 0";

    par :

    $req = "SELECT id_instal FROM nomination WHERE INSTR('".$fichier."', type_instal) > 0 OR INSTR('".$fichier."', type_instal2) > 0";

  3. #3
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Christophe_
    Bonjour,

    Si tu remplaces :

    $req = "SELECT id_instal FROM nomination WHERE INSTR('".$fichier."', type_instal) OR INSTR('".$fichier."', type_instal2) > 0";

    par :

    $req = "SELECT id_instal FROM nomination WHERE INSTR('".$fichier."', type_instal) > 0 OR INSTR('".$fichier."', type_instal2) > 0";
    Je viens d'essayer christophe mais ca ne marche toujours pas, toujours la même erreur !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Essaye de changer :

    $result = mysql_query($req);
    $valeur4 = mysql_fetch_array($result);

    Par :

    $result = mysql_query($req) OR die(mysql_error());
    $valeur4 = mysql_fetch_array($result);


    Cela donnera peut-être davantage de précisions sur l'erreur.

  5. #5
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 147
    Points
    147
    Par défaut
    J'ai testé la requête rapidement sur un petit exemple, ça devrait fonctionner.

    Par contre, est-ce que fichier peut contenir des apostrophes (exemple : l'arbre) ? Dans ce cas, il faut doubler les apostrophes par un addSlashes sur $fichier (pour avoir : l\'arbre).

    Ce serait donc plutôt un problème de PHP...

  6. #6
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par gk14fire
    J'ai testé la requête rapidement sur un petit exemple, ça devrait fonctionner.

    Par contre, est-ce que fichier peut contenir des apostrophes (exemple : l'arbre) ? Dans ce cas, il faut doubler les apostrophes par un addSlashes sur $fichier (pour avoir : l\'arbre).

    Ce serait donc plutôt un problème de PHP...
    Vous avez tout les deux mis le petit doigt sur la solution...
    En rentrant mysql error, le script me renvois : erreur de syntaxe près de 'air....'. Et le nom du fichier complet est "conditonnement d'air..."
    Donc l'erreur viendrait bien du fait que le nom possède une apostrophe. Par contre je n'ai pas saisis l'utilisation du addslashe ?

  7. #7
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 147
    Points
    147
    Par défaut
    Citation Envoyé par yohan0262
    Par contre je n'ai pas saisis l'utilisation du addslashe ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "SELECT id_instal FROM nomination WHERE INSTR('".addSlashes($fichier)."', type_instal) > 0 OR INSTR('".addSlashes($fichier)."', type_instal2) > 0";
    qui va remplacer les ' par des \'.

  8. #8
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par gk14fire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "SELECT id_instal FROM nomination WHERE INSTR('".addSlashes($fichier)."', type_instal) > 0 OR INSTR('".addSlashes($fichier)."', type_instal2) > 0";
    qui va remplacer les ' par des \'.
    Ok je vais tester et je reviens vous dire quoi.
    Merci =)

  9. #9
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par yohan0262
    Ok je vais tester et je reviens vous dire quoi.
    Merci =)
    Le warning.... est partis mais en mettant un "or die (mysql_error)" je me suis apercu que le script me renvoyé encore une erreur qui est celle-ci :

    $queri = INSERT INTO ....
    $result = mysql_query or die ....

    Erreur de syntaxe près de 'air....'

  10. #10
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 038
    Points : 23 783
    Points
    23 783
    Par défaut
    Il faut faire afficher $queri et l'exécuter dans MySQL pour avoir une meilleure idée de ce qui peut pêcher. Un echo($queri) pourrait nous permettre de t'aider un peu plus facilement...

    ced

  11. #11
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par ced
    Il faut faire afficher $queri et l'exécuter dans MySQL pour avoir une meilleure idée de ce qui peut pêcher. Un echo($queri) pourrait nous permettre de t'aider un peu plus facilement...

    ced
    En fesant un echo de $queri, le script me renvois le nom de mes fichiers ainsi que les valeurs que je lui définit via mon INSERT INTO ce qui est normal. Ma base se remplis correctement, aucun champ n'est vide et tous ont bien la valeur qu'il leur faut.

    Un exemple de fichier(car c'est sur celui-là que l'erreur pointe à chaque fois) :

    '125','4','1','8','AM DC Conditionnement d'air.pdf'

    Et l'erreur de syntaxe renvoyé nous montre bien l'apostrophe

  12. #12
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 038
    Points : 23 783
    Points
    23 783
    Par défaut
    Par contre, ça montre que le addslashes() n'a pas l'air de fonctionner...

    ced

  13. #13
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par ced
    Par contre, ça montre que le addslashes() n'a pas l'air de fonctionner...

    ced
    Ben c'est à croire ! Pourtant je ne sais si tu as lus les posts au dessus, mais un Warning s'affichait avant que je rentre l'addslashes.

  14. #14
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 038
    Points : 23 783
    Points
    23 783
    Par défaut
    Là ça devient plus un pur problème de PHP, peut-être à poser dans le forum dédié...

    ced

Discussions similaires

  1. [MySQL] Problème avec mysql_fetch_array
    Par toinou62 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/12/2009, 12h26
  2. problème avec mysql_fetch_array()
    Par floctc dans le forum Langage
    Réponses: 5
    Dernier message: 21/04/2009, 09h33
  3. [MySQL] Problème avec mysql_fetch_array():
    Par Tikenjahfakouli dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/05/2008, 11h28
  4. [MySQL] probléme avec mysql_fetch_array
    Par fofina dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/10/2007, 16h27
  5. [MySQL] Problème avec mysql_fetch_array et une requête qui ordonne(ASC)
    Par Jim_Nastiq dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/03/2007, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo