Problème avec mysql_fetch_object

Résolu
Signaler
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
-
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
-
bonjour à tous !!
je suis débutant dans le PHP mais j'ai de solides connaissances en HTML qui me permettent d'évoluer sans trop de problèmes sur un code PHP.

Voilà mon problème: j'ai trouvé sur Mediabox [ ICI ] un script permettant de modifier ou de supprimer des valeurs dans une base de données.
Ici je m'intéresse au script permettant de modifier les valeurs de la base.

Tout ce passe bien mais le navigateur ne reconnais pas cette ligne:
if( $result = mysql_fetch_object( $requete ) )

Je ne comprend pas pourquoi, tout le reste focntionne (et c'est la seule ligne qui n'est pas expliqué sur la page ^^).

voilà, si vous pouviez m'aider ça sera sympa, je peux poster le reste du script que j'ai modifier mais ça ne serai pas très utile.

merc i







-----------------------------------------



Jack NUMBER

 

12 réponses

Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
5
voilà !

donc ça donne (avec la correction de JG):
<? php
(...)

  //sélection de la base de données:
  $db = mysql_select_db( "curtus" ) ;
 
//récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $id  = isset($_GET["nom_commun"]) ? $_GET['nom_commun'] : 0 ;// il faut toujour définir une valeur par défaut
  $id = mysql_real_escape_string( $id, $cnx ); // Sécurité !!!
 
  //requête SQL:
  $sql = "SELECT *
            FROM bible
        WHERE nom_commun = '".$id."'" ; // Il est préférable d'encadrer la valeur par des apostrophes (ton erreur était là)
      
  //exécution de la requête:
$requete = mysql_query( $sql, $cnx ) or die( mysql_error( $cnx ) ) ;// pour savoir où est l'erreur

(...)
?>

merci énormement !








-----------------------------------------



Jack NUMBER

 
Messages postés
75
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
14 janvier 2009
33
Et pourtant si, il faudrait que tu post le reste du script (au moins la requete ...) et le message d'erreur. On peut rien faire sinon.
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
5
oké
voici le script:



<html>





<?php


  //connection au serveur:


  $cnx = mysql_connect( "localhost", "root", "cocaman" ) ;


 


  //sélection de la base de données:


  $db = mysql_select_db( "curtus" ) ;


 


  //récupération de la variable d'URL,


  //qui va nous permettre de savoir quel enregistrement modifier


  $id  = $_GET["nom_commun"] ;


 


  //requête SQL:


  $sql = "SELECT *


            FROM bible


        WHERE nom_commun = ".$id ;


       


  //exécution de la requête:


  $requete = mysql_query( $sql, $cnx ) ;


 


  //affichage des données:


  if( $result = mysql_fetch_object( $requete ) )


  {


  ?>




<form name="insertion" action="modification3.php" method="POST">


  ">


 

    ----

      nom,

      nom) ;?>">,

   

    ----

      prenom,

      prenom) ;?>">,

   

    ----

      adresse,

      adresse) ;?>">,

   

    ----

      code postal,

      cp) ;?>">,

   

    ----

      numéro de téléphone,

      telephone) ;?>">,

   

    ----

      ,

   

 



</form>


  <?php


  }//fin if


  ?>








et le message d'erreur:



Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Program Files\Xampp\xampp\htdocs\www\curtus\modification2.php on line 49












merci de m'aider theguitou




-----------------------------------------






Jack NUMBER

 
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
5
je l'utilise en test sur mon serveur interne (ça change pas grand chose mais bon ^^)
pour le mot de passe vous comprendrez que j'ai pas pu mettre le vrai :)






-----------------------------------------



Jack NUMBER

 
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
D'où vient la variable $_GET["nom_commun"] ? Est-ce bien d'un GET et pas d'un POST? A vu de nez le code est juste, du coup il y a de fortes chances que $_GET["nom_commun"] soit vide et que l'erreur vienne de là (fais un echo $sql pour vérifier)

