Ayuda con bucle for

  • Autor Autor coni
  • Fecha de inicio Fecha de inicio
C

coni

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
hola quiero mostrar una lista de usuarios registrados con un bucle for pero solo me muestra 7 veces al primero alguien me ayuda??

PHP:
$query = mysqli_query($con,"select * from tabla");
//$num = mysqli_num_rows($query);

$fila = mysqli_fetch_assoc($query);
for($i=0; $i<7; $i++){
	echo "<p>".$fila['nombre']. " - ". $fila["correo"]. "</p>";
}
 
Probá con esto!

PHP:
$query = mysqli_query($con,"select * from tabla");

$fila = mysqli_fetch_assoc($query);

foreach($fila as $usuario){
echo "<p>".$usuario['nombre']. " - ". $usuario["correo"]. "</p>";
}
 
[MENTION=176422]coni[/MENTION] Estas entrando en un bucle pero nunca cambias el indice de la iteración. Si se fija $fila es un array asociativo pero jamas le estas diciendo que acceda a otro elemento de ese array. ¿Dentro del for donde estas usando la variable $i? Por eso es que siempre imprime el primero 7 veces.

Como te indican arriba ha de funcionar perfectamente.
 
me tira este error en el navegador

Insertar CODE, HTML o PHP:
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 11
1
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 11
n
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 11
u
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 11
0
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 11

Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\site\1.php on line 11

y tendria que mostrar 1, 2, 3, 4
esta es mi linea 11
PHP:
echo $usuario['id'];
 
Prueba con esto:
while($fila = mysqli_fetch_array($query)){
echo "<p>".$fila['nombre']. " - ". $fila["correo"]. "</p>";
}

Enviado desde mi Power mediante Tapatalk
 
Ahí te dice que "id" no es un campo en la tabla que solicitaste...

antes del foreach hace un var_dump($fila) y ahí vas a obtener todos los campos que te trae :encouragement:
 
Escribe en una línea después de $fila = mysqli_fetch_assoc($query);

PHP:
var_dump($fila);

Allí verás qué es a lo que puedes acceder en cada iteración.
 
Insertar CODE, HTML o PHP:
array(5) { ["id"]=> string(1) "1" ["code"]=> string(4) "nNAS" ["enlace"]=> string(3) "uno" ["stat"]=> string(1) "0" ["galleta"]=> string(0) "" } 
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 12
1
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 12
n
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 12
u
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 12
0
Warning: Illegal string offset 'id' in C:\xampp\htdocs\site\1.php on line 12

Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\site\1.php on line 12

me sigue tirando error. yo estaba usando for porque queria hacer lo mismo que esto

PHP:
$array = array("franco", "sofia", "ezequiel", "carla");
$longitud = count($array);
 
for($i=0; $i<$longitud; $i++){
	if($i == 1){
		echo "[soy segundo] ";
	}
	echo $array[$i];
	echo "<hr>";
}
pero con los dato de una consulta mysql, capas hay una forma mas facil y la estoy complicando. Gracias por responder
 
Ya que fila es un array, cuenta el número de elementos que contiene...además, es algo sospechoso el array, porque si hubiera más de un id, entonces no aparecería nada poniendo $fila['nombre'], tendrías que poner $fila['nombre'][0] o $fila['nombre'][1].

PHP:
$query = mysqli_query($con,"select * from tabla"); 
//$num = mysqli_num_rows($query); 

$fila = mysqli_fetch_assoc($query); 
$total = count($fila);
for($i=0;$i<$total;$i++){ 
echo "<p>".$fila['nombre'][$i]. " - ".$fila["correo"][$i]. "</p>"; 
}
 
Atrás
Arriba