Pb boucle de récupération dans bdd mysql

Résolu/Fermé
ciocciu Messages postés 42 Date d'inscription jeudi 2 novembre 2006 Statut Membre Dernière intervention 2 janvier 2009 - 8 oct. 2008 à 16:09
ciocciu Messages postés 42 Date d'inscription jeudi 2 novembre 2006 Statut Membre Dernière intervention 2 janvier 2009 - 9 oct. 2008 à 13:58
Bonjour,
je souhaite récuperer des dates enregistrée dans une bdd et les mettre dans un array
mon code marche plutot bien
le pb c'est qu'il me rate la 1ère date à chaque fois
		//requete sql trié par timestamp
	$datesql = mysql_query("SELECT ID,date_match FROM dates_matchs ORDER BY timestamp") or die(mysql_error()) ;
	$ldates = mysql_fetch_array($datesql);
$i=0;
	// on les met dans un array grace à une boucle
while ($ldates = mysql_fetch_array($datesql))
{$datef =$ldates['date_match'];


$arraydate[$i]=$datef;
$i++;


}


    print_r($arraydate);




et la dans le tableau affiché par le print_r j'ai 5 dates au lieu de 6
il manque la 1ère celle avec le timestamp le + petit

je pense que y'a un os dans ma boucle mais j'arrive pas à trouver où...
si une ame charitable passe dans le coin

merci mille fois
A voir également:

3 réponses

jypyx Messages postés 679 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 28 novembre 2012 107
8 oct. 2008 à 16:13
Et bien met $i=-1
Peut-être que ca va marcher !
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 oct. 2008 à 18:03
Normal tu fais une fois mysql_fetch_array et ensuite tu le refait dans ta boucle

le principe lorsque tu fais une extraction de BDD ça met les résultats dans une zone mémoire

pour pouvoir les exploiter il faut les sortir

mysql_fetch_array fait ça ligne par ligne en vançant le pointeur de ligne à chaque fois

donc ton premier mysql_fetch_array lit et avance le pointeur de 1

ce qui fait que dans ta boucle while ensuite ça démre en 2 ième ligne


//requete sql trié par timestamp
	$datesql = mysql_query("SELECT ID,date_match FROM dates_matchs ORDER BY timestamp") or die(mysql_error()) ;
	
$i=0;
	// on les met dans un array grace à une boucle
while ($ldates = mysql_fetch_array($datesql))
{$datef =$ldates['date_match'];


$arraydate[$i]=$datef;
$i++;


}


    print_r($arraydate);




ça devrait mieux aller comme ça non ?
@lain
0
ciocciu Messages postés 42 Date d'inscription jeudi 2 novembre 2006 Statut Membre Dernière intervention 2 janvier 2009 7
9 oct. 2008 à 13:58
super merci bcp alain
c'était exactement le pb
c'est résolu
bye
:-))
0