[PHP/MySQL] probleme pour recuperer des donnees d'une base MySQL

probleme pour recuperer des donnees d'une base MySQL [PHP/MySQL] - Programmation

Marsh Posté le 22-03-2002 à 18:48:24    

Salut,
 
Je fais une page pour un site qui indique les news mais j'ai un probleme car il affiche toujours la meme ligne au lieu de changer a chaque fois
 
Je vous laisse le code un peu simplifier de ma fonction
 
<?
@ $db = mysql_connect ( "localhost" , "root" , "" );
 
if (!$db)
 echo "erreur";
 
mysql_select_db(base);
 
$query = "select date_news, time_news from news";
 
$result = mysql_query($query, $db);
 
for ($rows = mysql_fetch_array($result); $i<5; $i++)
 
 {
 
 $date = $rows["date_news"];
 $time = $rows["time_news"];
 
 echo "Message poste le $date à $time<br>";
 
 
 };
 
?>
 
Merci d'avance pour votre aide car la je commence a m'enerver un peu dessus

Reply

Marsh Posté le 22-03-2002 à 18:48:24   

Reply

Marsh Posté le 22-03-2002 à 18:52:37    

c'est quoi ce point virgule après l'accolade fermante de ton for ???
 
là --> };
 
enlève le please

 

[jfdsdjhfuetppo]--Message édité par THE REAL SMILEY--[/jfdsdjhfuetppo]


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 22-03-2002 à 19:48:21    

for ($rows = mysql_fetch_array($result); $i<5; $i++)
La partie en gras n'est exécutée qu'à l'entrée dans la boucle.
donc tu lit 5 fois le contenu de $rows, mais sans le mettre à jour.

Reply

Marsh Posté le 22-03-2002 à 19:50:38    

bjbebert a écrit a écrit :

for ($rows = mysql_fetch_array($result); $i<5; $i++)
La partie en gras n'est exécutée qu'à l'entrée dans la boucle.
donc tu lit 5 fois le contenu de $rows, mais sans le mettre à jour.  



:non: spa vrai, c'est éxécuté à chaque fois


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 22-03-2002 à 20:21:48    

essaye ca :
 
 
$query = "select date_news, time_news from news";  
 
$result = mysql_query($query, $db);  
 
while (list($date,$time)=mysql_fetch_row($result))
{
 echo "Message posté le $date $time";
}


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
Reply

Marsh Posté le 22-03-2002 à 20:37:52    

THE REAL SMILEY a écrit a écrit :

 :non: spa vrai, c'est éxécuté à chaque fois  




 
Je suis d'accord avec bjbebert , dans une boucle for, la première partie sert à l'initialisation de la boucle et n'est donc exécutée qu'au début de la boucle.
De plus je ne le vois pas initialiser la variable $i
 
Je pense que c'est plutôt ça qu'il veut faire :
 
for ($i=0; $i<5; $i++, $rows = mysql_fetch_array($result))  
...

Même si ce serait mieux de mettre le '$rows = ...' dans la boucle.

Reply

Marsh Posté le 22-03-2002 à 20:42:29    

Tentacle a écrit a écrit :

 
 
Je suis d'accord avec bjbebert , dans une boucle for, la première partie sert à l'initialisation de la boucle et n'est donc exécutée qu'au début de la boucle.
De plus je ne le vois pas initialiser la variable $i
 
Je pense que c'est plutôt ça qu'il veut faire :
 
for ($i=0; $i<5; $i++, $rows = mysql_fetch_array($result))  
...

Même si ce serait mieux de mettre le '$rows = ...' dans la boucle.  




Ouh la, mais c'est bien sûr !!!
je suis peu habitué à voir for() utilisé ainsi, ca m'a un peu déstabilisé  :sweat:


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 22-03-2002 à 20:44:05    

Citation :

Je pense que c'est plutôt ça qu'il veut faire :  
 
for ($i=0; $i<5; $i++, $rows = mysql_fetch_array($result))


 
sauf qu'il faut initialiser $rows avant de rentrer dans la boucle donc ca serait plutot :  
 