*****
noisy communication - wherever, be everywhere!
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Salut,

Je pencherais, comme malik, pour dire que l'erreur est dans la requête SQL... Fait les qques changement suivant (en maron)

  //récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $id  = isset($_GET["nom_commun"]) ? $_GET['nom_commun'] : 0 ;// il faut toujour définir une valeur par défaut
  $id = mysql_real_escape_string( $id, $cnx ); // Sécurité !!!
 
  //requête SQL:
  $sql = "SELECT *
            FROM bible
        WHERE nom_commun = '".$id."'" ; // Il est préférable d'encadrer la valeur par des apostrophes (ton erreur était là)
       
  //exécution de la requête:
  $requete = mysql_query( $sql, $cnx ) or die( mysql_error( $cnx ) ;// pour savoir où est l'erreur

Voilà... A+

A+
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
5
bonjour !
merci à vous 2 pour vos réponses si rapides



le contenu du GET vient de la page précédente:

<?php
    //connection au serveur:
    $cnx = mysql_connect( "localhost", "root", "cakiman" ) ;
 
    //sélection de la base de données:
    $db = mysql_select_db( "curtus" ) ;
 
    //requête SQL:
    $sql = "SELECT *
          FROM bible
          ORDER BY nom_commun" ;
 
    //exécution de la requête:
    $requete = mysql_query( $sql, $cnx ) ;
 
    //affichage des données:
    while( $result = mysql_fetch_object( $requete ) )
    {
       echo("
".$result->nom_commun." / ".$result->nom_generique." [ nom_commun."">modifier ]
\n") ;
    }
  ?>
il n'y a pas vraiment de GET ou de POST, on va dire que c'est plus subtile... ou plus bourrin

malik > le contenu de nom_commun vient bien de GET (il est dans l'url) et c'est une partie du site qui sera privée, on sera 2 à l'utiliser.
echo $sql:




SELECT *
FROM bible
WHERE nom_commun =












JG > j'ai essayé de faire les modif' que tu m'a dit mais je me retrouve avec une page blanche avec cette erreur:







Parse error: syntax error, unexpected ';' in C:\...\...\modification2.php on line 47

what can I do ??





-----------------------------------------



Jack NUMBER

 
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
5
désolé !!
j'avais laissé POST
pour la vagiable $id
voila echo $sql:

SELECT *
FROM bible
WHERE nom_commun = boa constrictor










-----------------------------------------



Jack NUMBER

 
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Salut,

Il faut ABSOLUMENT que tu fasses plus attention aux messages d'erreur !!!

Parse error: syntax error, unexpected ';' in C:\...\...\modification2.php on line 47

Si tu as des problème avec l'anglais :
1. Tu vas sur http://translate.google.com/translate_t?langpair= en|fr
2. Tu entres le message d'erreur
3. Te retourneras : "Analyser l'erreur : erreur de syntaxe, inattendue « ;  » dans… de C:\ \… \ modification2.php sur la ligne 47"

Si tu ne sais pas ce que veux dire "syntaxe" ... wikipedia!

En plus... Tu as du mal recopier mon code car je ne y ai pas fait d'erreur de syntaxe.

Ensuite...
SELECT * FROM bible WHERE nom_commun =

n'est pas valide !!!
SELECT * FROM bible WHERE nom_commun = ''

l'est...

A+
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
SELECT * FROM bible WHERE nom_commun = 'boa constrictor


'


http://www.catb.org/%7Eesr/faqs/smart-questions.html
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Après relecture... j'ai fait une erreur de syntaxe :

$requete = mysql_query( $sql, $cnx ) or die( mysql_error( $cnx ) ) ;// pour savoir où est l'erreur

http://www.catb.org/%7Eesr/faqs/smart-questions.html
Messages postés
233
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
26 juin 2011
5
hahaaaaaaaaaa !!!
ça marche !!

j'ai vu l'erreur de syntaxe :s

merci beaucoup JG !








-----------------------------------------



Jack NUMBER