Probleme de requete en php et sql

Fermé
romsrc - 3 avril 2009 à 15:05
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 3 avril 2009 à 22:06
Bonjour,
voici une partie de mon code:


$query="SELECT * FROM table_poids_ec ORDER BY `FID_BOUCLE` DESC";
$result=mysql_query($query);
while ($donnees = mysql_fetch_assoc($result) )
{


// ID_POIDS_EC
$gr++;
echo "<table><tr>";
echo "<td class='type'></td>";
echo "<td class='animal'>".$donnees['FID_BOUCLE']. "</td>";
echo "<td class='poid'>".$donnees['COL_POIDS_EC']." kg</td>";
echo "<td class='ec'>".$donnees['COL_EC']."</td>";
echo "<td class='jour'>".$donnees['COL_DATE_POIDS_EC']."</td>";

//if($donnees['FID_BOUCLE']!= de la donnée FID_boucle suivante)
{....}


}

je sais pas si je suis bien clair avec mon petit commentaire final mais en gros j'aimerai rajouté un formulaire
que a la dernière valeur identique de FID_BOUCLE mais je sais pas quel code mettre pour avoir la valeur suivante de la clé.
A voir également:

2 réponses

Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 330
3 avril 2009 à 17:26
Il faut que tu travailles dans l'autre sens : commence par lire la valeur de FID_BOUCLE courante, stocke-la dans une variable $FID_precedent (initialisée à NULL avant la boucle) et au coup suivant tu vérifieras ta condition.

Mais tout dépend ce que tu veux faire, ça n'est pas forcément possible de travailler dans cet "autre sens". Ca dépend de ce qu'il y a dans le {....}.
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
3 avril 2009 à 22:06
Une autre solution:

stocker les valeurs dans un array car dans la boucle while tu ne peux pas "lire" ce qu'il y a après

et au moment de l'affichage l'array (a 2 dimensions) te permet de faire ce que tu veux

$query="SELECT * FROM table_poids_ec ORDER BY `FID_BOUCLE` DESC";
$result=mysql_query($query);
$array_donnees=array(); //init array dans lequel on va stocker les donnnes pour pouvoir comparer
while ($donnees = mysql_fetch_assoc($result) )
{
//on empile dans un array a deux dimensions 
$array_donnees[]=array('FID_BOUCLE'=$donnees['FID_BOUCLE'],'COL_POIDS_EC'=$donnees['COL_POIDS_EC'],'COL_EC'=$donnees['COL_EC'],'COL_DATE_POIDS_EC'=$donnees['COL_DATE_POIDS_EC']);
}

//affichage

foreach( $array_donnees as $cle=>$value)
// ID_POIDS_EC
$gr++; // ça sert à quoi ?
echo "<table><tr>";
echo "<td class='type'></td>";
echo "<td class='animal'>".$value['FID_BOUCLE']. "</td>";
echo "<td class='poid'>".$value['COL_POIDS_EC']." kg</td>";
echo "<td class='ec'>".$value['COL_EC']."</td>";
echo "<td class='jour'>".$value['COL_DATE_POIDS_EC']."</td>";

if($value['FID_BOUCLE']!= $array_donnees[$cle+1]['FID_BOUCLE']) // dans un array on peut lire ce qu'il y a dans la cle suivante sans pb
{....}
0