Problème avec mysql_fetch_object

Résolu
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 - 28 juil. 2007 à 01:15
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 - 28 juil. 2007 à 14:07
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

cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
28 juil. 2007 à 14:07
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

 
3
theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 35
28 juil. 2007 à 01:31
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.
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
28 juil. 2007 à 02:23
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

 
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
28 juil. 2007 à 02:25
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

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
28 juil. 2007 à 06:59
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!
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
28 juil. 2007 à 09:15
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+
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
28 juil. 2007 à 13:00
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

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

SELECT *
FROM bible
WHERE nom_commun = boa constrictor










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



Jack NUMBER

 
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
28 juil. 2007 à 13:21
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+
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
28 juil. 2007 à 13:22
SELECT * FROM bible WHERE nom_commun = 'boa constrictor


'


http://www.catb.org/%7Eesr/faqs/smart-questions.html
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
28 juil. 2007 à 13:23
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
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
28 juil. 2007 à 14:05
hahaaaaaaaaaa !!!
ça marche !!

j'ai vu l'erreur de syntaxe :s

merci beaucoup JG !








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



Jack NUMBER

 
0
Rejoignez-nous