Foros del Web » Programando para Internet » PHP »

no sé qué consulta hacer para obtener los resultados deseados...

Estas en el tema de no sé qué consulta hacer para obtener los resultados deseados... en el foro de PHP en Foros del Web. Hola gente; la cosa es así: Tengo una tabla (productos) que tiene las siguientes columnas: id; producto; droga; laboratorio; presentaciones; usos; keywords; url Con esto, ...
  #1 (permalink)  
Antiguo 14/11/2005, 07:40
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
no sé qué consulta hacer para obtener los resultados deseados...

Hola gente; la cosa es así:
Tengo una tabla (productos) que tiene las siguientes columnas:
id; producto; droga; laboratorio; presentaciones; usos; keywords; url
Con esto, los usuarios de la web buscan según los campos (si buscan un rodenticida, escriben "ratas" o "roedores" o lo que sea en "uso", si buscan productos de bayer, se buscará en laboratorio y así.
La cuestión es que tengo que hacer una página de "compras". Los desplegables deben ser "producto" -ok, con esto no hay problemas- y presentación: acá está el problema. Yo necesito que cuando se seleccione el nombre del producto, en "presentaciones" se puedan desplegar sólo las presentaciones que correspondan a ese producto (en algunos casos será, por ejemplo: 1lt., 500 c.c., 250 c.c; en otro: 1kg., 700gr., 250 gr., y así, cada producto tiene distintas presentaciones). Estas presentaciones, están en el campo "presentaciones", una al lado de la otra, separadas por guiones. Es decir, el registro 1, por ejemplo, dice:
id: 1; producto:matarrata; droga: rodentrimecina; laboratorio: basher; presentaciones: 1kg - 500 gr - 250gr._; usos: rodenticida; keywords: rata raton ratita laucha roedor rodenticida; url: www.basher.com/matarrata.

En fin... necesito ayuda; no sé cómo plantear la consulta para los desplegables de la sección compras, no sé si me convenga hacer una tabla para cada producto, o si hay forma de desglosar de ahí mismo las presentaciones... si alguien puede ayudarme, el site está provisoriamente montado en www.emporia.com.ar/cyt/pin/productos.php

Bueno, espero su ayuda, y gracias!!!!
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #2 (permalink)  
Antiguo 14/11/2005, 12:05
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 19 años, 5 meses
Puntos: 2
Que tal?, mira yo no sé como es tu consulta a la DB para traer los datos, pero el tema no es difícil. Te paso a comentar y después te paso un ejemplo en código. De alguna u otra forma tu traes el campo de la DB que tiene establecidas las presentaciones de las drogas (por ej.), y como veo tienen todas en común que cada una de las presentaciones dentro del campo están divididas por un "-", ahora la idea pasa a ser de separar gracias al "-" cada presentación, para esta tarea existe la función explode().
Código PHP:
//Seria algo así, el campo de la DB que contiene las
//presentaciones lo llamaremos $presenta
$mi_array explode("-",$presenta);
//Recuerda que en $presenta esta en forma de string las
//presentaciones, a partir de aquí tienes las presentaciones
//separadas en un array llamado $mi_array

//Ahora es solo cuestión de imprimir los elementos del array.
foreach($mi_array as $value)
          echo 
'Mi presentación: '.$value.'.<br>'
Espero que se me entienda y que te allá ayudado. Saludos y suerte.
  #3 (permalink)  
Antiguo 15/11/2005, 12:28
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
Bueno, muchas gracias! Trataré de hacerlo, aunque intuyo que te voy a preguntar varias cosas, no soy un experto en PHP, ni mucho menos en SQL.
Gracias de nuevo
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #4 (permalink)  
Antiguo 15/11/2005, 13:05
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
GENIAL!!! MUCHAS GRACIAS, YA FUNCIONO!
<?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass);
mysql_select_db($base, $link);
$result = mysql_query("SELECT presentacion FROM productos where producto='$producto'", $link);
while ($row=mysql_fetch_array($result))
{
$presen = $row['presentacion'];
$mi_array = explode("-",$presen);
foreach($mi_array as $value)
echo "Mi presentación:".$value.".<br>";
}
?>
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #5 (permalink)  
Antiguo 15/11/2005, 13:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si bien esa forma de almacenar unas propiedades de un producto en UN sólo campo de tus tablas .. se complica luego el tema cuando pretendas buscar -entre- las propiedades de un producto .. o empezar a hacer listados por cierta propiedad .. etc.

Podrías "normalizar" tu Base de datos con "miras" a este tipo de situaciones. Algo tipo:

producto
id_producto
nombre
codigo
blabla

producto_propiedades
id_producto_propiedades
id_producto
propiedad --> podría ser una tabla normalizada a su vez que defina "propiedades" a aplicar a los productos
valor

De esta forma crearías un sistema mas versatil para "todo" tipo de situaciones .. En tu caso como "propiedad" dirías cosas como "c.c." o "Kg" .. Pero en otros negocios dirías "marca motor", "n° bastidor", "tracción" .. y como valores .. los que correspondan (incluso si son valores que se expresen en ciertas unidades podrías normalizar hasta eso ..).

Claro .. de esta forma se complican los sistemas, pero piensa que harías algo "genérico" una vez sólo para todo tipo de "productos" que tengan "propiedades" sobre las que se necesita operar con ellas.

Si quieres ir viendo sobre el tema .. te recomiendo leer al respecto en:
www.mysql-hispano.com (tienes tutoriales de diseño de BD, normalización. etc enfocado a Mysql).

Un saludo,
  #6 (permalink)  
Antiguo 16/11/2005, 11:39
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 20 años, 1 mes
Puntos: 1
Cluster, muchas gracias, como siempre, vos estás unos cuantos pasos más delante de mí; por ahora voy a tratar de "zafar" con esto, pero prometo estudiar el tema ya que parece interesante.
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
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 21:36.