{MySQL} probleme mysql_query / mysql_connect

Résolu
mehdi_84 Messages postés 112 Statut Membre -  
mehdi_84 Messages postés 112 Statut Membre -
Bonjour, j'ai un problème avec la base de données lycos quand je mais ce code :
mysql_connect("INSERT INTO sondage (nom, resultat)". a la fin de mon formulaire quand je l'envoie il me dit "merci" cela veut dire qu'il a prie en compte la données, mais quand je vais dans ma base il y a pas de données

maintenant quand je mais ce code a la place :
mysql_query("INSERT INTO sondage (nom, resultat)".

quand je rempli le formulaire est que je clique sur envoyer ca me dit impossible d'envoyer a la base de données donc le quel de c'est 2 code je dois prendre et aussi comment les faire fonctionner ?
merci de votre aide
Configuration: Windows XP
Firefox 3.0.10

28 réponses

  • 1
  • 2
  1. Thread Messages postés 310 Statut Membre 35
     
    Il me semble que mysql_connect() sert à se connecter à une base donc en paramètre ceux sont les informations de connexion et non une requête qu'il faut que tu passes.

    Ensuite tu pourras effectuer ta requête avec mysql_query() avec comme paramètre ta requête.
    0
  2. mehdi_84 Messages postés 112 Statut Membre
     
    quand du parle de paramètre tu parle de ca :

    mysql_pconnect($serveur, $utilisateur , $motDePasse)
    or die("Impossible de se connecter au serveur de bases de données.");
    mysql_select_db($base)
    or die("Base de données non trouvée.");

    $pseudo = $_POST["pseudo"];
    $choix = $_POST["choix"];

    mysql_connect("INSERT INTO sondage (nom, resultat)".
    " VALUES ('$pseudo', '$choix' ) ")
    or die("Impossible d'insérer le résultat du sondage");
    echo "Merci";
    ?>
    0
  3. Thread Messages postés 310 Statut Membre 35
     
    Ouais sauf que : mysql_connect("INSERT INTO sondage (nom, resultat)".
    " VALUES ('$pseudo', '$choix' ) ")

    ca me chagrine ^^
    Ce serait plutôt mysql_query(....
    0
  4. mehdi_84 Messages postés 112 Statut Membre
     
    je me dit ca aussi mais quand je mais mysql_query quand j'envoie les données ca me dit le sondage n'a pas pu être envoyer
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mehdi_84 Messages postés 112 Statut Membre
     
    voici mes codes :

    voici mes codes:
    <?php
    $serveur = "localhost";
    $utilisateur = "belma84000";
    $motDePasse = "meh280286";
    $base = "iciturquie_db";

    mysql_pconnect($serveur, $utilisateur , $motDePasse)
    or die("Impossible de se connecter au serveur de bases de données.");
    mysql_select_db($base)
    or die("Base de données non trouvée.");

    $pseudo = $_POST["pseudo"];
    $choix = $_POST["choix"];

    mysql_connect("INSERT INTO sondage (nom, resultat)".
    " VALUES ('$pseudo', '$choix' ) ")
    or die("Impossible d'insérer le résultat du sondage");
    echo "Merci";
    ?>

    ensuite:

    <html>
    <head>
    <title>Sondage mon site !</title>
    </head>
    <body>
    <h2>Comment avez-vous découvert mon site ?</h2>
    <form method="post" action="sondage.php">
    <input type="radio" name="choix1" value="presse" />Par la presse spécialisée<br />
    <input type="radio" name="choix2" value="annuaire" />Par un annuaire<br />
    <input type="radio" name="choix3" value="moteur" />Par un moteur de recherche<br/>
    <input type="radio" name="choix4" value="forum" />Par un forum<br />
    <input type="radio" name="choix5" value="news" />Par les info<br />
    <input type="radio" name="choix6" value="ami" />Par un ami<br />
    <input type="radio" name="choix7" value="autre" />Autre<br />
    Merci de laisser votre pseudo:
    <input type="text" name="pseudo" /><br />
    <input type="submit" />
    </form>
    </body>
    0
  7. Thread Messages postés 310 Statut Membre 35
     
    J'vois pas trop, mise à part le connect, ton code à l'air correct.

    Essaye de déterminer d'où vient l'erreur, SQL ou autre et une description plus détaillé de l'erreur. Si c'est SQL donne le code d'erreur et le message par exemple.
    0
  8. dam75 Messages postés 1212 Statut Webmaster 67
     
    Bonjour,

    Effectivement, il faut faire dans l'ordre :
    1/ mysql_connect -> pour se connecter au serveur
    2/ mysql_select_db -> pour spécifier la base sur laquelle on va travailler
    3/ mysql_query -> pour éxecuter une requête

    Passer une requête à mysql_connect ne peut pas fonctionner :)

    Si mysql_query ne fonctionne pas, c'est peut être qu'il y a une erreur dans la requête : tu peux le savoir via par ex (ca t'affichera l'erreur SQL)
    mysql_query("INSERT INTO sondage (nom, resultat)"." VALUES ('$pseudo', '$choix' ) ")
    or die("Impossible d'insérer le résultat du sondage : ".mysql_error()); 
    

    Pour rappel,
    - ce mode (die avec l'erreur) n'est PAS bon pour un site en prodcution, car il donne à l'internaute presque tout ce qu'il faut pour tenter de pirater le site ...
    - il FAUT protéger les données postées via mysql_real_escape_string pour éviter les injections SQL ...
    Mais c'est un autre sujet :)
    0
  9. mehdi_84 Messages postés 112 Statut Membre
     
    ca ne marche pas les message est :Impossible d'insérer le résultat du sondage
    <?php
    $serveur = "localhost";
    $utilisateur = "belma84000";
    $motDePasse = "meh280286";
    $base = "iciturquie_db";

    mysql_pconnect($serveur, $utilisateur , $motDePasse)
    or die("Impossible de se connecter au serveur de bases de données.");
    mysql_select_db($base)
    or die("Base de données non trouvée.");

    $pseudo = $_POST["pseudo"];
    $choix = $_POST["choix"];

    mysql_query("INSERT INTO sondage (nom, resultat)".
    " VALUES ('$pseudo', '$choix' ) ")
    or die("Impossible d'insérer le résultat du sondage");
    echo "Merci";
    ?>
    0
  10. Thread Messages postés 310 Statut Membre 35
     
    C'est ta requête "INSERT INTO sondage (nom, resultat)"." VALUES ('$pseudo', '$choix' ) " qui déconne alors. Essaye de vérifier la syntaxe par rapport à ta BD (champs, table, etc).

    Et suit le conseil de dam75 et utilise ce code pour ta requête histoire de connaître le vrai problème.
    mysql_query("INSERT INTO sondage (nom, resultat)"." VALUES ('$pseudo', '$choix' ) ")
    or die("Impossible d'insérer le résultat du sondage : ".mysql_error());
    0
  11. mehdi_84 Messages postés 112 Statut Membre
     
    voici le message :Impossible d'insérer le résultat du sondage : Unknown column 'nom' in 'field list'
    apres avopr mie le code de dam75
    0
  12. Thread Messages postés 310 Statut Membre 35
     
    Bah voilà t'as ta réponse, il ne trouve pas la colonne nom dans ta table. Tu es sûr que c'est le même orthographe ?
    0
  13. mehdi_84 Messages postés 112 Statut Membre
     
    voici ma table :
    [ Afficher ] [ Sélectionner ] [ Insérer ] [ Vider ] [ Supprimer ]
    Champ Type Attributs Null Défaut Extra Action
    choix1 tinyint(4) Non 0 Modifier Supprimer Primaire Index
    choix2 tinyint(4) Non 0 Modifier Supprimer Primaire Index
    choix3 tinyint(4) Non 0 Modifier Supprimer Primaire Index
    choix4 tinyint(4) Non 0 Modifier Supprimer Primaire Index
    choix5 tinyint(4) Non 0 Modifier Supprimer Primaire Index
    choix6 tinyint(4) Non 0 Modifier Supprimer Primaire Index
    choix7 tinyint(4) Non 0 Modifier Supprimer Primaire Index
    pseudo tinyint(4) Non 0 Modifier Supprimer Primaire Index
    Pour la sélection : Pour la sélection : Ou

    Espace utilisé :
    Type Espace
    Données 0 Octets
    Index 1 024 Octets
    Total 1 024 Octets
    Statistiques :
    Information Valeur
    Format fixe
    Enregistrements 0
    0
  14. Thread Messages postés 310 Statut Membre 35
     
    Tu vois une colonne "nom" à un endroit toi ? Et résultat aussi tu m'diras... C'est quoi ta base là ?
    0
  15. mehdi_84 Messages postés 112 Statut Membre
     
    c la base de lycos de la merde je change nom par champ
    0
  16. mehdi_84 Messages postés 112 Statut Membre
     
    regarde la page de ma base

    Base de données iciturquie_db - table sondage

    [ Afficher ] [ Sélectionner ] [ Insérer ] [ Vider ] [ Supprimer ]
    Champ Type Attributs Null Défaut Extra Action
    choix1 tinyint(4) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix2 tinyint(4) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix3 tinyint(4) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix4 tinyint(4) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix5 tinyint(4) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix6 tinyint(4) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix7 tinyint(4) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    pseudo tinyint(4) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    Pour la sélection : Pour la sélection : Ou

    Espace utilisé :
    Type Espace
    Données 0 Octets
    Index 1 024 Octets
    Total 1 024 Octets
    Statistiques :
    Information Valeur
    Format fixe
    Enregistrements 0

    *
    Version imprimable
    *
    Exécuter une ou des requêtes sur la base iciturquie_db [Documentation] :
    SELECT * FROM `sondage` WHERE 1
    Réafficher la requête après exécution
    Ou Emplacement du fichier texte :

    *
    Ajouter un champ :
    *
    Insérer un fichier texte dans la table
    *
    Afficher le schéma de la table
    Structure seule
    Structure et données
    Données seulement
    Données CSV pour Ms Excel
    Données CSV :
    Champs terminés par
    Champs entourés par
    Caractère spécial
    Lignes terminées par Ajouter des énoncés "drop table"
    Insertions complètes
    Insertions étendues
    Protéger les noms des tables et des champs par des "`"

    Transmettre ( "gzippé" )
    Premier enregistrement -- nb. d'enregistrements
    *
    Changer le nom de la table pour :

    Copier la table vers (Base de données.table) :
    .
    Structure seule
    Structure et données
    *
    Maintenance de la table : Vérifier la table [Documentation] - Analyser la table [Documentation]
    Réparer la table [Documentation] - Optimiser la table [Documentation]

    *
    Commentaires sur la table :
    *
    Table en format : [Documentation]
    * Supprimer la table sondage
    0
  17. Thread Messages postés 310 Statut Membre 35
     
    T'essaye d'insérer des valeurs dans les champs "nom" et "resultat" or ils n'existent pas...
    Il te faut donc les créer.
    0
  18. mehdi_84 Messages postés 112 Statut Membre
     
    j'ai réussi a avoir "merci" en créant une ligne résultat et pour le non j'ai mie choix1 regarde:

    mysql_query("INSERT INTO sondage (choix1, resultat)"." VALUES ('$pseudo', '$choix' ) ")
    or die("Impossible d'insérer le résultat du sondage : ".mysql_error());
    echo "Merci";
    ?>

    peut me dire comment il faut configurer la base pour quel m'affiche les résultat d'un formulaire avec des boutons radio . parce que la base a reçus un enregistrement mais je ne vois pas le chois et le pseudo merci
    0
  19. mehdi_84 Messages postés 112 Statut Membre
     
    voiles resultat qui ne s'affiche pas :

    Affichage des enregistrements 0 - 2 (2 total)
    requête SQL : [Modifier]
    SELECT * FROM `sondage` LIMIT 0, 30

    lignes à partir de

    choix1 choix2 choix3 choix4 choix5 choix6 choix7 pseudo resultat
    Modifier Effacer 0 0 0 0 0 0 0 0 0
    Modifier Effacer 0 0 0 0 0 0 0 0 0

    lignes à partir de

    Insérer un nouvel enregistrement

    Intitulé :
    0
  20. dam75 Messages postés 1212 Statut Webmaster 67
     
    oula c'est pas encore gagné ;)

    TOUS tes champs sont des TINYINT, c'est à dire qu'ils ne peuvent contenir QUE des entiers numériques compris entre 0 et 255 (ou -127 à 127 si signed) ...
    Or ca m'etonnerait que ton $pseudo soit un entier ? idem pour $choix ???

    -> tu devrais essayer de modifier la structure de la table par exemple en déclarant des CHAR(30) ?

    Et pour en avoir le coeur net modifie ton code en
    mysql_query("INSERT INTO sondage (choix1, resultat)"." VALUES ('$pseudo', '$choix' ) ")
    or die("Impossible d'insérer le résultat du sondage : pseudo=$pseudo, choix=$choix".mysql_error()); 
    

    Ca affichera ce que tu essaies d'insérer et on verra bien si ce sont des numériques ... mais je n'y crois pas :)
    0
  21. mehdi_84 Messages postés 112 Statut Membre
     
    j'ai modifier mon code :

    mysql_pconnect($serveur, $utilisateur , $motDePasse)
    or die("Impossible de se connecter au serveur de bases de données.");
    mysql_select_db($base)
    or die("Base de données non trouvée.");

    $pseudo = $_POST["pseudo"];
    $choix = $_POST["choix"];

    mysql_query("INSERT INTO sondage (choix1, resultat)"." VALUES ('$pseudo', '$choix' ) ")
    or die("Impossible d'insérer le résultat du sondage : pseudo=$pseudo, choix=$choix".mysql_error());
    echo "Merci";
    ?>

    et voici ma table :


    Base de données iciturquie_db - table sondage

    [ Afficher ] [ Sélectionner ] [ Insérer ] [ Vider ] [ Supprimer ]
    Champ Type Attributs Null Défaut Extra Action
    choix1 varchar(30) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix2 varchar(30) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix3 varchar(30) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix4 varchar(30) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix5 varchar(30) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix6 varchar(30) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    choix7 varchar(30) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    pseudo text Non Modifier Supprimer Primaire Index Unique Texte entier
    resultat varchar(30) Non 0 Modifier Supprimer Primaire Index Unique Texte entier
    Pour la sélection : Pour la sélection : Ou

    et voici les resultat :

    lignes à partir de

    Textes complets choix1 choix2 choix3 choix4 choix5 choix6 choix7 pseudo resultat
    Modifier Effacer belma84 0 0 0 0 0 0
    Modifier Effacer mehdi84000 0 0 0 0 0 0
    Modifier Effacer Rolls-game 0 0 0 0 0 0

    les pseudo ce mette dans choix1 et il n'y a rien dans resultat et pseudo et aussi il y a que des 0
    0
  • 1
  • 2