{MySQL} probleme mysql_query / mysql_connect

Résolu
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   -  
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   -
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

28 réponses

Thread Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   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
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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
Thread Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   35
 
Ouais sauf que : mysql_connect("INSERT INTO sondage (nom, resultat)".
" VALUES ('$pseudo', '$choix' ) ")

ca me chagrine ^^
Ce serait plutôt mysql_query(....
0
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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
Thread Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   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
dam75 Messages postés 1063 Date d'inscription   Statut Webmaster Dernière intervention   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
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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
Thread Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   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
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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
Thread Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   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
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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
Thread Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   35
 
Tu vois une colonne "nom" à un endroit toi ? Et résultat aussi tu m'diras... C'est quoi ta base là ?
0
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
c la base de lycos de la merde je change nom par champ
0
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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
Thread Messages postés 298 Date d'inscription   Statut Membre Dernière intervention   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
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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
dam75 Messages postés 1063 Date d'inscription   Statut Webmaster Dernière intervention   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
mehdi_84 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
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