entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Row me muestra solo 1 dato de mysql y no todos

Buenas necesito mostrar todas las fechas de un usuario dependiendo de su session o si buscan por su id ?id=X pero solo me aparece 1 dato del total que tiene el usuario, también necesito que muestre en forma descendente pero igualmente no me funciona con DESC

<?php

if(isset($_GET['id']) && !empty($_GET['id']) && is_numeric($_GET['id']))
    $id = (int)$_GET['id'];
else
    $id = $_SESSION['id'];

$q = mysql_query("Select * FROM cargas WHERE id_usuario='".$id."'");

$row = mysql_fetch_assoc($q);

$fecha = $row['fecha'];
$fecha = date("d/m/Y",$fecha);

echo "<tr><td>$fecha</td></tr>";

?>

1 Respuesta

3votos

carlossevi Puntos63540

Documentación de la función mysql_fetch_assoc():

Devuelve un array asociativo que corresponde a la fila recuperada y
mueve el puntero de datos interno hacia adelante.

Es decir, si sólo devuelve la primera fila, para obtener todas las filas debería incluirse en un bucle. En esa misma página de documentación tienes ejemplos de código que explican como hacerlo.

Antes de continuar te recomiendo tener en cuenta:

Advertencia Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las
extensiones MySQLi o PDO_MySQL.

Es decir, es recomendable cambiar todas las funciones mysql_* por mysqli_*. Función sustituya: mysqli_fetch_assoc() (Documentación).

Ejemplo de código:

<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "world");

/* verificar la conexión */
if (mysqli_connect_errno()) {
    printf("Conexión fallida: %s\n", mysqli_connect_error());
    exit();
}

$consulta = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($resultado = mysqli_query($enlace, $consulta)) {

    /* obtener array asociativo */
    while ($row = mysqli_fetch_assoc($resultado)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* liberar el conjunto de resultados */
    mysqli_free_result($resultado);
}

/* cerrar la conexión */
mysqli_close($link);
?>

0voto

Leonardo-Tadei comentado

Importantísimo el comentario de @carlossevi sobre la obsolecencia de las funciones mysql_*

0voto

Mariio comentado

Muchas gracias, ya hize el cambio y funciona perfecto, pero tengo una duda: ¿Como hago que muestre un mensaje de error si el usuario no tiene ningún dato? Supongo que es con un else.

Sobre lo del mysql no me preocupa tanto por ahora xd

0voto

carlossevi comentado

"Lo del MySQL" sólo te cuesta añadir una letra "i" en una serie de nombres de funciones y tienes asegurada la compatibilidad con futuras versiones de PHP además de obtener un mejor rendimiento. Utilizar las funciones antiguas conociendo el problema es caer en la desidia.

Para lo que comentas de controlar el número de resultados, puedes utilizar la función mysqli_num_rows() (Documentación) con una bifurcación.

El código quedaría:

if ($resultado = mysqli_query($enlace, $consulta)) {

    if (mysqli_num_rows($resultado) > 0) {

        /* obtener array asociativo */
        while ($row = mysqli_fetch_assoc($resultado)) {
            printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
        }

    } else {

        // Aquí tu código en caso de 0 resultados

    }

    /* liberar el conjunto de resultados */
    mysqli_free_result($resultado);
}

0voto

Mariio comentado

Muchas gracias, me ayudaste mucho :D

Me terminaste convenciendo de agregar la "i" xd

0voto

Leonardo-Tadei comentado

Recuerden que además de agregar el "i" las funciones mysqli_* requeren como parámetro obligatorio el handler a la conexión (qye en las mysql_* es opcional)

Aunque sea un poco de trabajo hay que pasarse: van a desaparecer en las próximas versiones de PHP...

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


Actividad Reciente

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta