Foros del Web » Programando para Internet » PHP »

Ayuda! con Funtion en clase y while para select en otra tabla.

Estas en el tema de Ayuda! con Funtion en clase y while para select en otra tabla. en el foro de PHP en Foros del Web. Buenas mi problema es el siguiente, estoy haciendo un shoping car "carrito de compras" y mi archivo clase.. tiene algo de la siguiente manera: Código ...
  #1 (permalink)  
Antiguo 29/01/2011, 13:32
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 11 meses
Puntos: 8
Pregunta Ayuda! con Funtion en clase y while para select en otra tabla.

Buenas mi problema es el siguiente, estoy haciendo un shoping car "carrito de compras" y mi archivo clase.. tiene algo de la siguiente manera:

Código PHP:
class Products
{

    function 
getProducts(){
        
$selprod_qry 'SELECT * FROM products';
        
$sel_res=@mysql_query($selprod_qry);
        
$show "<li class='vercol'><strong>Productos</strong></li><li class='vercol'><strong>Precio</strong></li><li class='vercol'><strong>Puntos</strong></li><li class='vercol'><strong>Stot</strong></li>";
        while(
$product=@mysql_fetch_object($sel_res))    
        {    
            
//AQUI MUESTRO UNA TABLA CON LOS DATOS ASSOCIADOS A LA CONSULTA. MI PROBLEMA ES QUE LOS DATOS STOT. ESTAN EN OTRA TABLA QUE NO ES LA MISMA A LA QUE LE HAGO LA CONSULTA... Y NO SE COMO ASSOCIAR OTRA CONSULTA DISTINTA CON ESTE WHILE.. ADEMAS DE QUE "LA OTRA CONSULTA" TOMA UN VALOR WHERE= prod_id= la variable id. 

$show.= "<table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' width='200'>
    <tr><td><li class='vercol'><a href='javascript:void(0)' onclick=\"javascript:getFields('"
.$product->prod_id."','".$product->prod_name."','".$product->prod_price."')\">".$product->prod_name."</a></li></td>
    <td><li class='vercol'>"
.$product->prod_price."</li></td>
    <td><li class='vercol'>"
.$product->prod_puntos."</li></td>
    <td><li class='vercol'>"
.$AQUI->stot"</li></td> 
</tr></table>"
;
        }
        echo 
$show;
    } 

Bueno el problema es que quiero agregarle ala lista que se muestra quiero agregarle un nuevo parametro llamado stot.

pero lso valores que se muestren , tienen que ser consultados en una tabla llamada stot.

cuya extructura es :
id_centro
prod_id
stot

Donde prod_id es la id de cada producto que siempre la recupero con ($_REQUEST['pid'])

si no se entiende.. porfavor diganmelo y yo les explico mas detalladamente.. creo que es un poco complicado de entenderme..

POD: Estoy buscando a alguien con bastante conocimiento en php, ajax..
que me pueda ayudar, para desarrollar mi mini proyecto, porfavor.. =( ayuda!
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #2 (permalink)  
Antiguo 30/01/2011, 01:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Ayuda! con Funtion en clase y while para select en otra tabla.

No necesitas hacer otro select... simplemente "unir" ambas tablas en una misma consulta:

Código MySQL:
Ver original
  1. SELECT p.*, s.stock
  2.     FROM productos p
  3.     LEFT JOIN stock s ON s.prod_id = p.prod_id

Como explicacion breve y tal vez no muy clara:

SELECCIONAR todos los campos de "p", el campo stock de "s"
DE LA TABLA productos (con alias "p")
UNIENDO CAMPOS DE LA TABLA stock (con alias "s") CONDICIONADO A los campos de ID

Si usas solamente JOIN y algun producto no tiene stock, entonces este no aparecera en los resultados.

Si usas LEFT JOIN todos los productos apareceran en los resultados y, los que no tengan registro correspondiente en la tabla stock, se asignara NULL al campo (o campos indicados en el JOIN).
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 30/01/2011, 02:28
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: Ayuda! con Funtion en clase y while para select en otra tabla.

Buenas Triby!! :D! Gracias !!! Gracias!! sabes muchisimo! muy agradecido estoy triby!! me a funcionado a la perfección..! tengo unas cuantas dudas, por ejemplo para insertar al mismo tiempo en ambas tablas, ciertos datos.. pero eso lo vi por aca en foros del web, y lo tengo en favoritos..! jeje Gracias hombre!! =) !!! karma + !

pero queria saber, como hago para ponerle un filtro adiccional a la consulta.. es decir..
por ejemplo:

DONDE id_centro (que esta en la tabla stock) sea igual a algun id. que el seleccione en una lista desplegable?


osea primero tendría que crea una lista desplegable que agarrara todos los centros.. y cada centro de la lista desplegable asignarle un valor.. luego de eso.. como te estaba diciendo.. como puedo hacerlo, yo lo coloque asi.

Yo lo coloque asi:
Código PHP:
Ver original
  1. $selprod_qry = 'SELECT p.*, s.stock FROM products p LEFT JOIN stot s ON s.prod_id = p.prod_id AND s.id_centro =1 ';
  2.         $sel_res=@mysql_query($selprod_qry);

Y me funciona! pero deberia de NO funcionarme ya que segun lo que esta en el select, yo solo selecciono el campo stock de s.

No entiendo como es que me funciona ese select, es mas, no se como es que me agarra el s.prod_id.. si en el select le deciamos que agarre solo stock..

Se que no me deberia quejar, por que funciona, y no me quejo, solo es que quiero entender con claridad como es que funciona.. =) si me lo puedes explicar mas detalladamente, es que no me gusta quedarme con una duda.. :s

eres muy activo he visto varias respuestas tuyas, en estos dias, hombre, que libro virtual o normal, me recomiendas para aprender php? =) ademas de aprender bien sql, jeje por que aun me falta mucho por recorrer en este mundo de la programacion.. jeje
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..

Última edición por JoseGMariani; 30/01/2011 a las 11:35

Etiquetas: clase, select, tablas
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:26.