Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

sacar informacion 2 tablas

Estas en el tema de sacar informacion 2 tablas en el foro de Bases de Datos General en Foros del Web. el problema es que en el formulario solo saca una tabla, las unidades es de otra llamada producto_almacen como podria para sacar unidades de alli. ...
  #1 (permalink)  
Antiguo 11/06/2009, 16:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
sacar informacion 2 tablas

el problema es que en el formulario solo saca una tabla, las unidades es de otra llamada producto_almacen como podria para sacar unidades de alli.

gracias.

Última edición por agnes20; 12/06/2009 a las 07:17
  #2 (permalink)  
Antiguo 11/06/2009, 17:38
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, 5 meses
Puntos: 2658
Respuesta: sacar informacion 2 tablas

Si lo que quieres es sacar la información de las dos tablas en una sola vez, habría que crear una consulta que las relacione.
¿Podrías postear la estructura de las tablas implicadas?
__________________
¿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 11/06/2009, 17:44
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
Respuesta: sacar informacion 2 tablas

tabla producto tiene:

codigo,nombre,descripcion,precio_unidad,precio_ant iguo.

tabla producto_almacen:

codigo-pord(codigo del producto),codigo_alm(codigo del almacen),stock.
  #4 (permalink)  
Antiguo 12/06/2009, 05:55
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, 5 meses
Puntos: 2658
Respuesta: sacar informacion 2 tablas

Tablas:
producto(codigo,nombre,descripcion,precio_unidad,p recio_antiguo)
producto_almacen(codigo_pord, codigo_alm ,stock)

Código SQL:
Ver original
  1. SELECT codigo,nombre,descripcion,precio_unidad,precio_antiguo
  2. FROM producto p INNER JOIN producto_almacen a ON p.codigo = a.codigo_pord;
Eso te devolverá la tabla con todos los valores de producto, más el stock del almacén.

No me queda claro por qué hay dos tablas para un mismo fin, siendo un esquema muy notablemente simple (si vas a poner un sólo dato, no requiere una tabla adicional).
Por otro lado, ¿por qué son diferentes los códigos ID de las dos? ¿Tienes una tabla "almacen"?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 12/06/2009, 07:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
Respuesta: sacar informacion 2 tablas

lo de almacen siver para saber en que almacen esta.

pongo el codigo aqui me sale esto

