PHP - no insertar el mismo codigo

 
Vista:

no insertar el mismo codigo

Publicado por luter (5 intervenciones) el 10/01/2005 20:24:49
Hola que tal, tengo un problema con un sistema para una escuela, en este sismeta los alumnos se pueden registrar, el problema es que no se pueden registrar dos veces no se tienes que repetir el codigo. en el codigo que hice no me respecta las instruciones se brinca la parte donde le dice que si ya esta registrado lo mande a la pagina del mensaje y lo que hace es que inserta los datos auque ya este dado de alta pero me devuelve un error. gracias por la ayuda
[email protected]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:no insertar el mismo codigo

Publicado por ranuke (46 intervenciones) el 11/01/2005 08:51:53
hola, sin ver el codigo es dificil saber que tienes mal pero controlarlo es facil tienes una variable con el nº de registro nuevo v_reg_nuevo. Haz una busqueda de todos los numeros de registro y los vas comparando con el nuevo y si coincide pues que valla a la pagina que quieres, esto no deberia dar problemas si el codigo esta bien pero si no te sale pon el codigo aqui para ver que se puede hacer

suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

mi codigo

Publicado por luter (5 intervenciones) el 12/01/2005 17:45:06
<?php
//conecto con la base de datos
$conn = mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("prepa3",$conn);
//sentenica sql para buscar si el alumno ya dio de alta su codigo
$ssql="select * from tdanzam, tdanzav, tdibujom, tdibujov, tfotografia, tmusica, tteatrom, tteatrov where codigo='$codigo'";
//ejecuto la sentencia
$rs=mysql_query($ssql,$conn);
//vemos si el usuario ya esta registrado por el codigo, si la ejecucion de la sentencia nos da algun resultado
//es que si existe el regsitro
if (mysql_num_rows ($rs) !=0){
//usuario registrado
//se le manda a la pagina donde esta el mensaje de usuario registrado
header("Location: siregistrado.php");
//si no se insertan los datos a la bd
}else{
$Sql="insert into tdanzam
(codigo,nombre,taller) values
('$codigo','$nombre', '$taller')";
mysql_query($Sql,$conn);
header("Location: danzam.php");
}
mysql_free_result($rs);
mysql_close($conn);
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mi codigo

Publicado por ranuke (46 intervenciones) el 14/01/2005 08:56:58
Pues que yo vea tu codigo esta bien asi que comprueba que la sentencia sql este bien, osea, que tu variable $codigo este recogiendo el valor que tiene que coger
o mira a ver que valor tiene $rs porque si es 0 entonces es que tu sentencia sql no te esta devolviendo lo que debe
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mi codigo

Publicado por Ayudante (60 intervenciones) el 14/01/2005 15:17:42
Señores, antes de revisar códigos ni nada de eso, hay que verificar que el campo del código tenga un índice único, para evitar la repetición del mismo desde la BD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mi codigo

Publicado por Makiavelo (4 intervenciones) el 01/02/2005 17:23:34
...mira, por aca tenia el mismo problema, hice lo que Ayudante dice, consulto el Codigo a la BD, aca esta parte del error que lo personalice, espero te ayude:

$errnum = mysql_errno();$roterror = mysql_error();
if ($errnum == 1062 && $roterror=="Duplicate entry '$x_estcliNombre' for key 3"){
echo "<script language='javascript'>";
echo "alert('El Nombre $x_estcliNombre esta duplicado, intente de nuevo');";
echo "document.location.href='EstadoClientelist.php'";
echo "</script>";
return;
}

PS:_ sino avisas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar