Cita:
Iniciado por mensajeescrito Hola amigas/os, verán tengo un problema a ver si me pueden ayudar.
Estoy intentando, sin exito, poder actualizar con el "update" de mysql, un mismo campo
que está en varias filas de una misma tabla es decir algo asi:
tabla llamada accesos:
campo_id, campo_numero_acceso
El campo llamado "campo_numero_acceso", debe ser incremetal, es decir
en la primera fila de la tabla debe valer 1, en la segunda fila de la tabla 2, .....etc
pero el código que tengo no me funciona bien, ya que me rellena el campo "campo_numero_acceso" en todas las filas con el mismo valor osea 5 en vez de rellenarmelos con:
1
2
3
4
5
Miren este es el código que tengo:
Código PHP:
Ver originalfor ($i=1; $i <= 5; $i++)
{
$sql = "UPDATE accesos SET numero_acceso=$i";
}
Gracias de antemano.
eso deberia hacerse al crear la FILA NO AL HACER UN UPDATE, pero bueno tendras tus razones, hacerlo solo con el Comando UPDATE no te valdra, por lo que te tocara hacerlo desde un BUCLE SQL o un BUCLE PHP, tu eliges, si es algo que haras constantemente o solo para reparar, si fuese constantemente lo mas LOGICO seria que crees un STORED PROCEDURE en MYSQL con los parametros y criterios necesarios y con ello estaria listo
ahora del modo PHP, el UPDATE trabaja bajo criterios, y no estas dando ningun criterio o filtro a tu UPDATE por eso esta poniendo a todos los que coinciden el mismo valor
Código PHP:
$sql = "UPDATE accesos SET numero_acceso=$i WHERE id=1"
$sql = "UPDATE accesos SET numero_acceso=$i WHERE id=2"
$sql = "UPDATE accesos SET numero_acceso=$i WHERE id=3" ;
y lo mejor seria que hagas un SELECT primero y con ese select Obtienes el ID de cada
Código psuedocodigo:
Ver originalvar $i = 1;
for ($fila in sql->fetchAll('SELECT * FROM accessos '))
{
$sql = "UPDATE accesos SET numero_acceso=$i WHERE id=" . $fila['id'];
sql->execute($con,$sql) or die (mysqli_error($con));
$i++;
}
espero puedas comprender la logica