if ($_POST['buscar']){
$sqlbusc ='SELECT codigo,nombre,descripcion,precio_unidad,precio_ant iguo

FROM producto p INNER JOIN producto_almacen a ON p.codigo = a.codigo_pord where codigo="'.$_POST['codigobuscar'].'"';
//$sqlbusc = 'select *,a.stock from producto,producto_almacen a where codigo="'.$_POST['codigobuscar'].'"';
$resbusc = mysql_query($sqlbusc);

$resbuscnum = mysql_num_rows($resbusc);



Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\llegrau\producto.php on line 175

eso??
  #6 (permalink)  
Antiguo 12/06/2009, 08:03
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, 5 meses
Puntos: 2658
Respuesta: sacar informacion 2 tablas

Eso es un problema con el PHP, no con el SQL, por lo que deberías postear la pregunta en el Foro de PHP (yo no manejo ese lenguaje como para responderte).
Es un mensaje que suele aparecer cuando algo de la construcción de la sentencia PHP no corresponde con lo que el conector con MySQL espera. En otras palabas, la sentencia nunca salió de la página.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 12/06/2009, 08:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: sacar informacion 2 tablas

haz la consulta en consola o con el gestor gráfico, buscando un dato concreto que sepas que existe, por ej. 55, si es el caso:
SELECT codigo,nombre,descripcion,precio_unidad,precio_ant iguo FROM producto p INNER JOIN producto_almacen a ON p.codigo = a.codigo_pord where codigo= 55

He observado que tenías algún espacio blanco en la cadena SQL y una letra separada que podía estar causando el problema. Si encuentra el dato, vuelve a trasladar la consulta a PHP y usar las variables. Si sigues teniendo problemas, pide ayuda en el foro PHP.
  #8 (permalink)  
Antiguo 12/06/2009, 12:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: sacar informacion 2 tablas

sigue el mismo error
  #9 (permalink)  
Antiguo 12/06/2009, 13:12
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: sacar informacion 2 tablas

ya lo arreglado era una cosa estava mal escrita

gracia!!!!!!!!!

una cosa si añado un producto ma sale q unidades son las que pongo, pero si le doy a modificar masale que hay 0 lo cambia nose por que???

codigo modificar:

if ($_POST['buscar']){

$sqlbusc = 'select p.*,pa.* from producto p inner join producto_almacen pa ON p.codigo=pa.codigo_prod where p.codigo="'.$_POST['codigobuscar'].'"';

$resbusc = mysql_query($sqlbusc);

$resbuscnum = mysql_num_rows($resbusc);

Última edición por agnes20; 12/06/2009 a las 13:26
  #10 (permalink)  
Antiguo 12/06/2009, 15:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: sacar informacion 2 tablas

Esto es en realidad PHP. El comando mysql_num_rows() es valido solo para las sentencias SELECT. Para obtener el número de filas afectadas por las sentencias INSERT, UPDATE o DELETE, debes usar mysql_affected_rows(). Pregúntalo en el foro PHP, y te darán cumplida respuesta.
  #11 (permalink)  
Antiguo 12/06/2009, 15:39
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, 5 meses
Puntos: 2658
Respuesta: sacar informacion 2 tablas

Cita:
una cosa si añado un producto ma sale q unidades son las que pongo, pero si le doy a modificar masale que hay 0 lo cambia nose por que???
Explicate un poco mejor (y sin apurarte), porque no entiendo bien qué es lo que haces y cuál es el problema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 12/06/2009, 16:19
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: sacar informacion 2 tablas

que cunado inserto un producto en unidades le pongo un valor se guarda ese valor.
pero cunado le doy a modificar el valor de unidades se me pone a 0.
nose por que??
  #13 (permalink)  
Antiguo 12/06/2009, 17: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, 5 meses
Puntos: 2658
Respuesta: sacar informacion 2 tablas

Probablemente estés sobeescribiendo todo el registro, sin haber leído los campos antes, entonces vacía el campo.
Verifica la sintaxis del UPDATE y asegúrate de cargar sólo los campos que se modifican y no el resto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 13/06/2009, 04:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: sacar informacion 2 tablas

codigo de subir es este:
Código PHP:
if ($_POST['modificar']) {
                                                                
    
$sqlmodificar2 "UPDATE producto 
    SET nombre = '"
.$_POST["nombremod"]."', 
        descripcion = '"
.$_POST["descripcionmod"]."',
        precio_unidad = '"
.$_POST["preciounidadmod"]."',
        precio_antiguo = '"
.$_POST["precioantiguomod"]."'
    WHERE codigo = '"
.$_POST["codigo"]."'";
        
mysql_query ($sqlmodificar2) or die(mysql_error());

    
$sqlmodificar3="UPDATE producto_almacen 
        SET stock='"
.$_POST["stockmod"]."'";
        
mysql_query($sqlmodificar3)or die(mysql_error());
        
    
$codigo=$_POST['codigo'];
    
$directorio './prods/';
    
$jpg=".jpg";
    
move_uploaded_file($_FILES['archivo_usuario']['tmp_name'],$directorio.$codigo.$jpg);
            
                                                                             
    } 
el e mostrar este:

Código PHP:
if ($_POST['buscar']){

$sqlbusc 'select p.*,pa.* from producto p inner join producto_almacen pa ON p.codigo=pa.codigo_prod where p.codigo="'.$_POST['codigobuscar'].'"';

$resbusc mysql_query($sqlbusc);

$resbuscnum mysql_num_rows($resbusc); 
  #15 (permalink)  
Antiguo 13/06/2009, 04:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: sacar informacion 2 tablas

Creo que es lo que te dice gnzsoloyo, pero no veo a qué campo te refieres ni sé en qué tabla está. Es decir, no veo el campo unidad, ni dónde lo has cargado, ni cómo lo actualizas. Veo nombre, descripcion, precio_unidad, precio_antiguo, codigo, pero no veo ningún campo unidad o unidades, ¿o tal vez te refieres a stock?
  #16 (permalink)  
Antiguo 13/06/2009, 05:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: sacar informacion 2 tablas

las tablas son asi :

tabla producto tiene:

codigo,nombre,descripcion,precio_unidad,precio_ant iguo.

tabla producto_almacen:

codigo-pord(codigo del producto),codigo_alm(codigo del almacen),stock.

he provado asi :

$sqlbusc = 'select p.*,pa.stock from producto p inner join producto_almacen pa ON p.codigo=pa.codigo_prod where p.codigo="'.$_POST['codigobuscar'].'"';

sigue igual stock a 0.tendria que estar a 150 lo que habia puesto yo

Última edición por agnes20; 13/06/2009 a las 05:27
  #17 (permalink)  
Antiguo 13/06/2009, 05:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: sacar informacion 2 tablas

A ver, el campo que sale a 0 parece ser stock, pero no vemos lo que pasas, es decir, ese stockmod que pareces traerte desde el formulario, aunque si dejas vacío el campo del formulario, imagino que hace el update y pone el valor por defecto de ese campo numérico, es decir, el 0. Tienes que controlar mediante programación que cuando no escribas nada en ese input del formulario, no haga el update de esa tabla, y eso debes hacerlo con programación. Es lo que se me ocurre, pero es que en este foro sólo podemos ayudarte con el MySQL y no con la sintaxis PHP.
  #18 (permalink)  
Antiguo 13/06/2009, 05:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 81
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: sacar informacion 2 tablas

no entiendo lo quieres decir.
yo inserto un producto en stock le pongo 150 en la base de datos aparece 150 que he puesto yo.
despues le doy a modificar y en la base de datos en stock aparece un O. nose por que??
  #19 (permalink)  
Antiguo 13/06/2009, 06:07
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, 5 meses
Puntos: 2658
Respuesta: sacar informacion 2 tablas

Pues, entonces esto: .$_POST["stockmod"]. está llegando vacío a la creación de la sentencia...
La única posibilidad que hay para que se de la situación que describes es que la sentencia esté insertando un cero o un vacío en el campo.
Por otro lado, no veo cómo haces para determinar a qué producto actualizará, ya que al segundo UPDATE no le veo el WHERE...

Te insisto en que yo no se mucho de PHP como para ayudarte demasiado, pero me sigue pareciendo un problema que deberías consultar ocn el Foro de PHP, porque las sentencias SQL fucionan bien. Es la lógica de PHP la que no está bien programada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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:55.