Foros del Web » Programando para Internet » PHP »

hacer una consulta dentro de otra

Estas en el tema de hacer una consulta dentro de otra en el foro de PHP en Foros del Web. quiero hacer una consulta dentro de otra... algo asi: <? mysql_connect($local,$user,$pass); $result=mysql_db_query($base,"select * from clientes"); while ($row=mysql_fetch_array($result)) { ....$row["email"] (ejemplo...) } //aca va la otra ...
  #1 (permalink)  
Antiguo 13/04/2005, 19:29
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 20 años, 10 meses
Puntos: 1
hacer una consulta dentro de otra

quiero hacer una consulta dentro de otra... algo asi:

<?
mysql_connect($local,$user,$pass);
$result=mysql_db_query($base,"select * from clientes");
while ($row=mysql_fetch_array($result))
{
....$row["email"] (ejemplo...)
}

//aca va la otra consulta.

mysql_connect($local,$user,$pass);
$result=mysql_db_query($base,"select * from usuarios");
while ($row=mysql_fetch_array($result))
{
....$row["email"] (ejemplo...)
}
mysql_free_result($result)

//y la cierro


mysql_free_result($result)
?>

pero me da error. como lo puedo hacer?
  #2 (permalink)  
Antiguo 13/04/2005, 20:01
 
Fecha de Ingreso: abril-2005
Ubicación: Montevideo, Uruguay
Mensajes: 102
Antigüedad: 19 años
Puntos: 0
Lo interesante cuando alguien dice "me da error" es transcribir el error que te da, esto es un foro de PHP y no de adivinación.

De todas formas, cosas a revisar,

1) Que las variables $local, $user y $pass estén bien inicializadas.

2) Si la conección la hicistes bien y el error salta con la consulta, bueno, que las tablas existan, y que $base esté bien inicializada, con el nombre de la base de datos.

3) Si las dos consultas son contra la misma base de datos o contra dos bases alojadas en el mismo servidor y que usan el mismo usuario, es al santo botón hacer dos mysql_connect(), hacé uno solo al comienzo y con ese te va a bastar. Eso igual no te va a dar ningún error, solo que es trabajo al cuete que le estás haciendo hacer.


Transcribí el error completo.

Saludos!
__________________
Mauricio Etcheverry

WebMaster de YoReparo.com
  #3 (permalink)  
Antiguo 14/04/2005, 07:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Añadir .. que ...

PHP cuando usas msyql_connect() .. si no indicas link de conexión (como es tu caso .. ) vas a mezclar dos conexiones .. de hecho prevalece la última que hagas .. Si lo usas bajo un bucle anidado .. tendrás problemas.

Debes generar dos conexiones con link de conexión para cada una diferente y así trabajarlos:

$conexion1=mysql_connect(....);
$conexion2=mysql_connect(....);

A partir de ahí ya puedes hacer referencia a cada conexión ..

$resultado1=mysql_query($sql,$conexion1);

Etc . .con los demás ..

Revisa la documentación oficial de PHP sobre el uso y sintax correcta de esas funciones que ya usas ...
www.php.com/mysql

No uses: mysql_db_query() .. está en deshuso .. usa mejor: mysql_select_db() y mysql_query()

Recuerda que las conexiones se hacen UNA SOLA VEZ al principio de tu script .. NO a cada pasada de tus bucles que usas (ese while() anidado .. ).

Por lo demás .. tendrías que explicar mejor que deseas hacer .. por qué con un uso más complejo de SQL (lenguaje estructurado de consultas) podrías evitarte tener que hacer un bucle anidado y así optimizar tu código .. Recuerda que si bien programas en PHP .. también usas "SQL" eso es un leguaje por sí solo que debes conocer también. no todo es PHP.

Un saludo,
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 09:48.