Foros del Web » Programando para Internet » PHP »

sobre conectarse a base de datos

Estas en el tema de sobre conectarse a base de datos en el foro de PHP en Foros del Web. Hay una cosa que no me queda claro aun en el tema de habrir base de datos. Les muestro mi duda $link=mysql_connect("localhost",$usuario,$clave); mysql_select_db("cgomez",$link) or die("Error ...
  #1 (permalink)  
Antiguo 22/04/2003, 11:43
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 17 años, 1 mes
Puntos: 19
sobre conectarse a base de datos

Hay una cosa que no me queda claro aun en el tema de habrir base de datos.
Les muestro mi duda

$link=mysql_connect("localhost",$usuario,$clave);

mysql_select_db("cgomez",$link) or die("Error de DB_LOGO");

$sql="select * from logo" or die ("Error de SQL_LOGO");

$query=mysql_query($sql) or die ("Error de QUERY_LOGO");

while($row=mysql_fetch_array($query))

{

//Buena, aca mostramos resultados bla, bla

}
Todas las lineas las entiendo perfectamente. Lo que no entiendo es que hace esta linea:

while($row=mysql_fetch_array($query))

Se que mysql_fetch_array ordena los datos de modos que podamos usarlos con el nombre de sus campos.
Lo que no entiendo es como es que se va cambiando de filas por medio de esa linea. Porque por ejemplo en ASP si pongo

while not rs.eof

esta linea indica que recorra la tabla hasta que no llege al final de la tabla.

pero no entiendo como se logro hacer lo mismo usando esta sentencia:

while($row=mysql_fetch_array($query))

Agradeceria se me pueden sacar de esta duda.
graciasssssssssssssss
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #2 (permalink)  
Antiguo 22/04/2003, 11:48
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Si haces:
$row=mysql_fetch_array($query);

Haces que $row sea un array que contiene los valores del registro de la base de datos que toque.

Ejemplo:

mysql_query("SELECT 4");
$row=mysql_fetch_array($query);
#$row[0] = 4;

¿Que pasa? que sólo muestras un registro. Si usas el while(), creas un bucle que irá devolviendo registros hasta que se acaben. Es algo así como un foreach para mysql_query
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 22/04/2003, 11:55
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
depende tambien de la cuestión:

mysql_query("SELECT 4 FROM TABLA");
$row=mysql_fetch_array($query);

Solo recoge un resultado

pero:
$query=mysql_query("SELECT id FROM TABLA");
while($row=mysql_fetch_array($query))
{

}

Da todos los resultados de la tabla.
  #4 (permalink)  
Antiguo 22/04/2003, 16:17
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Usemos tu analogia de ASP:
Código PHP:
while($row=mysql_fetch_array($query)) 
equivale a algo asi en ASP:
Código PHP:
while not rs.eof
  $row
['campo1']=rs('campo1')
  
$row['campo2']=rs('campo2')
  
$row['campo3']=rs('campo3')
  
rs.movenext // o rs.next no recuerdo
  
.. el resto de codigo del while
wend 
Mas o menos, con errores de sintaxis.

En cristiano, mysql_fetch_array() copia al array $row los valores de los campos del registro actual del recordset y anvanza el puntero al siguiente registro del recordset. Si no hay siguiente, la siguiente vez que se llama devuelve false (como el flag eof).

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 22/04/2003, 20:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Creo que la explicación de josemi es bastante clara ..

En resumen .. mysql_fetch_xxxx() se encarga de "mover el puntero" automaticamente cada vez que se ejecuta dicha función .. devolviendo FALSE si no hay mas registros que leer de la consulta.

Osese, en PHP implementaron el move.next ese (que en PHP tambien lo tienes en mysql_seek() ..) en la misma función.

Todo esto lo puedes ver suficientemente claro en la descripción de cada función en el manual oficial de PHP .. justo ahí entre la descripición de la sintax que indica que parámetros acepta y en el primer/segundo parrafo que indica que devuelve o como funciona...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 07:24.