Ordenar alfabéticamente una consulta SQL para PHP

Fantastica
04 de Noviembre del 2003
Hola, soy algo novatilla en esto y me he creado un Roster sin tener mucha idea.
El caso es que quiero mostrar los nombres ordenados alfabéticamente en mi página y no se como hacerlo, ya que la siguiente consulta muestra solo el primer nombre 28 veces O_o
hasta haora lo hacía ordenando por id yo a mano y que lo muestre,pero esa tabla está en contínuo cambio y no puedo estar retocándola cada vez que añada a alguien.
esta es la colsulta:
<? $result=mysql_query("select num_usuarios from num_usuarios where id='0'",$link); $row=mysql_fetch_array($result); $num_usr=$row[num_usuarios];?>
<? for ($id==1; $id<= $num_usr; $id++){ ?>
<tr class="t2">
<form name="forma" method="post" action="http://localhost/roster/skills.php?id=<? echo($id); ?>">
<td align="left">&nbsp;</td>
<td width="15%" align="left">&nbsp;
<? $result=mysql_query("select usr from usuarios order by usr asc limit 0,28",$link); $row=mysql_fetch_array($result); echo($row[usr]);?>
<br>&nbsp;
</td>
<td width="15%" align="left">&nbsp;
<? $result=mysql_query("select cargo from usuarios where order by usr asc",$link); $row=mysql_fetch_array($result); echo($row[cargo]);?>
<br>&nbsp;
</td>
<td width="15%" align="left">&nbsp;
<? $result=mysql_query("select raza from usuarios where id='$id'",$link); $row=mysql_fetch_array($result); echo($row[raza]);?>
<br>&nbsp;
</td>
<td width="15%" align="left">&nbsp; <? if($id>0){ ?><input name="Submit" type="submit" class="t3" value="Ver"><? } ?><br>&nbsp;</td>
<td width="25%" align="left">&nbsp;</td>
</form>
</tr>
<? } ?>

eskaki
04 de Noviembre del 2003
lo de que no te salgan 28 iguales se arrgla con la
clausula DISTINCT y lo de ordenar alfabéticamente
con la claúsula ORDER BY por ejemplo

SELECT DISTINCT id FROM usuarios ORDER BY nombre;

si tienes más dudas te recomiendo que te localizes un manual de sql , para tenerlo siempre a mano


andrme
04 de Noviembre del 2003
Yo escribiría el código de esta manera, espero que te sirva.
<?
$result=mysql_query("select num_usuarios from num_usuarios where id='0'",$link); $row=mysql_fetch_array($result);
$num_usr=$row[num_usuarios];

// Partimos de la base que hay un solo registro en la tabla con id=0, de lo contrario nos estamos quedando solo con el valor del primer registro que cumpla la condición.

$query="select usr, cargo, raza from usuarios order by usr asc limit 0," . $num_usr;

// Supongo además que solo quiero mostrar tantos registro como el valor de $num_usr, y que no hay una realcioón en el id y el usuario, ya que sea cualquier valor que tenga id, siempre me mostrará los primeros registros de la tabla usuarios hasta el valor de id

$result=mysql_query($query,$link);
while ($row = mysql_fetch_array($result)) {
echo "<tr class="t2">";
echo "<form name="forma" method="post" action="http://localhost/roster/skills.php?id=" . $id ."" >";
echo "<td align="left">&nbsp;</td>";
echo "<td width="15%" align="left">&nbsp;" . $row[usr]); . "<br>&nbsp;</td>" ;
echo "<td width="15%" align="left">&nbsp;" . $row[cargo] . "<br>&nbsp;</td>";
echo "<td width="15%" align="left">&nbsp;" . $row[raza] . "<br>&nbsp;</td>";
echo "<td width="15%" align="left">&nbsp;<input name="Submit" type="submit" class="t3" value="Ver"><br>&nbsp;</td>";
echo "<td width="25%" align="left">&nbsp;</td>";
echo "</form>";
echo "</tr>";
}

//El hecho de que use echo para escribir html no tiene nada que ver, es mera costumbre. Espero que te sirva.
// No soy de usar mysql_fetch_array, tambien por costumbre uso mysql_fetch_object. Suerte

andrme
04 de Noviembre del 2003
Perdón, pero en el apuro de pasar el código puede que me halla quedado un ) de más en $row[usr], puede que me halla comido algun punto y coma y si me comí, y eso es fundamental, el comillado dentro de los $row ($row["usr"]...)
Suerte de nuevo