Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ordenacion resultados sql con form

Estas en el tema de ordenacion resultados sql con form en el foro de PHP en Foros del Web. hola buenas tardes aver si me podeis exar una HAND tengo este codigo que lo que hace es mostrar los resultados de una sql hasta ...
  #1 (permalink)  
Antiguo 27/11/2013, 12:49
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
ordenacion resultados sql con form

hola buenas tardes aver si me podeis exar una HAND tengo este codigo que lo que hace es mostrar los resultados de una sql hasta hay bien pero despues de mucho preguntar y demas se me ocurrio hacer una cosa que funciono para filtrar los resultados con una lista desplegable al mas puro estilo ordenar por precio,nombre,etc..... pero me da un error y no se como solucionarlo....

sin el desplegable funciona de maravilla pero con el....

Código PHP:
Ver original
  1. <form method="post" action="precogida.php" enctype="multipart/form-data">
  2. Ordenar por: <select name="filtro">
  3. <option value="id" selected="selected">id</option>    
  4. <option value="npventa">npventa</option>    
  5. <option value="localidad">localidad</option>    
  6. <option value="telefono">telefono</option>    
  7. <option value="ncontacto">ncontacto</option>  
  8. </select>
  9. <input type="submit" value="Enviar datos!" >
  10.  
  11. </form>
  12.  
  13. <table border="1" align="center" width="90%">
  14.   <tr>
  15.      <td align="center"> Nombre  Gerente </td>
  16.      <td align="center"> Punto de Venta </td>
  17.      <td align="center"> Direccion </td>
  18.      <td align="center"> Codigo Postal </td>
  19.      <td align="center"> Localidad </td>
  20.      <td align="center"> Poblacion </td>
  21.      <td align="center"> Telefono </td>
  22.      <td align="center"> E-mail </td>
  23.      <td align="center"> Pagina Web </td>
  24.      
  25.     <?php //
  26.     $orden=$_POST["filtro"];
  27.  
  28. require("conexion3.php");
  29. // creo la consulta
  30. $query = "SELECT * FROM puntos ORDER by ".$orden."";
  31. // envio la consulta a MySQL
  32. $consulta = mysql_query($query);
  33.  
  34. while ($consulta2 = mysql_fetch_assoc($consulta)) {
  35. echo '
  36. <tr>
  37. <td align="center">'.$consulta2['ncontacto'].'</td>
  38. <td align="center">'.$consulta2['npventa'].'</td>
  39. <td align="center"><a href="http://maps.google.es/maps?q='.$consulta2['calle'].','.$consulta2['numero'].'" style="color:#00F">'.$consulta2['calle'].', '.$consulta2['numero'].'</a></td>
  40. <td align="center">'.$consulta2['cp'].'</td>
  41. <td align="center">'.$consulta2['localidad'].'</td>
  42. <td align="center">'.$consulta2['poblacion'].'</td>
  43. <td align="center">'.$consulta2['telefono'].'</td>
  44. <td align="center"><a href="mailto:'.$consulta2['email'].'" style="color:#00F">'.$consulta2['email'].'</a></td>
  45. <td align="center"><a href="http://'.$consulta2['web'].'" style="color:#00F">'.$consulta2['web'].'</a></td>
  46.  
  47.  
  48.  
  49.  
  50. ';
  51.  
  52. }
  53.  
  54.  
  55.     ?>
  56.     </tr></table>

aun con el error si que cumple la funcion de ordenar segun la opcion que selecciones pero me gustaria que no diese el error claro esta.
Gracias
P.D. el error que me da es:
Código PHP:
Ver original
  1. Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/a5871623/public_html/precogida.php on line 95
  #2 (permalink)  
Antiguo 27/11/2013, 12:55
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: ordenacion resultados sql con form

Y cual es el error?
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 27/11/2013, 12:56
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: ordenacion resultados sql con form

Cita:
Iniciado por xSkArx Ver Mensaje
Y cual es el error?
ya ya lo puse es que se me habia olvidado y lo edite
  #4 (permalink)  
Antiguo 27/11/2013, 13:10
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: ordenacion resultados sql con form

Depuremos, a simple vista esta todo bien, asi empecemos por la consulta
Código PHP:
Ver original
  1. $consulta = mysql_query($query) or die(mysql_error());
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #5 (permalink)  
Antiguo 27/11/2013, 13:29
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: ordenacion resultados sql con form

Cita:
Iniciado por xSkArx Ver Mensaje
Depuremos, a simple vista esta todo bien, asi empecemos por la consulta
Código PHP:
Ver original
  1. $consulta = mysql_query($query) or die(mysql_error());
Código PHP:
Ver original
  1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
  #6 (permalink)  
Antiguo 27/11/2013, 13:51
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: ordenacion resultados sql con form

Código PHP:
Ver original
  1. $query = "SELECT * FROM puntos ORDER by $orden";
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #7 (permalink)  
Antiguo 27/11/2013, 13:53
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: ordenacion resultados sql con form

Cita:
Iniciado por xSkArx Ver Mensaje
Código PHP:
Ver original
  1. $query = "SELECT * FROM puntos ORDER by $orden";
na ahora me da el siguiente error

