Erreur warning mysql_fetch_array
Fermé
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
-
21 oct. 2005 à 13:11
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 - 22 oct. 2005 à 09:20
fabrice11901 Messages postés 787 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 12 juillet 2007 - 22 oct. 2005 à 09:20
A voir également:
- Erreur warning mysql_fetch_array
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 5000 france tv - Forum iPhone
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
6 réponses
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
21 oct. 2005 à 13:55
21 oct. 2005 à 13:55
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.
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
21 oct. 2005 à 14:05
21 oct. 2005 à 14:05
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
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
21 oct. 2005 à 16:08
21 oct. 2005 à 16:08
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 ...
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
21 oct. 2005 à 16:13
21 oct. 2005 à 16:13
Sorry, j'ai posté sans avoir vérifié si tu avais répondu...
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
21 oct. 2005 à 16:16
21 oct. 2005 à 16:16
On a répondu presque en même temps :p
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
21 oct. 2005 à 16:11
21 oct. 2005 à 16:11
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
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
21 oct. 2005 à 17:04
21 oct. 2005 à 17:04
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 !
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
21 oct. 2005 à 18:30
21 oct. 2005 à 18:30
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
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
22 oct. 2005 à 09:20
22 oct. 2005 à 09:20
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 !