Daniel Segovia

Blog personal

Archive for the ‘5.2.4 Recuperar el contenido’ Category

Recuperar múltiples filas

Hacer un comentario

Las funciones mysql_fetch_assoc y mysql_fetch_array nos crean un array de 1 fila, pero la consulta puede traernos muchas más filas. Para acceder fila por fila debemos ciclar el resource del query que realizamos, cuando las funciones nos devuelvan un false querrá decir que no quedan más filas por lo que concluiremos el ciclo.
Como es un ciclo condicional usaremos while

<?php
$link = mysql_connect('localhost', 'usuario', 'contrasena');
if (!$link) {
    die('No se pudo conectar: ' . mysql_error());
}
if (!mysql_select_db('base_nombre')) {
    die('No puede seleccionarse "base_nombre" con esta conexión : ' . mysql_error());
}
$result = mysql_query('SELECT nombre, apellido, direccion FROM estudiantes');
if (!$result) {
    die('Error al ejecutar el query:' . mysql_error());
}
while($row = mysql_fetch_assoc($result)){
    echo $row['nombre']  . " - " . $row['apellido']  . " - " . $row['direccion']  . "<br />";
}
?>

Written by Daniel Segovia

julio 4th, 2011 at 10:46 pm

Recuperar el contenido

Un comentario

Hasta ahora hemos visto como conectarnos, seleccionar y ejecutar un query en una base de datos MySQL.
Es hora de ejecutar un query y traer esa información para poder manipularla en PHP.
Existen varias funciones para este trabajo, veremos 3, mysql_result, mysql_fetch_array y mysql_fetch_assoc.

mysql_result recuperará en contenido de una celda.

<?php
$link = mysql_connect('localhost', 'usuario', 'contrasena');
if (!$link) {
    die('No se pudo conectar: ' . mysql_error());
}
if (!mysql_select_db('base_nombre')) {
    die('No puede seleccionarse "base_nombre" con esta conexión : ' . mysql_error());
}
$result = mysql_query('SELECT nombre FROM estudiantes');
if (!$result) {
    die('Error al ejecutar el query:' . mysql_error());
}
echo mysql_result($result, 1); // Imprimirá el segundo nombre de la tabla (el primero esta en la posición 0)
?>

mysql_fetch_array generará una array con índices numericos, empezando desde el 0, por cada campo que traiga la consulta

<?php
$link = mysql_connect('localhost', 'usuario', 'contrasena');
if (!$link) {
    die('No se pudo conectar: ' . mysql_error());
}
if (!mysql_select_db('base_nombre')) {
    die('No puede seleccionarse "base_nombre" con esta conexión : ' . mysql_error());
}
$result = mysql_query('SELECT nombre, apellido, direccion FROM estudiantes');
if (!$result) {
    die('Error al ejecutar el query:' . mysql_error());
}
$row = mysql_fetch_array($result);
echo $row[0]  . " - " . $row[1]  . " - " . $row[2]  . " - ";
?>

mysql_fetch_assoc generará una array con índices que serán iguales a los nombres de los campos en la base de datos

<?php
$link = mysql_connect('localhost', 'usuario', 'contrasena');
if (!$link) {
    die('No se pudo conectar: ' . mysql_error());
}
if (!mysql_select_db('base_nombre')) {
    die('No puede seleccionarse "base_nombre" con esta conexión : ' . mysql_error());
}
$result = mysql_query('SELECT nombre, apellido, direccion FROM estudiantes');
if (!$result) {
    die('Error al ejecutar el query:' . mysql_error());
}
$row = mysql_fetch_assoc($result);
echo $row['nombre']  . " - " . $row['apellido']  . " - " . $row['direccion']  . " - ";
?>

Written by Daniel Segovia

julio 4th, 2011 at 10:36 pm