Foros del Web » Programando para Internet » PHP »

While y Fetch_array

Estas en el tema de While y Fetch_array en el foro de PHP en Foros del Web. Saludos amigos!!! Tengo el siguiente problema: Código: $sql1="SELECT * FROM TABLA 1"; $q1=mysql_query($sql1,$conexion); $sql2="SELECT * FROM TABLA 1"; $q2=mysql_query($sql2,$conexion); $sql3="SELECT * FROM TABLA 1"; $q3=mysql_query($sql3,$conexion); ...
  #1 (permalink)  
Antiguo 04/07/2006, 18:28
 
Fecha de Ingreso: mayo-2005
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
While y Fetch_array

Saludos amigos!!!

Tengo el siguiente problema:

Código:
$sql1="SELECT * FROM TABLA 1";
$q1=mysql_query($sql1,$conexion);

$sql2="SELECT * FROM TABLA 1";
$q2=mysql_query($sql2,$conexion);

$sql3="SELECT * FROM TABLA 1";
$q3=mysql_query($sql3,$conexion);

while ($row1=mysql_fetch_array($q1) && $row2=mysql_fetch_array($q2) && $row3=mysql_fetch_array($q3))
{
hacer cualquier cosa...

}
El problema radica en el While, ya que las variables $row1 y $row2 las estoy perdiendo, solo puedo imprimir la variable $row3

cuantos fetch_array puedo colocar en el while, solo uno? quizas?

Gracias por su colaboración
  #2 (permalink)  
Antiguo 04/07/2006, 18:54
 
Fecha de Ingreso: mayo-2005
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Un saludo.. ya lo solucioné colocando parentesis que delimitaran cada una de las variables...
  #3 (permalink)  
Antiguo 04/07/2006, 20:10
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 1
¿Porqué hacés 3 consultas distintas sobre una misma tabla? en caso de ser tablas distintas igual podrías hacer un solo query y no complicas el fetch_array.

Código PHP:
$sql1="SELECT * FROM TABLA 1, TABLA 2, TABLA 3";
$q1=mysql_query($sql1,$conexion);

while (
$row1=mysql_fetch_array($q1)) {
// CUALQUIERA

Saludos
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #4 (permalink)  
Antiguo 05/07/2006, 11:31
 
Fecha de Ingreso: mayo-2005
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Hola!

Lo que sucede es que las condiciones (where) varian y necesito desplegar la información en una misma fila..
  #5 (permalink)  
Antiguo 05/07/2006, 11:55
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 1
ok ... igual podés combinar where's en un solo query ... si te sirve ...
saludos
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #6 (permalink)  
Antiguo 05/07/2006, 12:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 17 años, 11 meses
Puntos: 129
Cita:
Iniciado por QuakEgoD
Hola!

Lo que sucede es que las condiciones (where) varian y necesito desplegar la información en una misma fila..
Debes usar la propuesta de jpvilar .. El "lenguaje SQL" es mucho más que un "SELECT simple" .. Por ejemplo a nivel de rendimiento mejora mucho el tema si usas SQL adecuadamente.

No sé que datos tienen tus N tablas ni que realciones tienes o se trata de "unirlas?" .. En cualquier caso .. podrías consultar en el foro de "Base de datos" (con datos de ejemplo y explicación sobre tus tablas) por una mejor forma para afrontar este problema.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 05/07/2006, 17:32
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 13 años, 10 meses
Puntos: 3
Cita:
Iniciado por jpvilar
Código PHP:
$sql1="SELECT * FROM TABLA 1, TABLA 2, TABLA 3";
$q1=mysql_query($sql1,$conexion);

while (
$row1=mysql_fetch_array($q1)) {
// CUALQUIERA

Saludos
Y si las 3 tablas tienen nombres iguales en la definicion de campos? Como podria referirme a uno cuando quiera imprimir por ej:
print $row[id];
Si ese id existe en las 3 tablas(me refiero al nombre del campo)...y yo quisiera idenfitificar cual es cual..
Saludos..
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #8 (permalink)  
Antiguo 05/07/2006, 17:47
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 1
simple ... le ponés un alias ...

Código PHP:
$f mysql_query("select (users.nombre)as nombre, (productos.nombre) as producto from users, productos");
$a mysql_fetch_array($f);
echo 
"HOLA $a[nombre] $a[producto]"
Espero te sirva
Saludos
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #9 (permalink)  
Antiguo 05/07/2006, 18:44
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 13 años, 10 meses
Puntos: 3
Ahh si !,de esa manera si la sabia hacer , pero yo me refiero a cuando traes todos los registros... (select * from tabla1,tabla2,tabla3...) .
Me imagino q ya en ese caso si habra q hacer otros querys..
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #10 (permalink)  
Antiguo 05/07/2006, 19:22
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 1
En realidad no sé como individualizar cuando traes todos los registros (select *), de ultima podés colocarle alias a los repetidos solamente (abajo pongo el código) aunque prefiero tomarme el trabajo de hacer el query largo pidiendo campo por campo que gastar recursos sql haciendo varias consultas sobre las mismas tablas ... o sea ... siempre te da mayor perfomance hacer un solo query que varios ... menos conexiones a la base ... menos consultas ...
Saludos
Código PHP:
$a mysql_query("select *, (users.nombre)as nombre, (productos.nombre)as producto, (clientes.nombre)as cliente from users, productos, clientes");
$b mysql_fetch_array($a);
echo 
"$b[nombre] - $b[producto] - $b[cliente] - $b[descripcion]";
// suponiendo que descripcion sea un campo exclusivo de la tabla productos 
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #11 (permalink)  
Antiguo 05/07/2006, 19:31
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 13 años, 10 meses
Puntos: 3
Orale... no sabia que se podia traer todos los registros y a la vez individualizar..
Código PHP:
"select *, (users.nombre)as nombre, (productos.nombre)as producto, (clientes.nombre)as cliente from users, productos, clientes"); 
Ese query no traera 2 veces los mismos registros?
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #12 (permalink)  
Antiguo 05/07/2006, 19:35
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 1
Si, pero con nombres distintos en el array ...
Saludos
__________________
JuanP
QUIEN NO SE EQUIVOCA NO APRENDE ...
QUIEN NO APRENDE SE EQUIVOCA ... PERO NO APRENDE
  #13 (permalink)  
Antiguo 17/01/2009, 18:24
Avatar de rebocano  
Fecha de Ingreso: enero-2007
Ubicación: Me encuentro ubicado en C
Mensajes: 37
Antigüedad: 12 años, 10 meses
Puntos: 2
Exclamación Respuesta: While y Fetch_array

Si alguien sabe.. ayudeme porfavor!

Tengo el siguiente error :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\nueva\contacto.php on line 16

Estoy tratando de ver los datos de una base de datos Mysql en Php y antes me funcionaba, este error puede ser por que haya actualizado la versión del Mysql o PHP ?
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 20:04.