Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1730 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Je ne pige pas ce message d erreur........ [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Je ne pige pas ce message d erreur........ [RESOLU]

n°187016
mkracing66
Posté le 31-07-2002 à 13:13:48  profilanswer
 

Voila j en ai deja parler dans certains topics mais jusque la par miracle g reussi a les degager mais sans vraiment savoir comment...
 
G ce type de message d erreur sur free :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

 
Voici le code provoquant l erreur :  
 

Code :
  1. switch($Action)
  2.         {
  3.         case 'Suppr':
  4.           if($NomTable=="liste" )
  5.               {
  6.               $Test = mysql_query("SELECT Id_Membres FROM Liste WHERE Login='".$Login."'" );
  7.               $Membre = mysql_fetch_array($Test);  Il plante par ici environ :fou:
  8. ?>
  9. <br><br>
  10. <?
  11. echo "DELETE FROM membre WHERE Id_Membres='".$Membre."'";
  12. $Query  = mysql_query("DELETE FROM membre WHERE Id_Membres='".$Membre."'" ) or die("Suppression de  l'enregistrement impossible" );
  13. echo $Query;


 
Mes echo servent pour du debuggage mais j ai meme pas le loisir d en profiter a cause de ce machin.
 
HELP ME PLEASE :hello:  
:jap:


Message édité par mkracing66 le 31-07-2002 à 14:38:00
mood
Publicité
Posté le 31-07-2002 à 13:13:48  profilanswer
 

n°187018
The Real M​axou
Posté le 31-07-2002 à 13:16:24  profilanswer
 

C pa plutot ici que ca plante ?

Code :
  1. $Query  = mysql_query("DELETE FROM membre WHERE Id_Membres='".$Membre."'" ) or die("Suppression de  l'enregistrement impossible" );


 
Je mettrais :
 

Code :
  1. $Query  = mysql_query("DELETE FROM membre WHERE Id_Membres='".$Membre[Id_membre]."'" ) or die("Suppression de  l'enregistrement impossible" );

n°187021
orazur
Posté le 31-07-2002 à 13:17:11  profilanswer
 

a mon avis ya un probleme avec les '"''"'"'"'"'"'" la :
 $Test = mysql_query("SELECT Id_Membres FROM Liste WHERE Login='".$Login."'" );  
 
moa je metterais WHERE Login ='$login'
mais euh faut pas trop compter sur moa chuis un peu nul :)))
mais essaye toujours on c jamais

n°187022
The Real M​axou
Posté le 31-07-2002 à 13:17:26  profilanswer
 

Et sinon c koi ca ?
 

Code :
  1. echo "DELETE FROM membre WHERE Id_Membres='".$Membre."'";


 
Tu veux que ca ecrive DELETE FROM membre WHERE Id_Membres='".$Membre."'"; sur ta page ?  :??:

n°187023
mkracing66
Posté le 31-07-2002 à 13:20:12  profilanswer
 

arf non c pas ca mais tu m as fait trouve je pense ggggrrrr a force de changer mes noms de table je me retrouve avec un nom de table et de variable similaire sauf a la case alors je presume que ca doit venir de la....v tester
 
Mais si qqun a une autre idee (on sait jamais) je suis preneur
 
Merci a vous...
 
Heu c etait juste histoire de debugger le echo de la requete pour la tester ensuite sous phpmyadmin comme ca je suis sur que ca ne vient pas de la requete si ca merde

n°187025
Mara's dad
Yes I can !
Posté le 31-07-2002 à 13:20:31  profilanswer
 

Commence par vérifier que çà marche içi :
 
$Test = mysql_query("SELECT Id_Membres FROM Liste WHERE Login='$Login'" ) or die("Pas de connexion !" );  
 
Ensuite, y'a le pb soulevé par The Real Maxou !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°187028
The Real M​axou
Posté le 31-07-2002 à 13:22:18  profilanswer
 

Perso, je ferais :
 

Code :
  1. $Test = mysql_query("SELECT Id_Membres FROM Liste WHERE Login='$Login'" );
  2. $Membre = mysql_fetch_array($Test);     
  3.       ?>
  4.       <br><br>
  5.       <?
  6.    
  7.      
  8. $Query  = mysql_query("DELETE FROM membre WHERE Id_Membres='$Membre[Id_Membres]'" ) or die("Suppression de  l'enregistrement impossible" );

n°187031
mkracing66
Posté le 31-07-2002 à 13:23:49  profilanswer
 

Heu orazur tu pose une kestion interessante...
 
Dans une requete, comme dans tout code qui demande des chaines de caracteres dans le style nom_commande(" parametre " );  
 
Doit on concatener les variable php ou on peut les mettre directement dans la chaine de caracteres ?
Je m explique peut on faire :
   nom_commande ("blabla = $Variable " );
 
ou doit on faire
   nom_commande ("blabla = ".$Variable);
 
Merci ;)
 

n°187035
The Real M​axou
Posté le 31-07-2002 à 13:25:34  profilanswer
 

Ca devrait marcher : nom_commande ("blabla = $Variable " ); :)

n°187037
Mara's dad
Yes I can !
Posté le 31-07-2002 à 13:26:28  profilanswer
 

