J'ai une requête que je veux trier par ordre alphabétique, mais l'astuce est que je veux que le tri traite deux colonnes de manière égale. Par exemple, si la première rangée de first_col
est égal à apple
et la deuxième rangée de second_col
est égal à aardvark
Je veux la valeur dans la deuxième rangée de second_col
à la liste avant la valeur dans la première rangée de first_col
. Une valeur (pas NULL
ou ''
) existera toujours dans chaque ligne de second_col
, mais la valeur dans first_col
peut être ''
. J'espère avoir expliqué cela assez bien. Je ne me soucie pas si je dois utiliser MySQL ou PHP pour cela, mais une fois triés, le tableau est lu et répercuté dans un tableau HTML. Des pensées?Tri d'une requête MySQL avec ORDER BY ou avec des fonctions de tri PHP
EDIT
C'est ce que j'ai pour le code en ce moment. Dans ma requête MySQL j'ai besoin de b_name
et l_name
pour être égal. La colonne b_name
n'a pas toujours de valeur. Lorsque je mets les valeurs dans le tableau, il est basé sur l'existence de b_name
. Si b_name
n'existe pas, les f_name
et l_name
sont combinés pour remplacer b_name
.
$query = "SELECT * FROM customers ORDER BY b_name, l_name";
$result = mysql_query($query);
mysql_close($link);
$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++){
$row = mysql_fetch_array($result);
$class = (($i % 2) == 0) ? "table_odd_row" : "table_even_row";
if($row[b_name]!=''){
echo "<tr class=".$class.">";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[c_id]."</a></td>";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[b_name]."</a></td>";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[phone]."</a></td>";
echo "</tr>";
}
else{
echo "<tr class=".$class.">";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[c_id]."</a></td>";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[f_name]." ".$row[l_name]."</a></td>";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[phone]."</a></td>";
echo "</tr>";
}
}
?>
</table>
Si la première ligne est ' « a », « b'' et la deuxième rangée est' » b « » a'' et les deux colonnes sont traitées de façon égale, laquelle de ces lignes doit venir en premier lieu et Pourquoi? –
Montrez-nous la requête.UNION –