Foros del Web » Programando para Internet » PHP »

Update a base de datos desde php ingresar mas de 500 registros diferentes a la vez ?

Estas en el tema de Update a base de datos desde php ingresar mas de 500 registros diferentes a la vez ? en el foro de PHP en Foros del Web. Necesto hacer un update a una base de datos. $cadena_caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890"; $codigo = ""; for($i=0;$i<12;$i++) { $codigo .= substr($cadena_caracteres,rand(0,62),1); } esto lo uso ...
  #1 (permalink)  
Antiguo 21/11/2011, 23:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Update a base de datos desde php ingresar mas de 500 registros diferentes a la vez ?

Necesto hacer un update a una base de datos.

$cadena_caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890";
$codigo = "";
for($i=0;$i<12;$i++) {
$codigo .= substr($cadena_caracteres,rand(0,62),1);
}

esto lo uso para generar un codigo .


tengo 500 registos en la base de datos a la que le agregue ese campo nuevo a la tabla "codigo"


quiero ingresar un codigo unico por cada fila, como lo hago ?


ya que si hago esto :

mysql_query("UPDATE tabla SET codigo = 'codigo' WHERE id >='0'")or die(mysql_error());


me ingresara el mismo codigo en las 500 filas .

que debo hacer ?

Última edición por Mndrake; 21/11/2011 a las 23:42 Razón: TITULO MALO
  #2 (permalink)  
Antiguo 22/11/2011, 00:03
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 13 años, 11 meses
Puntos: 55
Respuesta: Update a base de datos desde php ingresar mas de 500 registros diferentes

puedes hacer un while para mostrar todos los registros, y en cada ciclo creas un codigo aleatorio y haces un update en codigo where id= id

Código PHP:
Ver original
  1. $sentencia="SELECT * FROM tabla ORDER by id desc";
  2. $result=mysql_query($sentencia);
  3. while($ver = mysql_fetch_object($result)){
  4. $id=$ver->id;
  5. //creas el codigo
  6. $cadena_caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890";
  7. $codigo = "";
  8. for($i=0;$i<12;$i++) {
  9. $codigo .= substr($cadena_caracteres,rand(0,62),1);
  10. }
  11. //y lo insertas en el registro que tenga este id
  12. $sentencia = "UPDATE tabla SET codigo='".$codigo."' WHERE  id = '" . $id . "';";
  13. mysql_query($sentencia) or die("Error al modificar el campo codigo: ".mysql_error());
  14. }

Creo que con eso tiene agregar un codigo diferente en cada registro

...mas tarde

Lo probe y funciono perfecto, saludos.

Última edición por waldragon; 22/11/2011 a las 00:15 Razón: comente resultado de la prueba
  #3 (permalink)  
Antiguo 22/11/2011, 00:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Update a base de datos desde php ingresar mas de 500 registros diferentes

no me funciona amigo
  #4 (permalink)  
Antiguo 22/11/2011, 00:37
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Update a base de datos desde php ingresar mas de 500 registros diferentes

Con lo que escribio waldragon ya estaria porque la posibilidad de que salga el mismo codigo tirando random de 12 caracteres es casi nula pero si quieres mayor seguridad podrias ir guardando los codigos generados en un array y cada vez que creas uno nuevo los compraras con los del array, sino existe insertas sino generas de nuevo el codigo.

Como para que tengas una base el codigo seria algo asi:
(Aclaro no lo he probado es para que tengas una guia)
Código PHP:
$sentencia="SELECT * FROM tabla ORDER by id desc";
$result=mysql_query($sentencia);
$arrayCodigos=array();
while(
$ver mysql_fetch_object($result)){
    
$id=$ver->id;
    
//creas el codigo
    
$codigo "";
    
$insertado false;
    while (!
$insertado){
        
$cadena_caracteres "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890";
        for(
$i=0;$i<12;$i++) {
            
$codigo .= substr($cadena_caracteres,rand(0,62),1);
        }
        if (
count($arrayCodigos) == 0){
            
$i=1// es la primera vez
        
}else{
            
$i=0;
        }
        
$repetido false;
        while (!
$repetido && count($arrayCodigos)>$i){
            if (
$codigo == $arrayCodigos[$i]){
                 
$repetido=true;
            }else{
                
$i++;
            }
        }
        if (!
$repetido){
            
$sentencia "UPDATE tabla SET codigo='".$codigo."' WHERE  id = '" $id "';";
            
mysql_query($sentencia) or die("Error al sumar las visitas");
            
$insertado=true;
            
$arrayCodigo[]=$codigo;
        }
    }

Saludos, Nico.

Última edición por nicostone; 22/11/2011 a las 00:54
  #5 (permalink)  
Antiguo 22/11/2011, 00:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Update a base de datos desde php ingresar mas de 500 registros diferentes

Muchas Gracias Waldragon y Nico me funciono muy bien.

Etiquetas: mysql, sql, tabla, update
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 13:10.