Consltas en PHP con MySQL

Tengo una consulta mediante la cua lobtengo unos datos de una base de datos.
Y después tengo que hacer otra consulta con los datos obtenidos por la primera consulta, pero no sé como pasarle las variables.
El código es este:
$busq=mysql_query("SELECT * FROM Empresas WHERE NIF='$nif'", $db);
$rec=mysql_fetch_array($busq);
Y con los registros que obtengo quiero hacer otra consulta así:
$busq3=mysql_query("SELECT * FROM cpost WHERE IdCP=mysql_result($busq,0,"CPDom")", $db);
Pero me da un warning y no muestra nada.
¿Cómo le paso la primera consulta a la segunda?
Respuesta
1
Vayamos por partes.
Quieres todos los campos de una empresa que tenga el DNI que le pasas. Hasta aquí correcto, y se te devolverá en forma de array a la variable $rec.
No tengo claro qué quieres conseguir en la segunda consulta, ya que no lo explicas, pero no debes mezclar las órdenes de PHP con las del lenguaje SQL. En la sección WHERE de SQL se espera, o bien una constante, o bien una variable PHP (que empiece por $). Así que es incorrecto poner ahí la orden "mysql_result".
Lo más adecuado sería, por ejemplo, pasarle uno de los campos que te ha devuelto la consulta anterior. Pogamos el primer campo: $rec[0] (si no te funciona así, prueba a poner $rec[0][0]). Entonces, la segunda consulta te quedaría así:
$busq3=mysql_query("SELECT * FROM cpost WHERE IdCP={$rec[0]}, $db);
(Las llaves se han de poner para no ocasionar un error semántico, forzando a PHP a que interprete lo que le pasamos como un vector (array)).
Muchas gracias. Me ha sido de gran ayuda.
La segunda consulta era para ver el código, la población y la provincia (de la tabla códigos postales) que le corresponde al CP de la empresa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas