Foros del Web » Programando para Internet » PHP »

ordenar datos de sql con php

Estas en el tema de ordenar datos de sql con php en el foro de PHP en Foros del Web. hola, tengo un problema, necesito hacer una forma de ordenas los datos obtenidos de la base de datos atraves de los link del final de ...
  #1 (permalink)  
Antiguo 30/05/2003, 12:56
 
Fecha de Ingreso: mayo-2003
Mensajes: 1
Antigüedad: 20 años, 10 meses
Puntos: 0
ordenar datos de sql con php

hola, tengo un problema, necesito hacer una forma de ordenas los datos obtenidos de la base de datos atraves de los link del final de la pagina, pero no se como, quien me podria ayudar porfavor

la pagina es http://ricmtk.webcindario.com/webhosting1.php

y el codigo de fuente es este:


<?php require_once('miarroba.php'); ?>
<?
mysql_select_db($database_conn, $conn);
$query_Recordset2 = "SELECT * FROM wh";
$Recordset2 = mysql_query($query_Recordset2, $conn) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
?>


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#000000" text="#00FF00" link="#00FF00" vlink="#00FF00">
<table width="100%" border="1" cellspacing="1" bordercolor="#666666">
<tr align="center" background="a.jpg">
<td><font color="#000000">Nombre</font></td>
<td><font color="#000000">espacio</font></td>
<td><font color="#000000">sql</font></td>
<td><font color="#000000">php</font></td>
<td><font color="#000000">cgi</font></td>
<td><font color="#000000">publicidad</font></td>
<td><font color="#000000">ftp</font></td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_Recordset2['nombre']; ?></td>
<td><?php echo $row_Recordset2['megas']; ?></td>
<td><?php echo $row_Recordset2['sql']; ?></td>
<td><?php echo $row_Recordset2['php']; ?></td>
<td><?php echo $row_Recordset2['cgi']; ?></td>
<td><?php echo $row_Recordset2['publicidad']; ?></td>
<td><?php echo $row_Recordset2['ftp']; ?></td>
</tr>
<?php } while ($row_Recordset2 = mysql_fetch_assoc($Recordset2)); ?>
</table>
</body>
</html>
<?php

mysql_free_result($Recordset2);


?>



porfa ayudenme :D eske llevo artyo tiempo con el problem y no cahco como arreglarlo
  #2 (permalink)  
Antiguo 30/05/2003, 13:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Es relativamente sencillo. En los links de abajo tienes que pasar un parametre (por ejemplo, orden) con el valor el nombre del campo por el que quieres ordenar, por ejemplo webhosting1.php?orden=nombre para ordenar por nombre. Luego al comienzo del script miras a ver si existe la variable orden en el GET y si existe recoges el parametro y creas la parte del ORDER BY de la consulta. Luego concatenas la consulta con el ORDER BY creado. Seria mas o menos asi:
Código PHP:
<?php require_once('miarroba.php'); ?>
<?
$orderby
='';
if (isset(
$_GET['orden'])) {
$orden=$_GET['ordem'];  // por si lo queremos utilizar luego
$orderby=" ORDER BY $orden";
}
mysql_select_db($database_conn$conn);
$query_Recordset2 "SELECT * FROM wh".$orederby;  // si no le hemos pasado orden, $orderby sera la cadena vacia
$Recordset2 mysql_query($query_Recordset2$conn) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);
?>
Por supuesto, esto habria que mejorarlo. Para evitar que alguno usuario malevolo pase en orden valores que no correspondan a campos de la BD, tendrias que verificar que el parametro sea correcto (muy facil usando arrays). Tambien lo podrias ampliar para que la primera vez que des al link te lo ordene ascendentemente y la segunda descendente (añadir otro parametro en el link correspondiente al que se ha pinchado antes).

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:53.