{MySQL} probleme mysql_query / mysql_connect
Résolu
mehdi_84
Messages postés
112
Statut
Membre
-
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
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
Suivant
-
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. -
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";
?> -
Ouais sauf que : mysql_connect("INSERT INTO sondage (nom, resultat)".
" VALUES ('$pseudo', '$choix' ) ")
ca me chagrine ^^
Ce serait plutôt mysql_query(.... -
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
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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> -
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. -
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 :) -
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";
?> -
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());
-
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 -
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 ?
-
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 -
Tu vois une colonne "nom" à un endroit toi ? Et résultat aussi tu m'diras... C'est quoi ta base là ?
-
-
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 -
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. -
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 -
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é : -
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 enmysql_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 :) -
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
- 1
- 2
Suivant