Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/12/2013, 16:34
Zet4
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años
Puntos: 0
Respuesta: Modificacion masiva PHP y SQL

Cita:
Iniciado por Alexis88 Ver Mensaje
Podrías empezar haciendo una consulta a la tabla y, con ayuda de un bucle, recorres el array asociativo que formarás con el resultado de la consulta y, ya con esto, vas actualizando cada dato con el valor de un contador que irá aumentando su valor de uno en uno por cada iteración, algo como esto:

Código PHP:
Ver original
  1. $conexion = new mysqli("servidor", "usuario", "password", "bd") or exit("No se pudo realizar la conexión");
  2.  
  3. $consulta = $conexion->query("SELECT * FROM tabla");
  4. if ($consulta->num_rows) {
  5.     while($datos = $consulta->fetch_array()) {
  6.         $conxion->query("UPDATE tabla SET id_order = " . ++$i . " WHERE id_order = " . $datos["id_order"]);
  7.     }
  8.     $consulta->free();
  9. }
  10. else
  11.     echo "No se encontraron datos en la consulta";
  12.    
  13. $conexion->close();

Saludos
Gracias por tu tiempo!! he puesto un poco modificado el código para ir mostrando los campos que quiero guardar, pero no funciona la consulta.

Código PHP:
Ver original
  1. $i=0;
  2. $consulta = $conexion->query("SELECT * FROM ps_orders");
  3. echo "Filas afectadas: " . $conexion->affected_rows; //NO ESCRIBE NADA
  4.  
  5. while($datos = $consulta->fetch_array()) {
  6.  
  7.     echo $datos["id_order"];
  8.     echo $datos["invoice_number"] . </br>;
  9.  
  10.     $conexion->query("UPDATE ps_orders SET id_order = " . ++$i . " WHERE id_order = " . $datos["id_order"]);
  11.     $conexion->query("UPDATE ps_orders SET invoice_number = " . ++$i . " WHERE id_order = " . $datos["id_order"]);
  12.  
  13.     if($conexion == false) {
  14.     trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR);
  15.     }else{
  16.       echo "Consulta realizada";
  17.     }
  18. }
  19.  
  20. $consulta->free();
  21. $conexion->close();

No escribe el 'echo "Filas afectadas: " . $conexion->affected_rows;'.
¿El while que es lo que hace exactamente? se supone que mientras q tiene $datos una fila que vaya haciendo la consulta, ¿no? Mediante el fetch_array() q crea un array dentro con todos los datos de la consulta.