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

PHP & Base de données Discussion :

Je coince sur un mysql_fetch_assoc() [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Je coince sur un mysql_fetch_assoc()
    Bonjour,

    Il y a vraiment des trucs où on se sent nul; Voici ma requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = "SELECT *
    					FROM maj_adresses_1
    					WHERE id_maj='".$id_maj."'";
     
    			$res=mysql_query($sql) or die($sql." - ".mysql_error());
    			while($line = mysql_fetch_assoc($res))
    J'ai l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
    J'ai mis un qui me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM maj_adresses_1 WHERE id_maj='1'
    J'ai copié cette requête dans phpmyadmin et c'est bon.

    Merci d'avance
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    essai de remplacer mysql_fetch_assoc par mysql_fetch_array afin de voir ce que ça donne
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Aussitôt dit aussitôt fait, résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
    Rien n'a changé
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  4. #4
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Bonjour,

    question bete...... es tu sur d'etre connecte a ta base?
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  5. #5
    Invité
    Invité(e)
    Par défaut
    a priori ya pas d'erreur, es tu sur que tu nas pas une autre requete dans ton script d'ou peux provenir lerreur?

  6. #6
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Oui, j'en suis sûr puisque la valeur "1" de ma requête provient d'une requête précédente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM maj_adresses_1 WHERE id_maj='1'
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    si id_maj est de type numerique fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM maj_adresses_1 WHERE id_maj=$id_maj";
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Et si tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			$res=mysql_query($sql) or die($sql." - ".mysql_error());
    			while($line = mysql_fetch_assoc($res))
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			$res=mysql_query($sql) or die($sql." - ".mysql_error());
    var_dump($res);
    			while($line = mysql_fetch_assoc($res))
    et tu rajoutes une petite trace à la sortie de ce while, au cas où.

  9. #9
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    J'avais écrit ma requête comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT *
    FROM maj_adresses_1
    WHERE id_maj='".$id_maj."'";
    Je l'ai changé pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT *
    FROM maj_adresses_1
    WHERE id_maj=$id_maj";
    Je test avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($line = mysql_fetch_array($res))
    Ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($line = mysql_fetch_assoc($res))
    Et le résultat est ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    supplied argument is not a valid MySQL result resource in
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  10. #10
    Invité
    Invité(e)
    Par défaut
    tu peux nous montrer tout ton script, car pour moi il n'y a absolument aucune erreur sur cette partie (s'il y en a une je prends rdv chez mon ophtamo)

  11. #11
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Tu as une bonne mutuelle ?

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    // Lecture de la table t_tiers_1
    $req="SELECT * 
    		FROM t_tiers_1
    		where id_maj BETWEEN 1 AND 10 
    		ORDER BY tiers_id";
     
    $result=mysql_query($req) or die(" - ".mysql_error());
    while($ligne = mysql_fetch_assoc($result))
    {
     
    	// ne pas prendre le tiers blanc inutile en V2
    	if ($ligne["tiers_nom"]!="")
    	{
    		$id_tiers=$ligne["tiers_id"];
    		$tiers_type_id=$ligne["tiers_type_id"];
    		$id_maj=$ligne["id_maj"];
    		if ($id_maj!="0")
    		{
    			$tiers_prive="1";
    		}
    		else
    		{
    			$tiers_prive="";
    		}
    		$tiers_nom=endCodeField($ligne["tiers_nom"]);
    		$tiers_adr1=endCodeField($ligne["tiers_adr1"]);
    		$tiers_adr2=endCodeField($ligne["tiers_adr2"]);
    		$tiers_adr3=endCodeField($ligne["tiers_adr3"]);
    		$tiers_ville_id= $ligne["tiers_ville_id"];
    		$tiers_tel=$ligne["tiers_tel"];
    		$tiers_tel = preg_replace("/(\d{2}) *(?!\.|\z|[ \D])/","$1 ",$tiers_tel);
    		$tiers_fax=$ligne["tiers_fax"];
    		$tiers_fax = preg_replace("/(\d{2}) *(?!\.|\z|[ \D])/","$1 ",$tiers_fax);
    		$tiers_email=$ligne["tiers_email"];
    		$tiers_web=$ligne["tiers_web"];
    		$tiers_ref_courrier=endCodeField($ligne["tiers_ref_courrier"]);
    		$tiers_regl_mode="";
    	    $tiers_regl_delai="";
    	    $tiers_cpt_banque="";
    	    $tiers_cpt_guichet="";
    	    $tiers_cpt_compte="";
    	    $tiers_cpt_rib="";
    		$tiers_commentaire=endCodeField($ligne["tiers_commentaire"].$ligne["tiers_ref_courrier"]);
     
     
    		$id_trt="1";
     
    		// Insertion dans la table t_tiers_2 
    		$sql = ("INSERT INTO t_tiers_2 (id_tiers, tiers_type_id, tiers_prive, id_maj, tiers_nom, tiers_adr1, tiers_adr2, tiers_adr3, tiers_ville_id, 
    												tiers_tel, tiers_fax, tiers_email, tiers_web, tiers_regl_mode, tiers_regl_delai,tiers_cpt_banque,
    												tiers_cpt_guichet,tiers_cpt_compte,tiers_cpt_rib,tiers_commentaire, id_trt) 
    						 VALUES (\"$id_tiers\", \"$tiers_type_id\", \"$tiers_prive\", \"$id_maj\", \"$tiers_nom\", \"$tiers_adr1\", \"$tiers_adr2\", \"$tiers_adr3\", \"$tiers_ville_id\", 
    								 \"$tiers_tel\", \"$tiers_fax\", \"$tiers_email\", \"$tiers_web\", \"$tiers_regl_mode\",\"$tiers_regl_delai\",
    								 \"$tiers_cpt_banque\",\"$tiers_cpt_guichet\",\"$tiers_cpt_compte\",\"$tiers_cpt_rib\",
    								 \"$tiers_commentaire\", \"$id_trt\")");
     
    		$res = mysql_query("$sql") or die ($sql." - ".mysql_error());
    		if ($tiers_type_id!="9")
    		{
    			// Insertion dans la table maj_tiers_2
    			$sql = ("INSERT INTO maj_tiers_2 ( id_maj_tiers , id_maj , id_tiers , maj_tiers_type , maj_tiers_ref_courrier , maj_tiers_commentaire , id_trt )
    			VALUES (\"$id_tiers\", \"$id_maj\", \"$id_tiers\", \"$tiers_type_id\", \"$tiers_ref_courrier\", \"$tiers_commentaire\", \"$id_trt\")");
    			$res = mysql_query("$sql") or die ($sql." - ".mysql_error());
    		}
    		else
    		{
    			// Recherche des attributs complémentaires
    			$sql = "SELECT *
    					FROM maj_adresses_1
    					WHERE id_maj=$id_maj";
     
    			$res=mysql_query($sql) or die($sql." - ".mysql_error());
    			while($line = mysql_fetch_assoc($res))
    			{
    				$id_type_adresse=$line["type_adresse_id"];
    				$id_type_habitat=$line["type_habitat_id"];
    				$adr_date_debut=$line["adr_date_debut"];
    				$adr_date_fin=$line["adr_date_fin"];
    				$adr_etage=$line["adr_etage"];
    				$adr_complement=$line["adr_complement"];
    				// Insertion dans la table maj_adresses_2
    				$sql = ("INSERT INTO maj_adresses_2 ( id_maj_adresse , id_maj , id_type_adresse , id_qualite , id_type_habitat , maj_tiers_type , id_tiers , 
    													  adr_ref_courrier , adr_complement , adr_etage , adr_date_debut , adr_date_fin , adr_commentaire , id_trt )
    				VALUES (\"\" , \"$id_maj\" , \"$id_type_adresse\" , \"\" , \"$id_type_habitat\" , \"$tiers_type_id\" , \"$id_tiers\" , 
    						\"\" , \"$adr_complement\" , \"$adr_etage\" , \"$adr_date_debut\" , \"$adr_date_fin\" , \"\" , \"$id_trt\")");
     
    				$res = mysql_query("$sql") or die ($sql." - ".mysql_error());
    			}
    		}
    	}
    }
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    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
    $res=mysql_query($sql) or die($sql." - ".mysql_error());
    			while($line = mysql_fetch_assoc($res))
    			{
    				$id_type_adresse=$line["type_adresse_id"];
    				$id_type_habitat=$line["type_habitat_id"];
    				$adr_date_debut=$line["adr_date_debut"];
    				$adr_date_fin=$line["adr_date_fin"];
    				$adr_etage=$line["adr_etage"];
    				$adr_complement=$line["adr_complement"];
    				// Insertion dans la table maj_adresses_2
    				$sql = ("INSERT INTO maj_adresses_2 ( id_maj_adresse , id_maj , id_type_adresse , id_qualite , id_type_habitat , maj_tiers_type , id_tiers , 
    													  adr_ref_courrier , adr_complement , adr_etage , adr_date_debut , adr_date_fin , adr_commentaire , id_trt )
    				VALUES (\"\" , \"$id_maj\" , \"$id_type_adresse\" , \"\" , \"$id_type_habitat\" , \"$tiers_type_id\" , \"$id_tiers\" , 
    						\"\" , \"$adr_complement\" , \"$adr_etage\" , \"$adr_date_debut\" , \"$adr_date_fin\" , \"\" , \"$id_trt\")");
     
    				$res = mysql_query("$sql") or die ($sql." - ".mysql_error());
    			}
    Tu boucles avec $res sauf qu'au bout du premier tour tu modifies cette variable pour faire une autre requête, du coups ça n'a plus de sens. Il faut changer ta variable dans le while et l'appeler $res2 par exemple.
    Et puis fait attention tu as mis la variable entre guillement dans le query.

  13. #13
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Merci,

    J'ai corrigé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res=mysql_query($sql) or die($sql." - ".mysql_error()); while($line = mysql_fetch_assoc($res))  {  $id_type_adresse=$line["type_adresse_id"]; $id_type_habitat=$line["type_habitat_id"]; $adr_date_debut=$line["adr_date_debut"]; $adr_date_fin=$line["adr_date_fin"]; $adr_etage=$line["adr_etage"]; $adr_complement=$line["adr_complement"]; // Insertion dans la table maj_adresses_2  $sql2 = ("INSERT INTO maj_adresses_2 ( id_maj_adresse , id_maj , id_type_adresse , id_qualite , id_type_habitat , maj_tiers_type , id_tiers , adr_ref_courrier , adr_complement , adr_etage , adr_date_debut , adr_date_fin , adr_commentaire , id_trt ) VALUES (\"\" , '".$id_maj."' , '".$id_type_adresse."'  , \"\" , '".$id_type_habitat."'  , '".$tiers_type_id."'  , '".$id_tiers."'  , \"\" , '".$adr_complement."'  , '".$adr_etage."'  , '".$adr_date_debut."'  , '".$adr_date_fin."'  , \"\" , '".$id_trt."' )"); $res2 = mysql_query("$sql2") or die ($sql2." - ".mysql_error()); }
    Merci encore
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. debutant coincé sur probleme simple
    Par router_ dans le forum Linux
    Réponses: 11
    Dernier message: 11/06/2010, 20h42
  2. coincé sur jeu de serpent
    Par tonytrua dans le forum Débuter
    Réponses: 9
    Dernier message: 04/04/2010, 14h11
  3. [AC-2003] toujours coincée sur la mise en place de la sécurité multiutilisateurs
    Par isabelle b dans le forum Sécurité
    Réponses: 17
    Dernier message: 07/04/2009, 14h42
  4. Réponses: 5
    Dernier message: 05/11/2008, 23h23
  5. Réponses: 3
    Dernier message: 17/05/2008, 14h39

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