Avec les chaînes "....", tu peux mettre directement les noms de variables, elle seront remplacées par leurs valeurs, ce qui n'est pas vrai pour les chaînes '....'.
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le 31-07-2002 à 13:26:28  profilanswer
 

n°187038
mkracing66
Posté le 31-07-2002 à 13:26:56  profilanswer
 

Ok merci bcp v tester tout ca et je viendrais editer le mess si c bon...
Merci a tous

n°187039
The Real M​axou
Posté le 31-07-2002 à 13:26:59  profilanswer
 

Mara's dad a écrit a écrit :

Avec les chaînes "....", tu peux mettre directement les noms de variables, elle seront remplacées par leurs valeurs, ce qui n'est pas vrai pour les chaînes '....'.
 
 




 
Yes, exact, y a une diff entre les double quotes, et les quotes simples :)

n°187052
mkracing66
Posté le 31-07-2002 à 13:33:48  profilanswer
 

Et pour les resultats de requetes ?
 
Il faut faire $Resultat["nom_chmap"] ou on fait $Resultat[nom_champ] ?
 
Laquelle est la bonne et la plus sur ?
 
Thx ;)

n°187075
Mara's dad
Yes I can !
Posté le 31-07-2002 à 13:56:57  profilanswer
 

En fait le problème est le suivant :
 
Je peux écrire :
 
$a["toto_1"] = 27;
echo( "Résultat :$a[toto_1]<br>\n" );
 
Mais, si je fait çà :
$a["toto 1"] = 27;
Qui est tout à fait légal, je suis obligé de faire :
echo( "Résultat :" . $a["toto 1"] . "<br>\n" );
 
Enfin, il me semble.
 
Encore plus avec :
 
$a["toto] xyz [1"] = 27;
echo( "Résultat :" . $a["toto] xyz [1"] . "<br>\n" );


Message édité par Mara's dad le 31-07-2002 à 13:59:21

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°187087
Mara's dad
Yes I can !
Posté le 31-07-2002 à 14:01:37  profilanswer
 

J'ai testé pour vous :

Code :
  1. <?php
  2. $a["toto_1"] = 27;
  3. echo( "Résultat :$a[toto_1]<br>\n" );
  4. $a["toto 1"] = 27;
  5. echo( "Résultat :" . $a["toto 1"] . "<br>\n" );
  6. /*
  7. echo( "Résultat :$a[toto 1]<br>\n" ); est interdit : çà donne :
  8. Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']'
  9. */
  10. $a["toto] xyz [1"] = 27;
  11. echo( "Résultat :" . $a["toto] xyz [1"] . "<br>\n" );
  12. echo( "Résultat :$a[toto] xyz [1]<br>\n" ); // qui donne : "Résultat : xyz [1]" !
  13. ?>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°187106
mkracing66
Posté le 31-07-2002 à 14:07:39  profilanswer
 

Merci bcp pour ces precisions  
 
:jap: :jap:  
 
:D

n°187117
Fred999
Rabat-joie
Posté le 31-07-2002 à 14:16:08  profilanswer
 

Pour résumer :  
 
quand tu crées une requête SQL, ça marche comme suit :
 

Code :
  1. $requete = "select  champ1,
  2.                     champ2
  3.             from
  4.                     matable
  5.             where
  6.                     champ3 = '$variable1'
  7.             and
  8.                     champ4 = $variable2";


 
où champ3 est de type char et champ4 numérique.
 
De manière générale, ce message arrive quand ta requête est mal formulée, ou quand tu fais une erreur dans le $row["champx"].
 
Et donc : quand tu exécutes la requête, utilise la fonction die :
 

Code :
  1. $reponse = mysql_query($requete) or die("$requete" );


 
plutôt que

Code :
  1. $reponse = mysql_query($requete) or die(mysql_error());


 
Ca te permettra de voir si ta requête est bien formulée, et si tu veux voir l'erreur, tu peux toujours la copier/coller dans phpMyAdmin ;)
 
:hello:

n°187160
mkracing66
Posté le 31-07-2002 à 14:37:44  profilanswer
 

Merci pour ces ecplicatifs...
 
pour la requete c presque ce que je faisais c pour ca qu il y avait des echo de partout c etait pour verifier sous phpmyadmin :D
 
C pas evident ces conneries de " , ' et autres...

n°187863
Fred999
Rabat-joie
Posté le 01-08-2002 à 10:36:56  profilanswer
 

C'est une petite gymnastique à laquelle tu t'habitueras! ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Je ne pige pas ce message d erreur........ [RESOLU]

 

Sujets relatifs
problemes avec les fonctions IMAP - [ PHP inside ][PHP] Pour savoir si une requete SQL a ete executee ou non ? [OK ]
[PHP] Problème pour récupérer des variables d'un formulaire[PHP] je ne capte pas !! [RESOLU] MERCI Mais ya encore une question !
Cherche algorithme de Luhn en PHP[ html 4.1 Strict ] petite erreur, comprends pas :(
[PHP] Site multilangue : les methodes.[PHP] Peut être une question con ;) mettre les liens en variable ???
Erreur 
Plus de sujets relatifs à : [PHP] Je ne pige pas ce message d erreur........ [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR