Foros del Web » Programando para Internet » PHP »

mysql_fetch_row() --> Como es que funciona???

Estas en el tema de mysql_fetch_row() --> Como es que funciona??? en el foro de PHP en Foros del Web. Bueno, esto, tengo una duda muy grande... A mi me gusta saber como funciona lo que uso, entoncese... Esto: Código PHP: while( $row = mysql_fetch_row ...
  #1 (permalink)  
Antiguo 31/05/2008, 15:10
 
Fecha de Ingreso: mayo-2008
Ubicación: En la guarida del mal, tratando de conquistar el mundo
Mensajes: 174
Antigüedad: 15 años, 10 meses
Puntos: 2
mysql_fetch_row() --> Como es que funciona???

Bueno, esto, tengo una duda muy grande...

A mi me gusta saber como funciona lo que uso, entoncese...

Esto:

Código PHP:
while($row=mysql_fetch_row($result)) 
Como es que funciona??
buen o lo de while lo entiendo xD. Entonces, $row es un array, pero lo que no me entra, es porque uso un solo =, ya que para hacer comparaciones se usa ==.

Pero ademas, para que me sirve usar un solo =, osea, no estaria dandole el valor de mysql_fetch_row($result) a $row??? Como salis de un ciclo en el que no te devuelven un valor??

Gracias de antemano al que me explique esto... ^^
Por cierto, esta "funcion" la se usar, pero lo unico es que no se como funciona xD

Última edición por ZequeZ; 31/05/2008 a las 15:21
  #2 (permalink)  
Antiguo 31/05/2008, 15:45
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Respuesta: mysql_fetch_row() --> Como es que funciona???

Todo lo que pusiste es exactamente lo que hace :)

$result es un identificador de un resultado de alguna consulta (resultset).

mysql_fetch_row funciona así:
Si ejecutas $row = mysql_fetch_row($result); lo que haces es leer el primer registro de ese resultset y almacenarlo en la variable $row. Además, el cursor interno se mueve a la siguiente posición.
Por eso, si vuelves a hacer $row=mysql_fetch_row($result), leerá el segundo registro, y sobreescribirá la variable $row. El cursor se mueve a la tercera posición del resultset.
Supongamos que la consulta solamente devolvió dos registros. Entonces si hacemos $row=mysql_fetch_row($result), se tratará de leer un tercer registro que no existe. Así que toda la función devuelve el valor "false".

Lo que va en los paréntesis del bucle while no es necesariamente una comparacíon, sino una condición. De ser verdadera, se ejecuta el código. De ser falsa se pasa directamente a lo que siga.

Para PHP cualquier valor (que no sea false, 0 (cero)) pasa el contro de veracidad XD.

Entonces con el while ($row=mysql_fetch_row($result)), lo que estamos haciendo es almacenar temporalmente el registro en la variable row, utilizarlo y pasar a leer el siguiente registro (sobreescribiendo $row)... y así hasta que se llega al último, mysql_fetch_row() devuelve false y el while ya no se ejecuta.

Espero que se haya entendido,
  #3 (permalink)  
Antiguo 31/05/2008, 17:54
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: mysql_fetch_row() --> Como es que funciona???

como opinión yo en los whiles prefiero usar mysql_fetch_array :D
__________________
Hospedaje Web al mejor costo!
  #4 (permalink)  
Antiguo 31/05/2008, 20:15
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Respuesta: mysql_fetch_row() --> Como es que funciona???

Cita:
Iniciado por urgido Ver Mensaje
como opinión yo en los whiles prefiero usar mysql_fetch_array :D
Sería bueno que también le expliques el por qué. Tal vez pienses que es mejor utilizar arrays asociativos como $row['nombre_del_campo'] en lugar de índices numéricos como $row[1].

Y sí... es mucho más práctico y con mayor riqueza semántica.
  #5 (permalink)  
Antiguo 17/06/2008, 20:51
 
Fecha de Ingreso: mayo-2008
Ubicación: En la guarida del mal, tratando de conquistar el mundo
Mensajes: 174
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: mysql_fetch_row() --> Como es que funciona???

Mmm... Hacia mucho que no pasaba xD...

Perdon por no responder ^^U

Gracias :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




La zona horaria es GMT -6. Ahora son las 01:55.