Erreur warning mysql_fetch_array
fabrice11901
Messages postés
787
Date d'inscription
Statut
Membre
Dernière intervention
-
fabrice11901 Messages postés 787 Date d'inscription Statut Membre Dernière intervention -
fabrice11901 Messages postés 787 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je vous donne mon code et l'erreur juste en dessous merci de m'aider j'ai analyser plusieurs fois mon code mais le code fais toujours cette erreur :
code php :
<?session_start();?>
<?echo $_SESSION['pseudo'];?>
<?$_SESSION['pseudo']=$_POST['pseudo'];
$dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "****");
if(!mysql_errno($dbc)) {
mysql_select_db("sons_gratuits");
$query = "SELECT naissance, sexe, ville FROM compte";
$query .= " WHERE pseudo='$pseudo'";
$requete = mysql_query($query);
while ($donnees = mysql_fetch_array($requete)) { ?>
<?$_SESSION['naissance']=$donnees['naissance']; $_SESSION['sexe']=$donnees['sexe']; $_SESSION['ville']=$donnees['ville'];?>
<?
if(isset($_POST['message']))
{
$pseudo=$_SESSION['pseudo']; $naissance=$donnees['naissance']; $sexe=$donnees['sexe']; $ville=$donnees['ville']; $h=date("U");
$msg = trim($_POST['message']);
$m = htmlentities($msg);
$requete = "insert into chat1 VALUES('' , '".$pseudo."' , '".$naissance."' , '".$sexe."' , '".$ville."' ,$h , NOW() , \"".$m."\")";
$dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "****");
if(!mysql_errno($dbc))
{
//***Sélection de la base de données***
mysql_select_db("sons_gratuits");
$requete=@mysql_query($requete) or die("Impossible d'executer la requete : " . mysql_error());
mysql_close();
}
else
{
echo mysql_errno($dbc)." : ".mysql_error($dbc)."\n";
}
}
}}
?>
<HTML> <FORM METHOD="POST" action="chat1.php"> Message :<INPUT TYPE="text" name="message"> <INPUT TYPE="submit" value="Envoyer le message !"> </FORM> </html>
et l'erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/f/0/sons.gratuits/chat1.php on line 15
en fait quand je me connecte à ma bdd j'arrive sur donc cette page avec le formulaire ou je dois rentrer mon message, et quand je fais envoyer sur le formularie j'ai cette erreur; merci de m'aider !
code php :
<?session_start();?>
<?echo $_SESSION['pseudo'];?>
<?$_SESSION['pseudo']=$_POST['pseudo'];
$dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "****");
if(!mysql_errno($dbc)) {
mysql_select_db("sons_gratuits");
$query = "SELECT naissance, sexe, ville FROM compte";
$query .= " WHERE pseudo='$pseudo'";
$requete = mysql_query($query);
while ($donnees = mysql_fetch_array($requete)) { ?>
<?$_SESSION['naissance']=$donnees['naissance']; $_SESSION['sexe']=$donnees['sexe']; $_SESSION['ville']=$donnees['ville'];?>
<?
if(isset($_POST['message']))
{
$pseudo=$_SESSION['pseudo']; $naissance=$donnees['naissance']; $sexe=$donnees['sexe']; $ville=$donnees['ville']; $h=date("U");
$msg = trim($_POST['message']);
$m = htmlentities($msg);
$requete = "insert into chat1 VALUES('' , '".$pseudo."' , '".$naissance."' , '".$sexe."' , '".$ville."' ,$h , NOW() , \"".$m."\")";
$dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "****");
if(!mysql_errno($dbc))
{
//***Sélection de la base de données***
mysql_select_db("sons_gratuits");
$requete=@mysql_query($requete) or die("Impossible d'executer la requete : " . mysql_error());
mysql_close();
}
else
{
echo mysql_errno($dbc)." : ".mysql_error($dbc)."\n";
}
}
}}
?>
<HTML> <FORM METHOD="POST" action="chat1.php"> Message :<INPUT TYPE="text" name="message"> <INPUT TYPE="submit" value="Envoyer le message !"> </FORM> </html>
et l'erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/f/0/sons.gratuits/chat1.php on line 15
en fait quand je me connecte à ma bdd j'arrive sur donc cette page avec le formulaire ou je dois rentrer mon message, et quand je fais envoyer sur le formularie j'ai cette erreur; merci de m'aider !
A voir également:
- Erreur warning mysql_fetch_array
- Erreur 0x80070643 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
- Comment recuperer whatsapp supprimé par erreur - Guide
6 réponses
Il me semble que je t'ai déjà répondu il y a quelques jours.
Tu réaffacte une valeur à $requete alors que ta boucle en dépend.
Tu réaffacte une valeur à $requete alors que ta boucle en dépend.
re, merci de m'avoir répondu, je ne comprend pas trop ce que tu me dis; peux-tu un peu plus m'expliquer? merci de ta patience
tu fait une boucle sur les résultats de ta requête
$requête contient le résultat de ta requête $query on va dire.
Et $donnees contient la ligne courante.
La boucle while parcourt dont ligne par ligne les résultats de $requete et les met dans $donnees.
Or, à l'intérieur de ta boucle, tu affectes :
Donc, $requete ne contient plus les resultats de ta $query mais une vulgaire chaine de caractères.
Et donc lors de l'extraction de la ligne suivante, mysql_fetch_array plante.
Tu comprends ?
Tu devrais p-ê commencer à apprendre les bases de la programmation avec un bouquin ou un tutorial sur un site. Ne serait-ce que pour comprendre le fonctionnement général d'un programme, les variables, les boucles, les fonctions.
Car dans ton script par exemple, tu fais une nouvelle connexion à chaque requête ...
$requete = mysql_query($query); while ($donnees = mysql_fetch_array($requete)) { ... }
$requête contient le résultat de ta requête $query on va dire.
Et $donnees contient la ligne courante.
La boucle while parcourt dont ligne par ligne les résultats de $requete et les met dans $donnees.
Or, à l'intérieur de ta boucle, tu affectes :
$requete = "insert into chat1 VALUES('' , '".$pseudo."' , '".$naissance."' , '".$sexe."' , '".$ville."' ,$h , NOW() , \"".$m."\")";
Donc, $requete ne contient plus les resultats de ta $query mais une vulgaire chaine de caractères.
Et donc lors de l'extraction de la ligne suivante, mysql_fetch_array plante.
Tu comprends ?
Tu devrais p-ê commencer à apprendre les bases de la programmation avec un bouquin ou un tutorial sur un site. Ne serait-ce que pour comprendre le fonctionnement général d'un programme, les variables, les boucles, les fonctions.
Car dans ton script par exemple, tu fais une nouvelle connexion à chaque requête ...
Salut,
Ce que te dit wiwimagique, c'est que :
Le while utilise la variable $requete; lors de appel mysql_fetch_array() et que
dans le corps de la boucle tu reaffectes $requete :
Donc là tu déglingue le fonctionnement de ton programme.
Utilises de nouveaux noms de variables pour tes requetes et tes resultats de
requetes dans ta boucle.
Normalement un seul appel mysql_connect() suffit par script php. Même
remarque pour mysql_select_db()
Ce que te dit wiwimagique, c'est que :
Le while utilise la variable $requete; lors de appel mysql_fetch_array() et que
dans le corps de la boucle tu reaffectes $requete :
Donc là tu déglingue le fonctionnement de ton programme.
Utilises de nouveaux noms de variables pour tes requetes et tes resultats de
requetes dans ta boucle.
Normalement un seul appel mysql_connect() suffit par script php. Même
remarque pour mysql_select_db()
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re, ha oui je comprenez pas ce que tu voulez me dire et je commence à comprendre ! oui tu as raison y a deux requete; donc en fait si je modifi le nom requete par par exemple $query dans la boucle ça devrait marcher? le php je le comprend je suis juste étourdi quand je fais les script; merci de me répondre !
Salut,
Mets plutot un truc du genre $sql_2, $res_2 et $row_2. Comme ça si tu as
besoin d'imbriquer encore des requètes dans de nouvelles boucles, tu passeras à
l'indice 3 (et ainsi de suite).
Tu auras par la suite moins de mal à savoir d'où provient ton résultat, lors
d'un echo par exemple.
A+, bon courage, Crabs
Mets plutot un truc du genre $sql_2, $res_2 et $row_2. Comme ça si tu as
besoin d'imbriquer encore des requètes dans de nouvelles boucles, tu passeras à
l'indice 3 (et ainsi de suite).
Tu auras par la suite moins de mal à savoir d'où provient ton résultat, lors
d'un echo par exemple.
A+, bon courage, Crabs
re, c'est bon ça marche en effet cété les $requete qui n'allez pas par contre
je débute dans les session et j'ai juste une question : dans mon script, la première requete va chercher naissance, sexe ville, dans la table et dans la req 2 on envois des info dans la table grace au à mysql_fetch_array (naissance, sexe, ville) mon pb est que dans mon script en haut de page j'ai bien mi <?session_start();?> pour que le pseudo du membre soit mi dans session mais celui-ci ne s'enregistre pas dans ma table mysql comment ce fait-il? je vous donne le code maintenant tel que je l'ai modifier :
<?session_start();?>
<?$_SESSION['pseudo']=$_POST['pseudo'];
$pseudo=$_SESSION['pseudo'];
$dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "***");
if(!mysql_errno($dbc)) {
mysql_select_db("sons_gratuits");
$query = "SELECT naissance, sexe, ville FROM compte";
$query .= " WHERE pseudo='$pseudo'";
$requete = mysql_query($query);
while ($donnees = mysql_fetch_array($requete)) { ?>
<?$_SESSION['naissance']=$donnees['naissance']; $_SESSION['sexe']=$donnees['sexe']; $_SESSION['ville']=$donnees['ville'];?>
<?
if(isset($_POST['message']))
{
$naissance=$donnees['naissance']; $sexe=$donnees['sexe']; $ville=$donnees['ville']; $h=date("U");
$msg = trim($_POST['message']);
$m = htmlentities($msg);
$req = "insert into chat1 VALUES('' , '".$pseudo."' , '".$naissance."' , '".$sexe."' , '".$ville."' ,$h , NOW() , \"".$m."\")";
$dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "***");
if(!mysql_errno($dbc))
{
//***Sélection de la base de données***
mysql_select_db("sons_gratuits");
$req1=@mysql_query($req) or die("Impossible d'executer la requete : " . mysql_error());
mysql_close();
}
else
{
echo mysql_errno($dbc)." : ".mysql_error($dbc)."\n";
}
}
}}
?>
<HTML> <FORM METHOD="POST" action="chat1.php"> Message :<INPUT TYPE="text" name="message"> <INPUT TYPE="submit" value="Envoyer le message !"> </FORM> </html>
pour moi je trouve que au niveau des sessions est bon mais comme j'ai dit je débute juste dans les sessions je ne m'en suis jamais servi à présent;
merci !
je débute dans les session et j'ai juste une question : dans mon script, la première requete va chercher naissance, sexe ville, dans la table et dans la req 2 on envois des info dans la table grace au à mysql_fetch_array (naissance, sexe, ville) mon pb est que dans mon script en haut de page j'ai bien mi <?session_start();?> pour que le pseudo du membre soit mi dans session mais celui-ci ne s'enregistre pas dans ma table mysql comment ce fait-il? je vous donne le code maintenant tel que je l'ai modifier :
<?session_start();?>
<?$_SESSION['pseudo']=$_POST['pseudo'];
$pseudo=$_SESSION['pseudo'];
$dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "***");
if(!mysql_errno($dbc)) {
mysql_select_db("sons_gratuits");
$query = "SELECT naissance, sexe, ville FROM compte";
$query .= " WHERE pseudo='$pseudo'";
$requete = mysql_query($query);
while ($donnees = mysql_fetch_array($requete)) { ?>
<?$_SESSION['naissance']=$donnees['naissance']; $_SESSION['sexe']=$donnees['sexe']; $_SESSION['ville']=$donnees['ville'];?>
<?
if(isset($_POST['message']))
{
$naissance=$donnees['naissance']; $sexe=$donnees['sexe']; $ville=$donnees['ville']; $h=date("U");
$msg = trim($_POST['message']);
$m = htmlentities($msg);
$req = "insert into chat1 VALUES('' , '".$pseudo."' , '".$naissance."' , '".$sexe."' , '".$ville."' ,$h , NOW() , \"".$m."\")";
$dbc = @mysql_connect ("sql.free.fr", "sons.gratuits", "***");
if(!mysql_errno($dbc))
{
//***Sélection de la base de données***
mysql_select_db("sons_gratuits");
$req1=@mysql_query($req) or die("Impossible d'executer la requete : " . mysql_error());
mysql_close();
}
else
{
echo mysql_errno($dbc)." : ".mysql_error($dbc)."\n";
}
}
}}
?>
<HTML> <FORM METHOD="POST" action="chat1.php"> Message :<INPUT TYPE="text" name="message"> <INPUT TYPE="submit" value="Envoyer le message !"> </FORM> </html>
pour moi je trouve que au niveau des sessions est bon mais comme j'ai dit je débute juste dans les sessions je ne m'en suis jamais servi à présent;
merci !