Foros del Web » Programando para Internet » PHP »

problemas con alta en mysql

Estas en el tema de problemas con alta en mysql en el foro de PHP en Foros del Web. Hola que tal estoy haciendo un alta pero lo que sucede es que se repite el registro dos veces y por lo tanto marca error ...
  #1 (permalink)  
Antiguo 25/04/2009, 18:15
 
Fecha de Ingreso: julio-2005
Mensajes: 2
Antigüedad: 18 años, 9 meses
Puntos: 0
problemas con alta en mysql

Hola que tal

estoy haciendo un alta pero lo que sucede es que se repite el registro dos veces y por lo tanto marca error de clave repetida, x q el alta se manda dos veces, el problema debe estar despues del if pero ya lo cheque con echo y el bucle es correcto, podrian echarle un ojo al codigo y decirm q hice mal por favor????


muchas gracias



Código PHP:
<?php require_once('../Connections/sms.php'); ?>
<?php
session_start
();
switch (
$_SESSION['rr'])
{
    case 
1:
    {
        
$tabla="alumnos";
        
$cadena="(bol_alu, pass, id_carr, cel, preg_alu, res_alu) values($_REQUEST[bol_alu], '$_REQUEST[pass_alu]', $_REQUEST[id_carr], '$_REQUEST[cel]', $_REQUEST[preg_alu], '$_REQUEST[res_alu]')";        
        
$tabla2="sec_alu";
    }
    break;
    case 
2:
    {
        
$tabla="profesores";
        
$cadena="(id_prof, pass, cel, preg_prof, res_prof) values($_REQUEST[bol_alu], '$_REQUEST[pass_alu]','$_REQUEST[cel]', $_REQUEST[preg_alu], '$_REQUEST[res_alu]')";        
        
$tabla2="profaca";    
    }
    break;
    case 
3:
    {
        
$tabla="administrativos";
        
$cadena="(id_adm, pass, cel, preg_adm, res_adm) values($_REQUEST[bol_alu], '$_REQUEST[pass_alu]','$_REQUEST[cel]', $_REQUEST[preg_alu], '$_REQUEST[res_alu]')";        
        
$tabla2="adm_area";            
    }
    break;
}
mysql_select_db($database_sms$sms);
$query_alumnos "INSERT INTO $tabla $cadena";
//$alumnos = mysql_query($query_alumnos, $sms) or die(mysql_error());
$alumnos mysql_query($query_alumnos$sms); 
$emysql_error($sms);
$v=array();
//$v=$_SESSION['n'];
$v=$_REQUEST['array'];
$t=count($v);
if (
$_SESSION['rr']>1)
{
    for (
$i=0;$i<$t;$i++)
    {
        
//echo $v[$i];
        
$query_alumnos2 "INSERT INTO $tabla2 values($_REQUEST[bol_alu], $v[$i])";
        
$alumnos2 mysql_query($query_alumnos2$sms);
    }
}
else
{
    for (
$i=0;$i<$t;$i++)
    {
        
//echo $v[$i];
        
$query_alumnos2 "INSERT INTO $tabla2 values($_REQUEST[bol_alu], '$v[$i]')";
        
$alumnos2 mysql_query($query_alumnos2$sms);
    }
}
$emysql_error($sms);
if (
$e)
    
$_SESSION['error']=$e;
else
    
$_SESSION['error']="Sus Datos han sido registrados con exito";
header("Location: mensajes.php");

?>
  #2 (permalink)  
Antiguo 25/04/2009, 19:01
upm
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 2
Información Respuesta: problemas con alta en mysql

Hola Christina ,

Prueba cambiando la sentencia SQL por algo así:

Código PHP:
$sql "INSERT INTO $tabla2 values('".$_REQUEST[bol_alu]."', '".$v[$i]."')"
Pon especial atencíon en el uso de los apóstrofes que encierran los valores, el contenido de $sql debería lucir algo como:

Código PHP:
$sql "INSERT INTO nombredetabla values('valorde_bol_alu', 'valorde_v_i')"
Tambien debes evitar usar variables de tipo
Código PHP:
$var[$ind
dentro de la cadena, y en su lugar concaténalas con punto".", ya que no estoy seguro de que sean reemplazadas correctamente y en todos los casos por su valor en la cadena resultante.

Quizás lo que sucede es que el INSERT que estás ejecutando ($query_alumnos2) está mal formado ... y no varía adecuadamente según los valores de
Código PHP:
$_REQUEST[bol_alu
y
Código PHP:
$v[$i
, por lo tanto se repite la misma sentencia -con errores- varias veces.

Bueno, espero haber logrado explicarme.

Éxito y saludos

Última edición por upm; 25/04/2009 a las 19:12
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:04.