Foros del Web » Programando para Internet » PHP »

Consulta De Varias Tablas Con Php

Estas en el tema de Consulta De Varias Tablas Con Php en el foro de PHP en Foros del Web. Hola, estoy programando una consulta, en una página web, donde hay un formulario y el usuario escoge las tablas en las que desea buscar, y ...
  #1 (permalink)  
Antiguo 08/04/2008, 02:03
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Consulta De Varias Tablas Con Php

Hola,
estoy programando una consulta, en una página web, donde hay un formulario y el usuario escoge las tablas en las que desea buscar, y las restricciones (escoge un campo de cada tabla que cumpla alguna restricción : >, >=, <, >= , que empiece por...que contenga...etc)
Cuando sólo escoge una tabla funciona correctamente, pero al escoger dos tablas, ya me salen errores (si hago la consulta directamente escribiendo yo al sentencia a manom, no hay problema, cunado la hago ya con PHP usando variabes, si...
este es el código:

if ($index2 == "0") { // solo he escogido 1 tabla

if (($ope == 0) || ($ope==1)) {
if ($ope==0) { // empieza por
$result= mysql_query("SELECT * FROM $tabla where $campo LIKE '$valor%'", $link);
}
else { //contiene
$result= mysql_query("SELECT * FROM $tabla where $campo LIKE '%$valor%'", $link);

}
}
else
{
//$result = mysql_query("SELECT * FROM $tabla", $link);
$result= mysql_query("SELECT * FROM $tabla where $campo $operador $valor", $link);
}
}
else { // tengo dos tablas
echo "ESTOY DENTRO<BR>";
if (($ope2 == 0) || ($ope2==1)) {
if ($ope2==0) { // empieza por
$result= mysql_query("SELECT * FROM $tabla2 where $campo2 LIKE '$valor2%' INTERSECT SELECT * FROM $tabla where $campo $operador $valor", $link);
}
else { //contiene
$result= mysql_query("SELECT * FROM $tabla2 where $campo2 LIKE '%$valor2%' INTERSECT SELECT * FROM $tabla where $campo $operador $valor", $link);

}
}
else

$result= mysql_query("SELECT * FROM $tabla INTERSECT $tabla2 WHERE $campo $operador $valor AND $campo2 $operador2 $valor2", $link);

}

// construyo la tabla con los resultados

//$result= mysql_query("SELECT * FROM reparaciones JOIN tecnicos WHERE codproduct = '1' AND grupo = 'M'",$link);

$columnas = mysql_num_fields ($result); //aquíme sale un warning

$nombres = array();

if ($row = mysql_fetch_array($result)){ //si la consulta ha devuelto datos, aquí me da otro WARNING
....
....
mysql_free_result($result); // y otro WARNING

// aquí ya es crear una tabla con los resultados
  #2 (permalink)  
Antiguo 08/04/2008, 05:05
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Consulta De Varias Tablas Con Php

¿Qué error te da?

¿Has mirado la consulta que generas y que te da el error?
  #3 (permalink)  
Antiguo 08/04/2008, 06:23
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Consulta De Varias Tablas Con Php

Muchas gracias por contestar....me da esots warnings:
Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in C:\wamp\www\gestion\consultas\buscar.php on line 224

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\gestion\consultas\buscar.php on line 228
Ningn resultado obtenido!
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\wamp\www\gestion\consultas\buscar.php on line 272
  #4 (permalink)  
Antiguo 08/04/2008, 08:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Consulta De Varias Tablas Con Php

A todos tus mysql_query ponlos así:
Código PHP:
mysql_query"tu query" ) or die( mysql_error() ); 
Así podrás identificar el error.

Saludos.
  #5 (permalink)  
Antiguo 09/04/2008, 01:47
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Consulta De Varias Tablas Con Php

MUCHÍSIMAS GRACIAS:
me sale el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'entradas WHERE grupo = P AND idin >= 1' at line 1

La estructura de las tablas implicadas es:

CREATE TABLE `entradas` (
`idin` int(11) NOT NULL auto_increment,
`codproduct` int(11) NOT NULL,
`nserie` varchar(30) NOT NULL,
`codtec` varchar(5) NOT NULL,
`origen` varchar(25) NOT NULL,
`fecha` date NOT NULL,
`fallo` varchar(100) NOT NULL,
`observain` varchar(300) default NULL,
PRIMARY KEY (`idin`),
KEY `origen` (`origen`),
KEY `fecha` (`fecha`),
KEY `codproduct` (`codproduct`),
KEY `codtec` (`codtec`),
KEY `nserie` (`nserie`)
)

CREATE TABLE `tecnicos` (
`codtec` varchar(5) NOT NULL,
`nomtec` char(30) NOT NULL,
`grupo` char(1) NOT NULL,
`activo` tinyint(1) NOT NULL,
PRIMARY KEY (`codtec`)
)
  #6 (permalink)  
Antiguo 09/04/2008, 01:53
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Consulta De Varias Tablas Con Php

Ah!!
imagino que me falta poner el campo, de qué tabla es: entradas.idin o tecnicos.grupo

¿cómo lo pongo con varibales? ¿se puede así?
SELECT * FROM $tabla JOIN $tabla2 WHERE $tabla.$campo <=1 AND $tabla2.$campo2 = P
  #7 (permalink)  
Antiguo 09/04/2008, 04:24
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Consulta De Varias Tablas Con Php

Entre comillas dobles debería funcionar. Si no, prueba así:
Código PHP:
"SELECT * FROM ".$tabla." JOIN $tabla2 WHERE ".$tabla.".".$campo." <=1 AND ".$tabla2.".".$campo2." = P" 
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:42.