php - mysqli_assoc - $ resulta solo una fila y luego se convierte en sesión
mysqli_assoc php (2)
Estoy tratando de consultar una sola fila de una tabla ''cuenta''. Tengo un problema con el MYSQLI, así que necesito un consejo. ¿Cómo puedo hacer eso?
$link = mysqli_connect("localhost","root","","database") or die("Error " . mysqli_error($link));
$query = "SELECT * FROM account WHERE username=''".$user."'' AND password=''".$passcode."'' LIMIT 1";
$result = $link->query($query) or die("Error " . mysqli_error($link));
$numrow = $result->num_rows;
$res = $result->fetch_assoc();
Después de la consulta quiero copiar los datos a una sesión, estoy haciendo así:
session_start();
$tableau = array($res[''cod_acc''],$res[''username''],$res[''password'']);
$_SESSION[''tableau''] = $tableau;
Y después de estos, ¿cómo puedo imprimir los datos?
$tableau = $_SESSION[''tableau''];
echo "$tableau[''username'']";
El problema estaba en algún otro código de línea, lo siento por la publicación. Pero gracias chicos.
De tu pregunta:
¿Cómo puedo imprimir los datos?
Antes que nada, necesitas agregar error_reporting()
en tu código:
error_reporting(E_ALL);
Está guardando valores en una matriz para $_SESSION
:
$tableau = array($res[''cod_acc''],$res[''username''],$res[''password'']);
$_SESSION[''tableau''] = $tableau;
Si observa su matriz de sesión, no es una matriz asociativa .
Entonces no puedes obtener el resultado como:
$tableau = $_SESSION[''tableau''];
echo $tableau[''username''];
Solución:
Puede obtener el nombre de usuario de la matriz de sesiones como:
echo $tableau[1]; // username on second index.
Solución 2:
Si desea un índice asociativo, debe usar una matriz asociativa como:
$tableau = array(
"cod_acc"=>$res[''cod_acc''],
"username"=>$res[''username'']);
$_SESSION[''tableau''] = $tableau;
Ahora puedes usarlo como lo necesites. Tenga en cuenta que estoy eliminando el campo de contraseña de la sesión, creo que no es necesario.
Nota al margen:
No sé por qué se mezclan el estilo procedimental y el estilo orientado a la objeción.