Lire le prochain enregistrement

Fermé
lemorce Messages postés 32 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 novembre 2003 - 6 oct. 2003 à 03:27
lemorce Messages postés 32 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 novembre 2003 - 6 oct. 2003 à 17:40
Slt,

Pour la création d'un planing, à un moment donné dans une boucle j'ai besoin d'acceder au prochain enregistrement d'une requete.
Comment faire ?

Une partie du code php :
################connexion à la bdd
mysql_select_db($database_planning_test, $planning_test);
$query_tableloc = "SELECT boatloc.idboatloc, boatloc.label FROM boatloc";
$tableloc = mysql_query($query_tableloc, $planning_test) or die(mysql_error());
$row_tableloc = mysql_fetch_assoc($tableloc);
$row_tt = mysql_fetch_row($tableloc);
$totalRows_tableloc = mysql_num_rows($tableloc);

############# boucle où aller à l'enregistrement suiavnt de la requete ci dessus
foreach ($tg as $y) // pour chaque item d'une table
	{
		echo "<tr><td>".$y."</td>";
		foreach ($monthOfYear as $key=>$nbmonth) // pour chaque mois de l'année
	 	{
	 		$taillecel = nbjour($key); //calcul du nb de jour dans le mois
			for ($i=1; $i<=$taillecel; $i++) // jour 1, on crée autant de cellule que de jour dans le mois
			{
				(A)
		if ( $row_dateloc['dat1']==$i && $row_dateloc['mois1']==$key+1 && $row_dateloc['idbateau']==$y)
					{ // si jour deb de loc = 1 et si mois de deb de loc = 1 et si bateau = 0
						$gg = $row_dateloc['dat2']-$row_dateloc['dat1']; // nb de jours de loc
						for ($yy=1;$yy<=$gg+1;$yy++) 
						{
							echo "<td>#</td>";
						}
					$i=$i+$gg;
					}
					else 
					{
						echo "<td>-</td>";
					(A)}
				}

c'est entre les flags (A) qu'il faut accéder au prochain enregistrement de ma requête 'dateloc'.
Sinon ne sera affiché que la première période de loc pour le 1° item...

Je sais pas si j'ai été assez claire ??!!

Merci de votre aide

Za++
A voir également:

4 réponses

liliputien2002 Messages postés 46 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 1 avril 2004 1
6 oct. 2003 à 10:25
lut

pour passer a l'enregistrement suivant d'une requette qui me ramenne plusieur enreg j'utilise :
$Rq="Marequette";
$Res=mysql_query($Rq);
$NumRows=mysql_num_rows($Res);
if ($NumRows>0)
{
while ($Tb=mysql_fetch_array($Res))
{
// mon traitement
}
}
else
{
echo "pas d'enreg"
}

voila si sa peu t'aider

@+
0
lemorce Messages postés 32 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 novembre 2003 2
6 oct. 2003 à 12:20
slt

je viens d'essayer ta boucle dans mon code...
Je dois pas savoir comment ça marche le résultat n'est pas bon.
mon code ici :
la connexion #################################
mysql_select_db($database_planning_test, $planning_test);
$query_dateloc = "SELECT * FROM test ORDER BY test.idbateau, test.dat1";
$dateloc = mysql_query($query_dateloc, $planning_test) or die(mysql_error());
$row_dateloc = mysql_fetch_assoc($dateloc);
$totalRows_dateloc = mysql_num_rows($dateloc);


les boucles##################################
foreach ($tg as $y) // bateau 0
	{
		echo "<tr><td>".$y."</td>";
		foreach ($monthOfYear as $key=>$nbmonth) // mois 1
	 	{
	 		$taillecel = nbjour($key);
			for ($i=1; $i<=$taillecel; $i++) // jour 1
			{
					do
					{
						if ( $row_dateloc['dat1']==$i && $row_dateloc['mois1']==$key+1 && $row_dateloc['idbateau']==$y)
						{ // si jour deb de loc = 1 et si mois de deb de loc = 1 et si bateau = 0
							$gg = $row_dateloc['dat2']-$row_dateloc['dat1']; // nb de jours de loc
							for ($yy=1;$yy<=$gg+1;$yy++) 
							{
								echo "<td>#".$i."</td>";
							}
							//$i=$i+$gg;
						}
						else 
						{
							echo "<td>-</td>";
							
						}
					}while ($Tb=mysql_fetch_array($dateloc)); // tant qu'il y a des enregistrements
				
			} // on passe au jour 2


##############################

le rendu montre 1 est 1 seul période de loc mais commençant avec 2 jours de retard.....

Je crise décidement la prog c pas pour moi.
je vais finir par le faire faire par quelqu'un d'autre (avis aux amateurs).

Ciao
0
liliputien2002 Messages postés 46 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 1 avril 2004 1
6 oct. 2003 à 13:10
re

a la place de ton do { ...} while();

essaye sa comme boucle

while ($Tb=mysql_fetch_array($DateLoc))
{
// avec ton traitement
}

et vérifie si sa correspond avec ta base ...

sinon ben la jeu voit pas car ya des fonctions que tu utilise que je connais pas (mysql_fetch_assoc)
0
lemorce Messages postés 32 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 novembre 2003 2
6 oct. 2003 à 17:40
slt,

non ça marche pas non plus.

Il n'execute que 2 itérations de la boucle et ça s'arrete là, aucune période ne s'affiche.

my_sql_fetch_assoc c la meme chose que mysql_fetch_array utilisée avec l'option MYSQL_ASSOC (php 4)

Bref j'y comprend rien

Merci pour ton aide
0