Código PHP:
Ver original
  1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
  #8 (permalink)  
Antiguo 27/11/2013, 13:57
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: ordenacion resultados sql con form

cual es la estructura de tu tabla mysql?
  #9 (permalink)  
Antiguo 27/11/2013, 14:01
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: ordenacion resultados sql con form

Cita:
Iniciado por Dalam Ver Mensaje
cual es la estructura de tu tabla mysql?
supongo que te refieres a esto

Código SQL:
Ver original
  1. -- Table structure for table `puntos`
  2. --
  3.  
  4. CREATE TABLE `puntos` (
  5.   `id` INT(11) NOT NULL AUTO_INCREMENT,
  6.   `ncontacto` VARCHAR(50) NOT NULL,
  7.   `npventa` VARCHAR(50) NOT NULL,
  8.   `calle` VARCHAR(50) NOT NULL,
  9.   `numero` INT(4) NOT NULL,
  10.   `cp` INT(5) NOT NULL,
  11.   `localidad` VARCHAR(50) NOT NULL,
  12.   `poblacion` VARCHAR(50) NOT NULL,
  13.   `telefono` INT(9) NOT NULL,
  14.   `email` VARCHAR(50) NOT NULL,
  15.   `web` VARCHAR(50) NOT NULL,
  16.   `fecha` datetime NOT NULL,
  17.   PRIMARY KEY (`id`),
  18.   KEY `id` (`id`)
  19. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=369880 ;
  #10 (permalink)  
Antiguo 27/11/2013, 14:02
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: ordenacion resultados sql con form

Haz esto y dinos que te muestra
Código PHP:
Ver original
  1. $query = "SELECT * FROM puntos ORDER by $orden";
  2. echo $query;
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #11 (permalink)  
Antiguo 27/11/2013, 14:05
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
De acuerdo Respuesta: ordenacion resultados sql con form

Te falta definir como quieres que muestre el orden si DESC o ASC

Para que siga un orden descendiente tendria que ser
Cita:
$query = "SELECT * FROM puntos ORDER by $orden DESC";
Y para que siga un orden ascendente seria
Cita:
$query = "SELECT * FROM puntos ORDER by $orden ASC";
Es como dice un error de escritura de sintaxis.
Intenta hacer el order pero no le defines de que forma quieres que lo haga.
Prueba con una de esas opciones y veras como te funciona.
  #12 (permalink)  
Antiguo 27/11/2013, 14:06
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: ordenacion resultados sql con form

Cita:
Iniciado por xSkArx Ver Mensaje
Haz esto y dinos que te muestra
Código PHP:
Ver original
  1. $query = "SELECT * FROM puntos ORDER by $orden";
  2. echo $query;

Código PHP:
Ver original
  1. SELECT * FROM puntos ORDER by You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

y si pulso en enviar datos me cambia lo de arriba por:
Código PHP:
Ver original
  1. SELECT * FROM puntos ORDER by id
  #13 (permalink)  
Antiguo 27/11/2013, 14:25
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: ordenacion resultados sql con form

Cita:
Iniciado por Dalam Ver Mensaje
Te falta definir como quieres que muestre el orden si DESC o ASC

Para que siga un orden descendiente tendria que ser


Y para que siga un orden ascendente seria


Es como dice un error de escritura de sintaxis.
Intenta hacer el order pero no le defines de que forma quieres que lo haga.
Prueba con una de esas opciones y veras como te funciona.
na no habia visto tu mensaje sorry

pero aun poniendo ASC o DESC sigue igual
  #14 (permalink)  
Antiguo 27/11/2013, 14:26
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: ordenacion resultados sql con form

Has leido lo que te e puesto arriba?
  #15 (permalink)  
Antiguo 27/11/2013, 14:26
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: ordenacion resultados sql con form

Dalam, no es necesario, si no se especifica por defecto es ASC
xinote haz esto
Código PHP:
Ver original
  1. $orden=(isset($_POST['orden']))? $_POST['orden']: "id";
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #16 (permalink)  
Antiguo 27/11/2013, 14:31
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: ordenacion resultados sql con form

Cita:
Iniciado por xSkArx Ver Mensaje
Dalam, no es necesario, si no se especifica por defecto es ASC
xinote haz esto
Código PHP:
Ver original
  1. $orden=(isset($_POST['orden']))? $_POST['orden']: "id";
ahora si¡¡¡¡¡ muchas gracias.....

solo que en vez de
Código PHP:
Ver original
  1. $orden=(isset($_POST['orden']))? $_POST['orden']: "id";
seria.....
Código PHP:
Ver original
  1. $orden=(isset($_POST['filtro']))? $_POST['filtro']: "id";

pero bueno muchas gracias nuevamente,,

poned aki las direcciones donde debo mandar las cajas de cervezas
  #17 (permalink)  
Antiguo 27/11/2013, 14:32
Avatar de xinote  
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: ordenacion resultados sql con form

Cita:
Iniciado por Dalam Ver Mensaje
Has leido lo que te e puesto arriba?
si si ya lo lei xd

gracias nuevamente

Etiquetas: form, mysql, ordenacion, resultados, select, sql
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 12:12.