Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-08-2007
Vinicio Vinicio is offline
Miembro
 
Registrado: jul 2006
Posts: 16
Poder: 0
Vinicio Va por buen camino
Problema al insertar varios renglones

Que tal amigos, tengo un problema a la hora de insertar varios registros en una base de datos mysql, debo insertar varios registros con codigos diferentes, el codigo que presento acontinuacion
muestra la forma en que lo estoy intentando hacer, basicamente hago un ciclo FOR para insertar los registros dependiendo de la cantidad que el usuario asigne, el problema esta en que solo inserta una vez no importando cuantas veces le diga al FOR k haga iteraciones... alguno tiene otra idea, o me peuden decir en donde estoy fallando?

Código PHP:
for($e=0;$e<=$cantidad;$e++)
  {  

    
srand((double)microtime()*1000000); 
     
$codigo;
  
     for(
$i=0;$i<=11;$i++)
          {  
  
               
$nol rand(0,1);
   
           switch(
$nol)
           {
            case 
0$valor chr(rand(48,57));break; //0-9
            
case 1$valor chr(rand(65,90));break; //A-Z
              
}
           
$codigo .= $valor;
        }

$result mysql_query("INSERT INTO codigo (id_codigo, lote, codigo, id_usuario, id_distribuidor, activa, fecha_gen, fecha_act, credito) VALUES (NULL, '$maxlote', '$codigo', NULL, NULL, '0', '$fecha_gen', NULL, '0');",$cnx);

  
//termina inserta Codigo
  
}
     
header ("Location: codigo_asigna.php"); 

Última edición por roman fecha: 21-08-2007 a las 00:38:53. Razón: Agregar etiqueta [php]
Responder Con Cita
  #2  
Antiguo 21-08-2007
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

Dejando a un lado que no entiendo porque te moentas ese pollo para crear una clave cuando existen opciones mucho más simples para crear claves únicas.

Yo no veo nada raro, no entiendo el porque de la línea donde simplemente pones "$codigo" ya que si quieres una inicialización deberías asignarle un valor
Código PHP:
$codigo ""
// o
$codigo 0
Yo para estos casos lo que suelo hacer es imprimir la sentencia SQL que se genera es decir cambio:
Código PHP:
$result mysql_query("INSERT INTO codigo (id_codigo, lote, codigo, id_usuario, id_distribuidor, activa, fecha_gen, fecha_act, credito) VALUES (NULL, '$maxlote', '$codigo', NULL, NULL, '0', '$fecha_gen', NULL, '0')",$cnx); 
por
Código PHP:
echo "INSERT INTO codigo (id_codigo, lote, codigo, id_usuario, id_distribuidor, activa, fecha_gen, fecha_act, credito) VALUES (NULL, '$maxlote', '$codigo', NULL, NULL, '0', '$fecha_gen', NULL, '0')" 
Así puedes ver realmente que esta pasando. El punto y como que pones al final no sirve para nada.
También es muy util el "or die"
Código PHP:
$result mysql_query("INSERT INTO codigo (id_codigo, lote, codigo, id_usuario, id_distribuidor, activa, fecha_gen, fecha_act, credito) VALUES (NULL, '$maxlote', '$codigo', NULL, NULL, '0', '$fecha_gen', NULL, '0')",$cnx) or die(mysql_error()); 
Con esto imprimes el posible error generado por la consulta SQL.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #3  
Antiguo 21-08-2007
Vinicio Vinicio is offline
Miembro
 
Registrado: jul 2006
Posts: 16
Poder: 0
Vinicio Va por buen camino
Gracias, ya logré encontrar el error, precisamente hice lo que sugeriste y me di cuenta que el error estaba en que se concatenaban los demas codigos generados en la variable $codigo, es decir, la primera vez si insertaba pues se generaba un codigo de 12 digitos , la sigueinte vez como se generaba un codigo de 24 no permitia insertar en la base pues el campo solo tiene de longitud 12, entonces resolvi el problema inicializando la variable antes de entrar al segundo FOR, muchisimas gracias por tu respuesta .

PD. Si tienes una forma mas sencilla de generar codigos te agradeceria me la compartieras , pues es la unica que encontré jeje.

Muchas gracias de Nuevo!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Usar 2 renglones en QuickReport raco Varios 3 02-07-2010 22:23:53
Problema de BDE en Win XP con varios usuarios Sidi_Bibi Conexión con bases de datos 6 28-01-2007 00:42:49
Como puedo insertar varios registros con una instruccion de SQL marcoev MySQL 7 24-01-2007 22:54:00
Problema al ejecutar la aplicacion en varios equipos Ivan_25 C++ Builder 6 29-11-2005 12:50:14
problema con app con varios forms y barra de tareas kalisto Varios 1 15-08-2004 17:25:15


La franja horaria es GMT +2. Ahora son las 22:59:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi