Lire le prochain enregistrement

lemorce Messages postés 32 Statut Membre -  
lemorce Messages postés 32 Statut Membre -
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++

4 réponses

  1. liliputien2002 Messages postés 46 Statut Membre 1
     
    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
  2. lemorce Messages postés 32 Statut Membre 2
     
    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
  3. liliputien2002 Messages postés 46 Statut Membre 1
     
    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
  4. lemorce Messages postés 32 Statut Membre 2
     
    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