Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Ordenar por uno de los valores enum

Estas en el tema de Ordenar por uno de los valores enum en el foro de PHP en Foros del Web. Hola a todo Tengo un campo de esta forma, recursos enum ('Gratis', 'Compra') y la idea es ordenar un valor en este caso solo mostrar ...
  #1 (permalink)  
Antiguo 17/12/2015, 10:28
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Ordenar por uno de los valores enum

Hola a todo
Tengo un campo de esta forma, recursos enum ('Gratis', 'Compra')
y la idea es ordenar un valor en este caso solo mostrar los Gratis
luego en otra consulta ya le cambio de nombre a Compra para mostrar
solo compras espero me puedan ayudar con esta consulta, gracias.

Código PHP:
Ver original
  1. <?php  
  2.         if (isset($_GET['recursos']))   $recursos = $_GET['recursos'];
  3.         $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Conexión
  4.         if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  5.         $sql = "SELECT * FROM producto ORDER BY CASE recursos  WHEN 'Gratis' THEN 1 WHEN 'Compra' THEN 2 ELSE 3  END";
  6. //      $sql = "SELECT * FROM producto ORDER BY recursos='Gratis'";
  7.         $result = mysqli_query($conexion, $sql);
  8.         if (mysqli_num_rows($result) > 0) {
  9.         while($row = mysqli_fetch_assoc($result)) {
  10.         ?>
  11.        
  12.        
  13.  
  14.         <?php echo $recursos = $row["recursos"]; ?>
  15.        
  16.         <?  }  } mysqli_close($conexion); ?>
  #2 (permalink)  
Antiguo 17/12/2015, 12:21
 
Fecha de Ingreso: diciembre-2015
Mensajes: 45
Antigüedad: 8 años, 11 meses
Puntos: 3
Respuesta: Ordenar por uno de los valores enum

Yo haría algo así:

Código PHP:
//tomas el valor de uno
$enum="'gratis'";
$enum="'compra'";
$enum="'gratis' AND recuros='compra'";//Tomas el valor de los dos 
$sql "SELECT * FROM producto WHERE recuros=".$enum." ORDER BY recursos ASC"//Utilizas ASC o DESC dependiendo si quieres mostrar gratis o compra primero 
Saludos!!
  #3 (permalink)  
Antiguo 17/12/2015, 14:02
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Ordenar por uno de los valores enum

Cita:
Iniciado por peperafa Ver Mensaje
Yo haría algo así:

Código PHP:
//tomas el valor de uno
$enum="'gratis'";
$enum="'compra'";
$enum="'gratis' AND recuros='compra'";//Tomas el valor de los dos 
$sql "SELECT * FROM producto WHERE recuros=".$enum." ORDER BY recursos ASC"//Utilizas ASC o DESC dependiendo si quieres mostrar gratis o compra primero 
Saludos!!
Utilice de este modo y nada no hay resultados es decir no aparece el texto


Código PHP:
Ver original
  1. <?php  
  2.         if (isset($_GET['recursos']))   $recursos = $_GET['recursos'];
  3.         $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Conexión
  4.         if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  5.         //tomas el valor de uno
  6.         $enum="'Gratis'";
  7.         $enum="'Compra'";
  8.         $enum="'Gratis' AND recuros='Compra'";//Tomas el valor de los dos
  9.         $sql = "SELECT * FROM producto WHERE recuros=".$enum." ORDER BY recursos ASC"; //Utilizas ASC o DESC dependiendo si quieres mostrar gratis o compra primero  
  10.  
  11.         $result = mysqli_query($conexion, $sql);
  12.         if (mysqli_num_rows($result) > 0) {
  13.         while($row = mysqli_fetch_assoc($result)) {
  14.         ?>
  15.        
  16.        
  17.  
  18.         <?php echo $recursos = $row["recursos"]; ?>
  19.        
  20.         <?  }  } mysqli_close($conexion); ?>
  #4 (permalink)  
Antiguo 17/12/2015, 14:06
Avatar de wunderwaffen077  
Fecha de Ingreso: marzo-2014
Mensajes: 45
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: Ordenar por uno de los valores enum

Esta parte.
$enum="'Gratis' AND recuros='Compra'";

Cambialo por:

$enum="'Gratis' OR recuros='Compra'";
  #5 (permalink)  
Antiguo 17/12/2015, 15:01
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Ordenar por uno de los valores enum

muy bien ya lo cambie como me indicaste pero sigue saliendo lo mismo que en un principio ambos

siempre tenia el resultado asi
Gratis
Gratis
Gratis
Compra
Compra
etc.......

la idea es:
solo me muestre
Gratis
Gratis
Gratis

Despues le puedo cambiar a Compra si lo necesito mostrar solo como compra

Código PHP:
Ver original
  1. <?php  
  2.         if (isset($_GET['recursos']))   $recursos = $_GET['recursos'];
  3.         $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Conexión
  4.         if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  5.         //tomas el valor de uno
  6.         $enum="'Gratis'";
  7.         $enum="'Compra'";
  8.         $enum="'Gratis' OR recuros='Compra'";//Tomas el valor de los dos
  9.         $sql = "SELECT * FROM producto WHERE recuros=".$enum." ORDER BY recursos ASC"; //Utilizas ASC o DESC dependiendo si quieres mostrar gratis o compra primero  
  10.  
  11.         $result = mysqli_query($conexion, $sql);
  12.         if (mysqli_num_rows($result) > 0) {
  13.         while($row = mysqli_fetch_assoc($result)) {
  14.         ?>
  15.        
  16.        
  17.  
  18.         <?php echo $recursos = $row["recursos"]; ?>
  19.        
  20.         <?  }  } mysqli_close($conexion); ?>
  #6 (permalink)  
Antiguo 17/12/2015, 15:07
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: Ordenar por uno de los valores enum

Gracias peperafa

Código PHP:
Ver original
  1. <?php  
  2.         if (isset($_GET['recursos']))   $recursos = $_GET['recursos'];
  3.         $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Conexión
  4.         if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  5.         // tomas el valor de uno
  6.         $enum="'Gratis'";
  7.         // $enum="'Compra'";
  8.         // $enum="'Gratis' AND recuros='Compra'";
  9.         // $enum="'Gratis' OR recuros='Compra'";
  10.         $sql = "SELECT * FROM producto WHERE recuros=".$enum." ORDER BY recursos ASC"; // ASC o DESC dependiendo si quieres mostrar gratis o compra primero  
  11.  
  12.         $result = mysqli_query($conexion, $sql);
  13.         if (mysqli_num_rows($result) > 0) {
  14.         while($row = mysqli_fetch_assoc($result)) {
  15.         ?>
  16.        
  17.        
  18.  
  19.         <?php echo $recursos = $row["recursos"]; ?>
  20.        
  21.         <?  }  } mysqli_close($conexion); ?>

Gracias peperafa y wunderwaffen077 Ya se soluciono muchisimas gracias

Etiquetas: mysql+php
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 22:13.