2010-11-22 7 views
1

J'ai une base de données avec des lignes contenant un ID et une valeur.Tri des valeurs php mysql

Je insère ces valeurs de façon aléatoire entre les nombres 1 et 100 lorsque j'insère des enregistrements, donc un ID a une valeur aléatoire. J'utilise une boucle while pour parcourir les enregistrements et les imprimer à l'écran. Cependant, la façon dont je le veux est si la valeur actuelle de la ligne dans la boucle while est inférieure à la valeur suivante, puis sortir de la boucle. Fondamentalement, ce que je demande est de savoir comment se référer à l'enregistrement suivant d'une base de données tout en boucle dans le temps en travaillant avec le courant, simplement pour en vérifier une valeur.

+0

Quelle est exactement votre question? –

Répondre

0
$lastRecord = Array(); 
foreach($records as $thisRecord){ 
    if($lastRecord['value'] < $thisRecord['value']){ 
     // do what you need to do here 
    } 
    $lastRecord = $thisRecord; 
} 

De cette façon, vous gardez toujours la valeur précédente stockée

0

Faites-l'inverse. Au lieu de sortir sur la base de l'élément suivant, il suffit de cocher sur l'élément suivant basé sur l'élément précédent (que vous pouvez simplement stocker quelque part). Je suppose que la boucle traverse les éléments et fait quelque chose; vous pouvez alors simplement vérifier l'élément précédent/actuel d'abord avant de faire quoi que ce soit et personne ne remarquera que vous avez en fait chargé l'élément suivant.

3

Essayez ceci:

$previousRow = mysql_fetch_assoc($result); 
$previousRow['ID'] = -1; 

while($currentRow = mysql_fetch_assoc($result)) 
{ 
    if($currentRow['ID'] > $previousRow['ID']) 
     break; 

    echo $previousRow['Value']; 
    $previousRow = $currentRow; 
} 
+2

Je préfèrerais initialiser '$ previousRow ['ID']' avec '0' ou' -1'. – Gumbo

+0

@Gumbo, bon point. – shamittomar

+0

Je voulais plutôt dire: Ne pas aller chercher la première ligne mais juste initialiser '$ previousRow ['ID']' avec une certaine valeur. – Gumbo