Foros del Web » Programando para Internet » PHP »

Ayuda con select

Estas en el tema de Ayuda con select en el foro de PHP en Foros del Web. Bueno, aparte del select se necesitan otras opciones pero creo es muy fácil. Tengo dos tablas: - promociones idp precio - productos id titulo precio ...
  #1 (permalink)  
Antiguo 28/03/2005, 14:11
 
Fecha de Ingreso: diciembre-2003
Ubicación: Campehce, Mexico
Mensajes: 325
Antigüedad: 20 años, 4 meses
Puntos: 0
Ayuda con select

Bueno, aparte del select se necesitan otras opciones pero creo es muy fácil.
Tengo dos tablas:

- promociones
idp
precio

- productos
id
titulo
precio

Entonces lo que quiero hacer es que si el campo precio de promociones es nulo aparezca el precio de la tabla productos, y si el campo precio de promociones esta lleno pues me aparezca solo ese.

Espero alguien sepa
  #2 (permalink)  
Antiguo 28/03/2005, 17:43
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Aclara tu consulta.. SELECT de SQL (consulta) ó <select> de HTML (combobox)??
.. .. aparezca?? dónde? cómo? cuándo?

Sí es SELECT de SQL .. quizá una cosulta del tipo
Código:
SELECT columna FROM tabla WHERE campo=(SELECT columna FROM tabla2 WHERE campo IS NO NULL)
Si te refieres a esto hay un foro dedicado para base de datos...

Sí es un <select> de combobox... ... esque no me imagino qué quieres... quizá después de hacer tu consulta ver el numero de resultados con mysql_num_rows().. y si es cero hacer la otra consulta para armar tu combobox... no sé, es lo que me imagino buscarias... se claro para evitar esto.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 29/03/2005, 00:54
 
Fecha de Ingreso: diciembre-2003
Ubicación: Campehce, Mexico
Mensajes: 325
Antigüedad: 20 años, 4 meses
Puntos: 0
Mira, vamos a olvidar el selekt, lo que quiero hacer es que si el valor de promociones.precio esta lleno lo muestre y si no esta lleno que muestre productos.precio
  #4 (permalink)  
Antiguo 29/03/2005, 06:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues haces una consulta SQL donde intervengan tus dos tablas ...

Código PHP:
$sql="SELECT promociones.precio as precio_promocion,productos.precio as precio_producto FROM promociones, productos WHERE .. condiciones si las requieres .."
(eso sería una consulta SQL básica donde intervengan las dos tablas .. depende de las "condiciones" te vendría mejor usar JOIN .. o subconsultas standars si tu versión de Mysql lo soporta como el ejemplo de jam1138)


Ejecutas la consulta SQL y aplicas un if:

Código PHP:
$resultado=msyql_query($sql) or die (mysql_error());
while (
$row=mysql_fetch_array($resultado)){
   if (empty(
$row['precio_promocion'])){
      
$precio=$row['precio_producto'];
   } else {
      
$precio=$row['precio_promocion'];
   }

   echo 
$precio;

Como usas el mismo nombre de campo en ambas tablas .. para diferenciarlos se crean "alias" (el AS es el alias).

Esto mismo desde SQL se podría hacer .. Aunque "no lo creas" en SQL también se pueden hacer estructuras condicionales (IF() . . .) .. investiga ese punto.

Un saludo,
  #5 (permalink)  
Antiguo 29/03/2005, 11:38
 
Fecha de Ingreso: diciembre-2003
Ubicación: Campehce, Mexico
Mensajes: 325
Antigüedad: 20 años, 4 meses
Puntos: 0
A ver las tablas son:

- promociones
idp
new (este campo es el que tiene el precio)

- productos
id
titulo
precio

Hago el select con condicion
$selekt = mysql_query("SELECT * FROM productos, promociones WHERE id='$idp'") or die (mysql_error());

y hago el if
if (empty($row[new])){
$precio=$row[precio];
} else {
$precio=$row[new];
}

echo $precio;

y me imprime siempre el precio new.

Es que lo que quiero hacer es que si la id de productos coincide con idp de promociones y pues eso se establece en la condicion where en el selekt y pues el if es que si promociones.new es vacio muestre el valor de productos.precio.

Un saludo
  #6 (permalink)  
Antiguo 29/03/2005, 14:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías asegurarte de que valores realmente te está entregando dicha consulta SQL para ver que valores tienen dichos campos (para ver si realmente están vacios o toman algún valor) y usar: $row['new']; (con comillas el nombre del campo) ..

Podría ser también que tuvieras algún caracter que no ves en "new" por ejemplo un espacio .. o salto de línea (\n) .. podrías usar trim() aplicado a $row['new']

if (empty(trim($row['new']))){
etc ...

Un saludo,

Un saludo,
  #7 (permalink)  
Antiguo 29/03/2005, 14:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Se me pasó un gran detalle ..

¿que campo relaciona tu "promoción" con el "producto"?. Por qué no alcanzo a ver cual es (si es que existe?) .. Debe existir alguna relación para poder hacer un (adicional al condicional que ya usas): tabla1.campo_relacion=tabla2.campo_relacion (o mejor con INNERT JOIN de SQL)

Un saludo,
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 08:45.