2012-12-03 3 views
0

Simple question Je suppose, comment puis-je vérifier si la ligne a été groupée dans une boucle while. Je veux être en mesure de déterminer si elle a été groupée afin que je puisse changer le texte qui est renvoyé si elle est groupée mais garder les lignes qui ne sont pas groupées. J'espère que cela a du sens car je ne suis pas sûr de savoir comment l'expliquer autrement.Vérifiez si la ligne est groupée dans la boucle while

Ce code je

if($r['type'] == "Wall"){ 
$offern = $r['aff']; 
}else{ 
$offern = $offn['name']; 
} 
// IF GROUPED $r['user_id'] <- It is grouped by `user_id` -> $offern = "Several"; 

print "<tr> 
<td></td> 
       <td><a href='lockedf.php?id=".$r['user_id']."'>{$namess['username']}</a></td> 
       <td>".$offern."</td> 
       <td>{$r['point']} Points</td> 
       <td>".date("m/d/Y h:i:s A", $r['date_submitted'])."</td> 
       <td><a href='unlock.php?id={$r['id']}' class='ask'><img src='images/unlock.png' alt='' title='' border='0' /></a></td> 
       <td><a href='deny.php?id={$r['id']}' class='ask'><img src='images/trash.png' alt='' title='' border='0' /></a></td> 
       </tr>"; 
+1

Vous pouvez ajouter un 'COUNT (une colonne autre que user_ID)' à la requête. Le compte vous dira combien d'enregistrements ont été regroupés. Et si la colonne COUNT() est supérieure à 1, faites ce qu'il vous faut. –

+0

@BlaiseSwanwick à la requête principale? ou pour en créer un nouveau o.O – kira423

+0

@BlaiseSwanwick oublie ce dernier commentaire J'ai compris ce que tu voulais dire, peux-tu le poster comme une réponse pour que je puisse l'accepter – kira423

Répondre

1

Donc, si vous aviez des données comme ceci:

`USER_ID` | `FavoriteCandy` 

1  | 'Snickers' 
1  | 'Butterfinger' 
2  | 'Hershey' 
3  | 'Twix' 

Et une requête comme ceci:

SELECT USER_ID 
FROM tbl 
GROUP BY USER_ID; 

Et votre objectif était pour savoir quel utilisateur (l'utilisateur 1 dans ce cas) pourrait manquer des bonbons, car il a été groupé sur ... vous pouvez le faire:

SELECT `USER_ID`, COUNT(`FavoriteCandy`) 
FROM tbl 
GROUP BY USER_ID; 

Ou, limiter à simplement les utilisateurs qui sont regroupés comme ceci:

SELECT `USER_ID` 
FROM tbl 
GROUP BY USER_ID 
HAVING COUNT(`FavoriteCandy`) > 1; 
Questions connexes