$rows = mysql_fetch_array($result);
for ($i=0; $i<4; $i++, $rows = mysql_fetch_array($result))
{
...
}

Reply

Marsh Posté le 22-03-2002 à 20:45:08    

THE REAL SMILEY a écrit a écrit :

 
Ouh la, mais c'est bien sûr !!!
je suis peu habitué à voir for() utilisé ainsi, ca m'a un peu déstabilisé  :sweat:  




:)
Oui d'ailleurs j'ai pas trop compris pourquoi pouletvole ;) a mis cette assignation dans l'entête du for  :heink:

Reply

Marsh Posté le 22-03-2002 à 20:46:47    

[citation][nom]HappyHarry a écrit[/nomsauf qu'il faut initialiser $rows avant de rentrer dans la boucle donc ca serait plutot :  
 
$rows = mysql_fetch_array($result);
for ($i=0; $i<4; $i++, $rows = mysql_fetch_array($result))
{
...
}  
[/citation]
 
nonon... il veut récupérer une nouvelle ligne de $result à chaque itération de la boucle for... donc soit il le met DANS la boucle for, soit à côté de $i++

 

[jfdsdjhfuetppo]--Message édité par Tentacle--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 22-03-2002 à 20:46:47   

Reply

Marsh Posté le 22-03-2002 à 20:48:46    

euh .. revise ta boucle for ...
a chaque fin d'iteration, i va etre incrementé, ET rows va etre mis a jour avec la ligne suivante du resultat de la requete
 
cf derniere partie de l'entete de la boucle for

Reply

Marsh Posté le 22-03-2002 à 20:59:29    

HappyHarry a écrit a écrit :

euh .. revise ta boucle for ...
a chaque fin d'iteration, i va etre incrementé, ET rows va etre mis a jour avec la ligne suivante du resultat de la requete
 
cf derniere partie de l'entete de la boucle for  




 
argh ! oups :) j'avais pas vu que tu avais laissé le 'rows = ...' dans la boucle for. Effectivement tu as raison, dans mon cas, la ligne ne serait mise  jour que après la première itération...
 
Mais dans tout les cas, il ferait mieux de mettre cette assignation dans la boucle et non pas dans l'entête... ça lui facilitera la tâche :)

Reply

Marsh Posté le 22-03-2002 à 20:59:54    

la dessus on est d'accord  :)

Reply

Marsh Posté le 22-03-2002 à 21:00:49    

HappyHarry a écrit a écrit :

la dessus on est d'accord  :)  




 
comme quoi on peut tous faire des erreurs :D
Même sur des trucs aussi basiques (et surtout ?)

 

[jfdsdjhfuetppo]--Message édité par Tentacle--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 22-03-2002 à 21:56:17    

Merci pour vos reponses, je vais essayer de ce pas ce que vous m'avez dit
 
Je debute en php je connais pas encore bien les fonctions
 
ms chose bizarre ce script a marche hier et ce soir y marchait plus et c'est ce point la qui me faisait bloquer
 
Encore merci  
 
A+

Reply

Marsh Posté le 22-03-2002 à 22:04:38    

Ben vi c ca on s'achete un livre et on veut faire le grand !!!
alors on tape n'importe koi mais au fait tu comprends ce ke tu tapes ???? :lol:
Et arrete de lire le soir apres l'apero c normal ke tu comprend rien !!! :crazy: et ke t'as l'impression ke ca marche le soir alors ke le matin kan t'es sobre (koike...) ca marche plus !!!
 
Voila, voila @+ pitit poulet !! :p
Ton meilleur pote jusqu'a aujourd'hui :jap:


---------------
Nicoolem - nicoolem.online.fr
Reply

Marsh Posté le 22-03-2002 à 22:13:49    

Merci pour ton soutien Nicoo :cry:  
 
Tu critiques ms bon file pas l'adresse de ton site ds ce cas  
:lol:  
 
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed