Foros del Web » Programando para Internet » PHP »

Ayuda Porfavor con Duplicate entry

Estas en el tema de Ayuda Porfavor con Duplicate entry en el foro de PHP en Foros del Web. Tengo el siguiente problema: inserto el primer registro pero cuando llego al segundo me dice "Error en query:Duplicate entry '5' for key 'PRIMARY'" aunq incremento ...
  #1 (permalink)  
Antiguo 22/04/2009, 20:06
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Ayuda Porfavor con Duplicate entry

Tengo el siguiente problema: inserto el primer registro pero cuando llego al segundo me dice "Error en query:Duplicate entry '5' for key 'PRIMARY'" aunq incremento el valor de id_pagoalumnoinscripcion pero no comprendo que pasa porq me sale que duplica el valor o no funciona.


esta es la tabla

CREATE TABLE IF NOT EXISTS `pagoalumnoinscripcion` (
`id_pagoalumnoinscripcion` int(11) unsigned NOT NULL,
`fechapagopagoalumnoinscripcion` date NOT NULL,
`montopagoalumnoinscripcion` varchar(5) NOT NULL,
`id_alumno` int(4) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id_pagoalumnoinscripcion`),
KEY `id_alumno` (`id_alumno`)
) ENGINE=InnoDB;

este es el codigo intente hacer id_pagoalumnoinscripcion auto_increment pero no me deja ya que la tabla tiene referenciada a la tabla alumno con id_alumno y ya es auto_increment

Código PHP:
<?php 
include('conexionbase.php');
// recogemos el ID del registro a actualizar
if(isset($_POST['capturar'])){
    
$id $_POST['id_alumno'];
}

// comprobamos que no lleguen campos vacios
if(!empty($_POST['montopagoalumnoinscripcion'])){
// creamos las variables
// que vamos a usar en la consulta UPDATE
// y le asignamos sus valores
$id_pagoalumnoinscripcion1 mysql_query("SELECT max(id_pagoalumnoinscripcion) maximo FROM pagoalumnoinscripcion") or die("Error en query:" mysql_error() );
$id_pagoalumnoinscripcion $id_pagoalumnoinscripcion1+1;
$montopagoalumnoinscripcion $_POST['montopagoalumnoinscripcion'];
// la consulta UPDATE
$sql "INSERT INTO pagoalumnoinscripcion (id_pagoalumnoinscripcion, fechapagopagoalumnoinscripcion, montopagoalumnoinscripcion, id_alumno) ";
        
$sql .= "VALUES ('".$id_pagoalumnoinscripcion."', NOW(), '".$montopagoalumnoinscripcion."', '".$_POST['id_alumno']."')";
        
$result mysql_query$sql ) or die("Error en query:" mysql_error() ); 
echo 
"<p class=fuente13><BR><BR><BR><BR><BR>Pago de Inscripción Realizado correctamente </p><br> <div align='center'> <b><a href='verrecibo.php'>Ver Recibo de Pago de Inscripción</a></b></div>";
}else{
    echo 
"<p class=fuente13><br><br><br>ERROR<br>Por Favor rellena todos los campos</p> <br> <div align='center'> <b><a href='javascript:history.back(1)'>Regresar</a></b></div>";
    }

?>
</center>
</form>
</body>
espero su ayuda gracias
  #2 (permalink)  
Antiguo 22/04/2009, 20:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda Porfavor con Duplicate entry

Haz lo siguiente, quita id_pagoalumnoinscripcion de la lista de campos a insertar, así dejas que MySQL le asigne el valor sucesivo que le corresponda.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/04/2009, 07:40
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda Porfavor con Duplicate entry

Muchas gracias david por tu respuesta pero ya lo intente pero no puede ser asi debido a que id_pagoalumnoinscripcion no es auto_increment porq id_alumno que es llave foranea de alumno ya es auto_increment y no puede haber dos autoincrement en una tabla
espero si alguien me pueda ayudar no entiendo como hacerle
  #4 (permalink)  
Antiguo 23/04/2009, 07:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda Porfavor con Duplicate entry

Por lo poco que conozco de php, no creo que el resultado del mysql_query, te retorne directamente el valor maximo.

prueba con:
$row = mysql_fetch_row($id_pagoalumnoinscripcion1);
$id_pagoalumnoinscripcion = $row[0]+1;

Si te quedan mas dudas, pregunta en el foro de php.
Sorry por poner código php.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 23/04/2009, 07:59
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda Porfavor con Duplicate entry

muchas gracias huesos52 por tu ayuda funciona perfecto gracias gracias gracias aunq soy nuevo espero contribuir yo tambien en estos foros!!! de veras gracias!!!
  #6 (permalink)  
Antiguo 26/04/2009, 18:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ayuda Porfavor con Duplicate entry

Tema trasladado desde Bases de Datos

Función de la sección de Bases de Datos
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 23:31.