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 :

Accès à la base de données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 11
    Par défaut Accès à la base de données
    Bonjour,

    voila je dois développer un projet pour mon lycée mais je suis bloquée depuis plusieurs jours maintenant. C'est pourquoi j'en appel a votre aide.


    J'ai créé la page php suivante:
    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
    <?php
     
    $nom=$_POST["nom"];
    $passwd=$_POST["passwd"];
     
    $db = mysql_connect("localhost", $nom, $passwd); 
    mysql_select_db("boulangerie",$db);
     
    $n_client=$_POST["n_client"];
    $raison_sociale=$_POST["raison_sociale"];
    $adresse=$_POST["adresse"];
    $ville=$_POST["ville"];
    $code_postal=$_POST["code_postal"];
    $telephone=$_POST["telephone"];
    $code_categorie=$_POST["code_categorie"];
     
    $reponse = mysql_query("SELECT n_client FROM Clients WHERE n_client='".$n_client."'");
     
    $nb=mysql_num_rows ($reponse);
    if($nb!=0)
    {
    echo "Ce numero client est deja attribué.";
    }
     
    else {
    $reponse2 = mysql_query("INSERT INTO `boulangerie`.`Clients`(`n_client`,`raison_sociale`,`adresse`,`ville`,`code_postal`,`telephone`,`code_categorie`)
    VALUES('$n_client','$raison_sociale','$adresse','$ville',`$code_postal`,`$telephone`,`$code_categorie`);");
     
    echo"Votre ajout a été effectué." ;
    }
     
    mysql_close(); 
    ?>

    Mais voici la réponse qui m'est retournée :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/pti/ajoutclient.php on line 32
    Votre ajout a été effectué.



    Merci de votre aide.

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Bonjour et bienvenue sur le forum.

    Tout d'abord pour que ton code soit lisible par tous essaye de le mettre dans une balise code (le # dans l'éditeur).
    Ensuite pour avoir une erreur plus précise essaye de construire tes requetes de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql="select * from table";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    ça te permettra d'avoir l'erreur SQL précise.
    Sinon à quelle ligne correspond la ligne 32? Si c'est celle du INSERT ça peut venir du fait que tu es des ` au lieu de ' dans tes VALUES.

  3. #3
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonsoir,

    A prioris, le problème vient des apostrophes dans la seconde requète.
    Tu utilises ` au lieu de '.

    Pour être sûr, il faut que tu éxécutes tes commandes SQL de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql = "SELECT ... ";
    mysql_query($sql) or die("ERR : " . mysql_error() . "<br />SQL = ". $sql;
    Ca affichera le message d'erreur SQL et la commande exacte qui vient d'être éxécutée.

    Gillou.

    [Édit]
    j'ai été devancé

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 11
    Par défaut
    voila je viens de modifier mon code

    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
    <?php
    $nom=$_POST["nom"];
    $passwd=$_POST["passwd"];
     
    $db = mysql_connect("localhost", $nom, $passwd); 
    mysql_select_db("boulangerie",$db);
     
    $n_client=$_POST["n_client"];
    $raison_sociale=$_POST["raison_sociale"];
    $adresse=$_POST["adresse"];
    $ville=$_POST["ville"];
    $code_postal=$_POST["code_postal"];
    $telephone=$_POST["telephone"];
    $code_categorie=$_POST["code_categorie"];
     
    $reponse = "SELECT n_client FROM Clients WHERE n_client='".$n_client."'";
    mysql_query($reponse) or die("ERR : " . mysql_error() . "<br />SQL = ". $reponse);
     
    $nb=mysql_num_rows ($reponse);
    if($nb!=0)
    {
    echo "Ce numero client est deja attribué.";
    }
     
    else {
    $reponse2 = "INSERT INTO boulangerie.Clients(n_client,raison_sociale,adresse,ville,code_postal,telephone,code_categorie)
    VALUES($n_client,$raison_sociale,$adresse,$ville,$code_postal,$telephone,$code_categorie)";
    mysql_query($reponse2) or die("ERR : " . mysql_error() . "<br />SQL = ". $reponse2);
     
    echo"Votre ajout a été effectué." ;
    }
     
    mysql_close(); 
    ?>
    et voici la reponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERR : No database selected
    SQL = SELECT n_client FROM Clients WHERE n_client='1'

  5. #5
    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
    vérifie que ta connexion se produit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = mysql_connect("localhost", $nom, $passwd) or die("Impossible de se connecter : " . mysql_error());
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Apparemment la base boulangerie n'existe pas. Ajoute un die également sur la ligne du mysql_select_db.

  7. #7
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    En effet, le problème vient du fait que "boulangerie" n'est pas une base de données...
    Vérifie l'orthographe de ta base de données

Discussions similaires

  1. [C#] Accés à une base de données AS400
    Par Green Hornet dans le forum Accès aux données
    Réponses: 8
    Dernier message: 14/11/2011, 11h26
  2. Accès à une base de données ACCESS
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/01/2005, 08h23
  3. Accès aux bases de données Access
    Par xela dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/12/2004, 09h07
  4. [JDBC]acces à une base de données mysql
    Par sehaba dans le forum JDBC
    Réponses: 13
    Dernier message: 07/12/2004, 00h39
  5. Réponses: 2
    Dernier message: 01/10/2004, 15h13

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