Foros del Web » Programando para Internet » PHP »

Update base de datos en masivo!

Estas en el tema de Update base de datos en masivo! en el foro de PHP en Foros del Web. Hola, No se donde tengo el error.. bueno la cuestion de este codigo es que quiero encada id es decir cada usuario añadir un salt ...
  #1 (permalink)  
Antiguo 10/12/2004, 13:00
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 14 años, 5 meses
Puntos: 1
Update base de datos en masivo!

Hola,
No se donde tengo el error.. bueno la cuestion de este codigo es que quiero encada id es decir cada usuario añadir un salt diferente que se crea a traves de una funcion..
El codigo esta bien no me da error pero solo me lo hace del ultimo usuario..
ayuda plis se que que el error estara por el array pero no caigo ahora mismo como lo tengo que poner!

Código PHP:
<?php
       $query1
=" SELECT id FROM #__users";
    
$result1 $database->setquery($query1);
    
$result1=$database->query();
    while (
$row1=mysql_fetch_array($result1)) {
$salt fetch_user_salt(3);    
$sq0 "UPDATE  user SET salt='$salt' WHERE userid=$row1[id]";
$database->setQuery($sq0);
}

?>
__________________
Ado_k2 :adios:
  #2 (permalink)  
Antiguo 10/12/2004, 13:05
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona - España
Mensajes: 270
Antigüedad: 15 años
Puntos: 0
$sq0 = "UPDATE user SET salt='$salt' WHERE userid=$row1[id]";

Pon comillas simples en $row1['id'];

$sq0 = "UPDATE user SET salt='$salt' WHERE userid=$row1['id']";
Saludos
  #3 (permalink)  
Antiguo 10/12/2004, 14:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo usaría:
Código PHP:
$sq0 "UPDATE user SET salt='$salt' WHERE userid='".$row1['id']."'"
Por lo demás . si ya usas "cierto" objeto tipo: $database->query(); que tiene sus própios métodos .. deberías usarlo para todo .. incluido ese bucle que obtiene un campo de tu registro (del SQL dato más arriba) y ejecutarlo ..

Pero, si vas actualizar un dato de un campo para toda una tabla .. no es necesario ni que obtengas unos "id" de registros si va afectar a toda .. no uses "WHERE y listo"

$sq0 = "UPDATE user SET salt='".$salt."'";

Un saludo,
  #4 (permalink)  
Antiguo 10/12/2004, 15:51
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 14 años, 5 meses
Puntos: 1
Cita:
Iniciado por Cluster
Yo usaría:
Código PHP:
$sq0 "UPDATE user SET salt='$salt' WHERE userid='".$row1['id']."'"
Por lo demás . si ya usas "cierto" objeto tipo: $database->query(); que tiene sus própios métodos .. deberías usarlo para todo .. incluido ese bucle que obtiene un campo de tu registro (del SQL dato más arriba) y ejecutarlo ..

Pero, si vas actualizar un dato de un campo para toda una tabla .. no es necesario ni que obtengas unos "id" de registros si va afectar a toda .. no uses "WHERE y listo"

$sq0 = "UPDATE user SET salt='".$salt."'";

Un saludo,

Cluster el salt.. necesito que sea para cada usuario diferente (la funcion que tengo creada lo hace).. por lo tanto necesita la id.. y tal como lo tengo yo puesto me lo hace solo de la ultima id.. y nada mas.. los demas quedan vacios.
__________________
Ado_k2 :adios:
  #5 (permalink)  
Antiguo 13/12/2004, 05:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ado_k2

Bueno .. ya te comenté que estás usando una classe por ahí para control/acceso de tu BD .. y "de pronto" usas funciones básicas de Mysql .. no sé como trabaja tu classe sobre tu BD .. tal vez necesites buscar el método de esa classe que haga el hecho de obtener un grupo de registros (record-set) por qué parece que no lo está haciendo .. tal vez por qué maneje (es más que problable) sus própios "links de conexión" a los cuales si usas las funciones de Mysql directas (mysql_xxxx() ) no estás haciendo referencia o no puede ser correcta.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:57.