Foros del Web » Programando para Internet » PHP »

como hacer doble consulta en la bd

Estas en el tema de como hacer doble consulta en la bd en el foro de PHP en Foros del Web. mi problema es el siguiente tengo una tabla producto con dos llaves foraneas opcionales, debido a que puede ser nit o cedula dependiendo si el ...
  #1 (permalink)  
Antiguo 28/04/2008, 17:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 0
como hacer doble consulta en la bd

mi problema es el siguiente tengo una tabla producto con dos llaves foraneas opcionales, debido a que puede ser nit o cedula dependiendo si el productor es una persona o una organizacion, en un php hago la consulta de los productos que estan y dependiendo los resultados valido si es persona o organizacion para consultar en la tabla correspondiente el nombre o la razon social.

la consulta a la tabla producto sin validar me la ejecuta perfecto, pero cuando coloco select al productor o me hace la consulta pero solo me da el primer producto de la tabla o me escribe resource#3 o me impreme la consulta SELECT * FROM productor aqui les dejo la parte del codigo:


<?php
$con= mysql_connect ("localhost","visitante","visi");
mysql_select_db("lapanela");
$sql="SELECT * FROM producto";
$rs=mysql_query($sql,$con);
while ($tabla = mysql_fetch_array($rs)){
$p = $tabla['nit_productor'];
if ($p== null)
{$p= $tabla['ced_productor'];
$s = "SELECT nombre FROM productor_ind WHERE cedula=" .$p;
echo $s;
};?>

ya intente colocando otra vez mysql_query en la consulta pero solo me imprime el primer registro de la tabla producto

graciassss
  #2 (permalink)  
Antiguo 29/04/2008, 01:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: como hacer doble consulta en la bd

Código PHP:

<?php
$con
mysql_connect ("localhost","visitante","visi");
mysql_select_db("lapanela");
$sql="SELECT * FROM producto";
$rs=mysql_query($sql,$con);
while (
$tabla mysql_fetch_array($rs)){
            
$p $tabla['nit_productor'];
             if (
$p== null) {
                         
$p$tabla['ced_productor'];
                         
$s "SELECT nombre FROM productor_ind WHERE cedula=" .$p;
                         echo 
$s//<--esto imprime $s que es un texto!!!!
            
};

?>
Has hecho la primera parte del trabajo, construir la sentencia Sql ahora hay que ejecutarla e imprimirala.

Código PHP:

<?php
$con
mysql_connect ("localhost","visitante","visi");
mysql_select_db("lapanela");
$sql="SELECT * FROM producto";
$rs=mysql_query($sql,$con);
while (
$tabla mysql_fetch_array($rs)){
      
$p $tabla['nit_productor'];
      if (
$p== null) {
          
$p$tabla['ced_productor'];
          
$s "SELECT nombre FROM productor_ind WHERE cedula=" .$p;
          
$rs2=mysql_query($s,$con);
          while (
$tabla2 mysql_fetch_array($rs2)){
           
//Aqui el codigo que imprima los registros por ejemplo:
                   
echo $tabla2["nombre"];
          }
     }
}
?>
Salvo errores esto deberia funcionar, fijate en la logica:

1- Se conecta
2- Se hace la consulta
3- Se recorre el resultado (while)
31- se aprovecha la misma conexion...
32- secontruye el sql y se ejecuta
33- se recorre el resultado (while)

Quim
  #3 (permalink)  
Antiguo 29/04/2008, 19:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: como hacer doble consulta en la bd

gracias perfecto oye otra consultica pequeñita es que no doy para colocar el codigo como codigo podrias decirme como gracias
  #4 (permalink)  
Antiguo 29/04/2008, 22:09
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: como hacer doble consulta en la bd

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
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:51.