Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] mysqli select: no mostrar valores = 0

Estas en el tema de mysqli select: no mostrar valores = 0 en el foro de PHP en Foros del Web. Hola! Estoy programando un "escaparate" donde se muestran producto y precio actualizados. Cada día introduzco los precios de cada producto en la bdd; en los ...
  #1 (permalink)  
Antiguo 01/04/2015, 05:52
 
Fecha de Ingreso: abril-2015
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
mysqli select: no mostrar valores = 0

Hola!
Estoy programando un "escaparate" donde se muestran producto y precio actualizados.
Cada día introduzco los precios de cada producto en la bdd; en los productos sin existencias no introduzco precio. En la tabla, en estos casos me introduce el valor 0.
Cuando hago la consulta, los productos sin existencias se muestran como precio = 0 ... lo que no es correcto...
Quisiera que estos productos no se mostrasen entre los resultados del SELECT.
La consulta a la bbdd es:
$consulta = "SELECT * FROM tpreciosdia ORDER BY diaIP DESC LIMIT 1";
$resultado = $conex -> query($consulta);
while ($fila = $resultado -> fetch_array())
{ echo "Precios " .$fila['diaIP']. "<br>";
echo"<a href=''>producto1: </a>".$fila['producto1']. " €/kilo<br>";
echo "<a href=''>producto2: </a>" .$fila['producto2']." €/kilo<br>";
echo .../...}; .../...
¿Qué instrucción debo darle para que No se muestren los valores = 0 de la tabla?
Gracias!
  #2 (permalink)  
Antiguo 01/04/2015, 06:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: mysqli select: no mostrar valores = 0

Cita:
Iniciado por jfsl Ver Mensaje
Hola!
Estoy programando un "escaparate" donde se muestran producto y precio actualizados.
Cada día introduzco los precios de cada producto en la bdd; en los productos sin existencias no introduzco precio. En la tabla, en estos casos me introduce el valor 0.
Cuando hago la consulta, los productos sin existencias se muestran como precio = 0 ... lo que no es correcto...
Quisiera que estos productos no se mostrasen entre los resultados del SELECT.
La consulta a la bbdd es:
Código PHP:
Ver original
  1. $consulta =  "SELECT * FROM tpreciosdia     ORDER BY diaIP DESC LIMIT 1";
  2. $resultado = $conex -> query($consulta);
  3. while ($fila = $resultado -> fetch_array())
  4. { echo "Precios " .$fila['diaIP']. "<br>";
  5.     echo"<a href=''>producto1: </a>".$fila['producto1']. " €/kilo<br>";
  6.     echo "<a href=''>producto2: </a>" .$fila['producto2']." €/kilo<br>";
  7.         echo  .../...};  .../...
¿Qué instrucción debo darle para que No se muestren los valores = 0 de la tabla?
Gracias!

Bueno, mira, si a la consulta no le pones condiciones en el WHERE, es obvio que te mostrará todo.
Si no quieres que te muestre la lista de precios donde el valor de precio es cero (0), pues excluyelos:
Código SQL:
Ver original
  1. SELECT *
  2. FROM tpreciosdia
  3. WHERE precio >0
  4. ORDER BY diaIP DESC
Esto es SQL básico (SQL no es PHP, no lo olvides), por lo que te recomiendo que leas un manual con ejemplos para principiantes antes de seguir haciendo consultas a la base.
Evitarás caer en errores simples como este, y perder tiempo de desarrollo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/04/2015, 06:54
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: mysqli select: no mostrar valores = 0

También podrias utilizar, en vez si precio es mayor a 0:

Código SQL:
Ver original
  1. SELECT *
  2.     FROM tpreciosdia
  3.     WHERE precio != 0
  4.     ORDER BY diaIP DESC

Me gustaría que opines sobre esto gnzsoloyo, ya que siempre lo utilizo y estaría saber si es correcto o mejor hacerlo utilizando tu respuesta > 0.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #4 (permalink)  
Antiguo 01/04/2015, 06:58
 
Fecha de Ingreso: abril-2015
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
Respuesta: mysqli select: no mostrar valores = 0

Gracias por la respuesta!!
Ya había probado where... , tal vez he escrito mal la pregunta!
En la bbdd he introducido los campos: diaIP, producto1, producto2... productoN.
El valor que introduzco en cada campo es el "precio".
Dispuesto así, en WHERE en lugar de precio (valor del campo), debería poner "producto1, producto2, etc" (nombre del campo)
Como sería muy largo, había probado WHERE * > 0, lo que no me funciona.

Sí, sql básico. Buscaba el tema genérico mysqli; no lo he encontrado, y he entrado en php. lo siento!
  #5 (permalink)  
Antiguo 01/04/2015, 07:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: mysqli select: no mostrar valores = 0

Alli tienes en realida dun error de diseño de datos: No debes poner n productos en un registro, sino tener N registros, uno por cada producto.
Creo que tu problema es un poco más grande de lo que parecía. Te recomiendo rever tu modelo de datos ,porque vas a tener serios problemas si está como pareces describir.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 01/04/2015, 07:12
 
Fecha de Ingreso: abril-2015
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
Respuesta: mysqli select: no mostrar valores = 0

Gracias MaNu!!
Ya había probado "! = 0", pero no resulta por lo que indicaba: precio no es un campo, sino el valor de los campos.
... no se me ocurre como estructurar la tabla para que "precios" sea campo...
  #7 (permalink)  
Antiguo 01/04/2015, 07:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: mysqli select: no mostrar valores = 0

Cita:
Iniciado por jfsl Ver Mensaje
Gracias MaNu!!
Ya había probado "! = 0", pero no resulta por lo que indicaba: precio no es un campo, sino el valor de los campos.
... no se me ocurre como estructurar la tabla para que "precios" sea campo...

¿En serio?
¿No te parece que sería simplemente algo como?:
Cita:
precios_producto(id_producto, precio)
Un registro por producto, con un precio único por producto... como cualquier otor sistema
¿Qué es lo que eso te puede complicar para lo que tienes?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 01/04/2015, 07:18
 
Fecha de Ingreso: abril-2015
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
Respuesta: mysqli select: no mostrar valores = 0

Gracias de nuevo GNZ !!!
... es lo que trataba de evitar, pues me parecía exagerado hacer una tabla para cada producto... me era más fácil pensar que me equivocaba en las instrucciones, y que algún tipo de "if" me lo podía solucionar, pero ninguno de los que he probado ha funcionado.
Probaré con N registros.
Gracias!
  #9 (permalink)  
Antiguo 01/04/2015, 07:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: mysqli select: no mostrar valores = 0

Estabas tratando de evitar prrecisamente el modo en que se etructuran todos los sistemas en el mundo...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysqli, select, tabla
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 17:23.