Ordenar alfabéticamente una consulta SQL para PHP
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"> </td>
<td width="15%" align="left">
<? $result=mysql_query("select usr from usuarios order by usr asc limit 0,28",$link); $row=mysql_fetch_array($result); echo($row[usr]);?>
<br>
</td>
<td width="15%" align="left">
<? $result=mysql_query("select cargo from usuarios where order by usr asc",$link); $row=mysql_fetch_array($result); echo($row[cargo]);?>
<br>
</td>
<td width="15%" align="left">
<? $result=mysql_query("select raza from usuarios where id='$id'",$link); $row=mysql_fetch_array($result); echo($row[raza]);?>
<br>
</td>
<td width="15%" align="left"> <? if($id>0){ ?><input name="Submit" type="submit" class="t3" value="Ver"><? } ?><br> </td>
<td width="25%" align="left"> </td>
</form>
</tr>
<? } ?>
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"> </td>
<td width="15%" align="left">
<? $result=mysql_query("select usr from usuarios order by usr asc limit 0,28",$link); $row=mysql_fetch_array($result); echo($row[usr]);?>
<br>
</td>
<td width="15%" align="left">
<? $result=mysql_query("select cargo from usuarios where order by usr asc",$link); $row=mysql_fetch_array($result); echo($row[cargo]);?>
<br>
</td>
<td width="15%" align="left">
<? $result=mysql_query("select raza from usuarios where id='$id'",$link); $row=mysql_fetch_array($result); echo($row[raza]);?>
<br>
</td>
<td width="15%" align="left"> <? if($id>0){ ?><input name="Submit" type="submit" class="t3" value="Ver"><? } ?><br> </td>
<td width="25%" align="left"> </td>
</form>
</tr>
<? } ?>
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
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
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"> </td>";
echo "<td width="15%" align="left"> " . $row[usr]); . "<br> </td>" ;
echo "<td width="15%" align="left"> " . $row[cargo] . "<br> </td>";
echo "<td width="15%" align="left"> " . $row[raza] . "<br> </td>";
echo "<td width="15%" align="left"> <input name="Submit" type="submit" class="t3" value="Ver"><br> </td>";
echo "<td width="25%" align="left"> </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
<?
$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"> </td>";
echo "<td width="15%" align="left"> " . $row[usr]); . "<br> </td>" ;
echo "<td width="15%" align="left"> " . $row[cargo] . "<br> </td>";
echo "<td width="15%" align="left"> " . $row[raza] . "<br> </td>";
echo "<td width="15%" align="left"> <input name="Submit" type="submit" class="t3" value="Ver"><br> </td>";
echo "<td width="25%" align="left"> </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
