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 :

Probleme sur requete mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut Probleme sur requete mysql
    Bonjour,

    J'ai un script qui doit insérer un titre de livre dans une base de données, en incluant un identifiant récupéré dans une table auteur, dans laquelle l'auteur est inséré également dans ce même script.

    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
    $author_lastname = 'Feynman';
    $author_firstname = 'Richard';
    $book_title = 'Character';
    $author_insert = "INSERT INTO author (lastname, firstname)
    VALUES ('$author_lastname','$author_firstname')";
    /* Affichage de débuggage */
    echo("<pre>\n");
    var_dump($query);
    echo("</pre>\n");
    /* Fin affichage débuggage */ 
    mysql_query($author_insert)  or die("ERR : " . mysql_error() . "<br />SQL : " . $author_insert);
     
    $author_id_query =
    "SELECT ID FROM author
    WHERE lastname = '$author_lastname'
    AND firstname = '$author_firstname'";
    /* Affichage de débuggage */
    echo("<pre>\n");
    var_dump($query);
    echo("</pre>\n");
    /* Fin affichage débuggage */ 
     
    $author_id_result =
    mysql_query($author_id_query) or die("ERR : " . mysql_error() . "<br />SQL : " . $author_id_query);
    if (mysql_num_rows($author_id_result) <= 0)
    die("Inserted author not found!");
    else
    $author_row = mysql_fetch_row($author_id_result);
    $authorID = $author_row[0];
    $book_insert = "INSERT INTO book (authorID, title)
    VALUES ($authorID, $book_title)";
    mysql_query($book_insert)  or die("ERR : " . mysql_error() . "<br />SQL : " . $book_insert);
    /* Affichage de débuggage */
    echo("<pre>\n");
    var_dump($query);
    echo("</pre>\n");
    /* Fin affichage débuggage */
    Les deux premières requettes fonctionnent mais il y a un problème sur la requete qui insère le titre.
    Je ne comprends pas non plus pourquoi l'affichage de débugage me retourne la valeur NULL pour les premières requêtes.

    Voici ce que j'obtiens sur la page navigateur :

    NULL

    NULL

    ERR : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 2
    SQL : INSERT INTO book (authorID, title) VALUES (5, Character).

    Quelqu'un sait-il ce qui se passe ?

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    En ce qui concerne le var_dump sur $query, il retourne logiquement null, puisque à aucun moment tu ne mets de valeur dans la variable $query.

    Que veux-tu faire exactement avec ce var_dump ?

    pour la dernière requête essaye ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     $book_insert = "INSERT INTO book (authorID, title)
    VALUES ($authorID, '$book_title')";

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut
    Merci cela a marché.

    Le var_dump est simplement un code pour le débuggage que j'ai récupéré. J'ai pensé qu'en l'insérant cela m'aiderait. Mais en effet je n'avais pas vu cela.

    Mais pourquoi $book_title a-t-il besoin des guillemets simples alors que $authorID n'en a pas besoin ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les guillemets encadrent les chaines de caracteres, les chiffres viennent tel quel.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut
    D'accord, merci

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

Discussions similaires

  1. [MySQL] probleme sur requete mysql
    Par boriskov dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/07/2008, 18h02
  2. [MySQL] Probleme sur requetes imbriquées
    Par joxbl dans le forum Langage SQL
    Réponses: 41
    Dernier message: 12/04/2006, 17h20
  3. probleme resultat requete MYSQL
    Par cilies38 dans le forum Bases de données
    Réponses: 8
    Dernier message: 10/04/2006, 17h23
  4. probleme de requete mysql qui ne s'exécute pas
    Par anto48_4 dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/03/2006, 10h51
  5. aide sur requete mysql
    Par digger dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/01/2006, 10h54

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