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 :

[SQL] Pb d'insertion donnée dans table, pb requête SQL


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de PuppeT mAsTer
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 75
    Points
    75
    Par défaut [SQL] Pb d'insertion donnée dans table, pb requête SQL
    Bonjour à tous je suis entrain d'essayer de réaliser un script de connexion à ma base mysql et pour ne pas que les codes d'accès soit dans le code des php je souhaite les insérer dans une page inc.php avec un include.
    La connexion est pour le moment sur un serveur local donc le code de connexion donne cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
      define("HOST","localhost");
      define("USER","root");
      define("PASS","");
      $idconnect=mysql_connect(HOST,USER,PASS);
      $idbase=mysql_select_db(hitsport);
      if (!isset($idconnect)) {
          echo "La connexion a échoué " ;
      }
      ?>
    Et pour mon test je décide de demander avec une requête le nombre de membres avec ce script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    include("connect.inc.php")
    $nbremembre = "SELECT `login` FROM `membres`";
    $countmembre=mysql_query($nbremembre,$idconnect);
    echo "Il y a ".mysql_num_rows($countmembre)." membres.";
    ?>

    Voici le message d'erreur lorsque j'actualise le script de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, unexpected T_VARIABLE in C:\wamp\www\Hit&Sport\function_connection.php on line 3
    Je pense que le pb vient clairement de ma variable $idconnect seulement je en vois pas comment faire mieux ?

    Merci de m'aider

    PM
    Webmaster en herbe Mugenien pour toujours

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Manquerait pas le point-virgule avec le include par hasard
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Membre régulier Avatar de PuppeT mAsTer
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 75
    Points
    75
    Par défaut
    Oups je suis un je crois qu'il est préférable de détruire ce post.
    Merci en tout cas, ça marche

    Par contre j'ai un autre problème avec une requête sql pour mettre à jour la table membres de ma base lorsque quelqu'un s'inscrit. Voici la partie du script qui doit planter et probablement la requête SQL (en gras) Le problème est que rien ne s'inscrit dans les colonnes de ma table lorsque je rentre des données

    Je pense que j'ai mal écrit la requête SQL à cause des apostrophes donc pouvez vous m'expliquer si il ya une règle à suivre pour ne pas se tromper avec les guillemets et les apostrophes ?
    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
    <?php
    if (isset($_POST["pseudo"]) && isset($_POST["email"]) && isset($_POST["password1"]) && isset($_POST["password2"]) && isset($_POST["webnews"]))
    {
       $pseudo=$_POST["pseudo"];
       $password=$_POST["password1"];
       $password2=$_POST["password2"];
       $email=$_POST["email"];
       $sexe=$_POST["sexe"];
       $nom=$_POST["nom"];
       $prenom=$_POST["prenom"];
       $datenaissance= $_POST["journaissance"]."/".$_POST["moisnaissance"]."/".$_POST["anneenaissance"] ;
       $rue=$_POST["rue"];
       $codepost=$_POST["codepost"];
       $ville=$_POST["ville"];
       $sportpratique=$_POST["sportpratique"];
       $siteweb=$_POST["siteweb"];
       $webnews=$_POST["webnews"];
    
     if (!empty($_POST["pseudo"]) && !empty($_POST["email"]) && !empty($_POST["password1"]) && !empty($_POST["password2"]) && !empty($_POST["webnews"]) && $password==$password2)
     {
      $password=$_POST["password1"];
      include ("connect.inc.php");
      $majmembre="INSERT INTO membres VALUES('$pseudo','$password','$email','$sexe','$nom','$prenom','$datenaissance','$rue','$codepost','$ville','$sportpratique','$siteweb','$webnews')";
      $reqmembre=mysql_query($majmembre,$idconnect);
      if ($reqmembre=TRUE) {
        echo "Transfert effectué";
      }
      mysql_close($idconnect);
    Webmaster en herbe Mugenien pour toujours

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Pour les guillemets / quotes :
    http://pbnaigeon.developpez.com/tuto...phe-guillemet/

    Mais ça me semble correct comme syntaxe...

    Par contre quand on fait un INSERT c'est mieux de nommer les champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table (champs) VALUES (valeurs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reqmembre=mysql_query($majmembre,$idconnect) or die(mysql_error());
    Pour voir ce qui foire.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Membre régulier Avatar de PuppeT mAsTer
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 75
    Points
    75
    Par défaut
    L'erreur vient bien de la requête sql, j'ai rajouté le misql_error et voici le message d'erreur lorsque je ne nomme pas les champs de la base :

    Column count doesn't match value count at row 1

    Et lorsque je les nomme ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $majmembre="INSERT INTO (pseudo,password) membres VALUES('$pseudo','$password','$email','$sexe','$nom','$prenom','$datenaissance','$rue','$codepost','$ville','$sportpratique','$siteweb','$webnews')";
    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 '(pseudo,password) membres VALUES('a','a','a','','','','01/01/1985','','','','auc' at line 1

    C'est bien un problème de synthaxe non?
    Webmaster en herbe Mugenien pour toujours

  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Ton $datedenaissance est un format date (ce qui serait plus utile)? Si oui, pense à mettre un to_date('TaDate','TonFormat')
    P.S: Tes deux tables ont elles la même structure?

    Je me souviens d'une personne qui voulait aussi insérer des valeurs dans deux tables en meme temps, et je sais qu'elle avait aussi rencontré des erreurs
    Essai en insérant tes valeurs table par table

    @+
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  7. #7
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    C'est pas dans le bon ordre (voir post précédent).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $majmembre="INSERT INTO membres (pseudo,password) VALUES('$pseudo','$password','$email','$sexe','$nom','$prenom','$datenaissance','$rue','$codepost','$ville','$sportpratique','$siteweb','$webnews')";
    Mais il faut nommer TOUTES les colonnes sinon c'est pas bon...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  8. #8
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Citation Envoyé par JWhite
    Oui c'est clair que c'est pas conseillé du tout de faire un INSERT dans deux tables en même temps (est-ce possible d'ailleurs ?) surtout sans nommer les champs c'est un peu aléatoire comme truc...
    Si je me souviens bien, il me semble que ça ne fonctionne pas une insertion dans deux tables en meme temps, (faudrait que je recherche, mais trop fainéant ) en fait une fois qu'il avait fait ses insertions en plusieurs fois, cela fonctionnait nickel . On en a donc déduit que c'était impossible

    Et puis, vaut mieux nommer les champs dans ce genre de situation, rien à perdre
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  9. #9
    Membre régulier Avatar de PuppeT mAsTer
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 75
    Points
    75
    Par défaut
    Mon champs date est sous forme de texte, habitude pris avec Access pour traiter l'âge, mais l'erreur ne doit pas venir d'ici.

    Ici je n'insère des infos que dans une table dans tous les cas... et j'ai bien précisé tous les champs, même l'un d'entre eux qu'à l'inscription l'utilisateur ne voit pas et j'ai toujours cette même erreur

    Est ce qu'un nom de champ peut être trop long, enfin je ne comprend pas

    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 '(pseudo,password,email,sexe,nom,prenom,datenaissance,rue,codpost,ville,sportprat' at line 1

    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $majmembre="INSERT INTO (pseudo,password,email,sexe,nom,prenom,datenaissance,rue,codpost,ville,sportpratique,siteweb,webnews,statutmembre) membres VALUES('$pseudo','$password','$email','$sexe','$nom','$prenom','$datenaissance','$rue','$codepost','$ville','$sportpratique','$siteweb','$webnews')";
    Webmaster en herbe Mugenien pour toujours

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Début de réponse dans mon post précédent
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

Discussions similaires

  1. problème d'insertion de données dans table
    Par loic20h28 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 31/01/2008, 17h26
  2. insertion de données dans table mySQL
    Par kumo dans le forum ASP
    Réponses: 13
    Dernier message: 18/12/2007, 21h34
  3. [MySQL] Problème insertion de données dans table Mysql
    Par Malcolm78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/10/2007, 17h25
  4. [VS 2005]Insertion données dans SQL Express de Visual Studio
    Par D4rkTiger dans le forum Accès aux données
    Réponses: 1
    Dernier message: 06/09/2007, 09h27
  5. [MySQL] Problème d'insertion de données dans table d'associations
    Par Yukhaa dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 07/02/2006, 17h10

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