Foros del Web » Programando para Internet » PHP »

problema con un while

Estas en el tema de problema con un while en el foro de PHP en Foros del Web. hola: tengo un problema con este while quiero q mire dos tablas al mismo tiempo: Código PHP: while ( $row = mysql_fetch_array ( $result ) & ( $row ...
  #1 (permalink)  
Antiguo 20/02/2003, 11:46
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
problema con un while

hola:

tengo un problema con este while

quiero q mire dos tablas al mismo tiempo:

Código PHP:
while ($row=mysql_fetch_array($result) & ($row=mysql_fetch_array($result1)) 
$result: proviene de la tabla1

$result1: proviene de la tabla2.

como lo hago?
__________________
Muchas gracias, saludos.
  #2 (permalink)  
Antiguo 20/02/2003, 11:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Eso no se hace así .. se hace desde la consulta SQL q tienes q ejecutar.

Algo tipo:

SELECT campo1.tabla1, campo1.tabla2 FROM tabla1,tabla2

Osease .. las llamadas a tus campos de varias tablas se hace con la sintax:

campo.tabla (campo punto tabla a la q pertenece) .. Tambien puedes usar alias por si tienes nombres de campos repetidos en ambas tablas ..

Con eso formas una consulta Unica con los datos que has formado de ambas tablas y por ende usas un solo bucle "while" para recorrer la tabla generada ..

Te insito q leas:
www.mysql.com/doc

Un saludo,
  #3 (permalink)  
Antiguo 20/02/2003, 12:05
Avatar de luigivirgo  
Fecha de Ingreso: enero-2003
Ubicación: Toluka mejiko
Mensajes: 150
Antigüedad: 14 años, 10 meses
Puntos: 0
y tu kondicion del while esta mal

para kompara ke una y otra sean verdaderas


usa &&

tu solo tienes un &

o usa el operador and

de no ser asi
estod de akuerdo kon kluster
__________________
no olvides visitar tu propia komputadora en
http://computadora.de
http://paginaweb.de/luigivirgo/luis.jpg
  #4 (permalink)  
Antiguo 20/02/2003, 15:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Como ya te han dicho, para comparar dos valores es &&. El & sirve para hacer una operacion AND a nivel de bits. Y otro comentario: debes llamar de distinta forma a los dos $row, porque si no vas a pisar los valores del primero con los del segundo:
Código PHP:
while ($row=mysql_fetch_array($result) && ($row1=mysql_fetch_array($result1)) 
Pero creo que la solucion de Cluster esta mal (la consulta SQL). ¿Por que? Muy sencillo. Porque esa consulta genera un numero de registros igual a multiplicar el numero de registros de la tabla1 con el numero de registros de la tabla2. Lo que hace es combinar cada registro de la tabla1 con todos los de la tabla2. Si la tabla1 tiene 10 registros y la tabla2 20, el resultado tendra 200 registros.

No se si eso es lo que quiere xias, pero creo que no. Ni siquiera dice que las tablas estan relacionadas o no. Con su codigo corregido va ha recorrer el bucle n veces, siendo n el menor entre el numero de registros de $result y el numero de registros de $result2. Tambien comentar que por culpa de la optimizacion de los && (tambien en ||), cuando la primera parte de la condicion sea false (no mas registros en $result), no se ejecuta el mysql_fetch_array($result1). Hay que tenerlo en cuenta, ya que $row1 tendra los valores de la iteracion anterior.

Lo mejor es que expliques que es lo que quieres hacer. Quizas es mas facil hacerlo en un paso anterior o tomando otro enfoque.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 20/02/2003, 16:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues sin mas datos .. lo mio queda en un ejemplo de uso de varias tablas en una consulta ..Partiendo q ambas tienen algun tipo de relacion q hace q ambas tablas tengan el mismo numero de registros o se usa algun condicional q lo fuerce ..

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 18:19.