Foros del Web » Programando para Internet » PHP »

Clave Duplicada

Estas en el tema de Clave Duplicada en el foro de PHP en Foros del Web. Hola, soy nuevo en el foro y estoy realizando mi practica como analista de sistemas. La verdad se bien poco sobre programación y escoji este ...

  #1 (permalink)  
Antiguo 10/05/2011, 09:54
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Información Clave Duplicada

Hola, soy nuevo en el foro y estoy realizando mi practica como analista de sistemas.
La verdad se bien poco sobre programación y escoji este foro ya que lo encontre el mejor y mas acojedor.

Tengo una gran duda, estoy ingresando unos datos de un inventario de equipos. y esta tabla es solo de ingresos miscelaneos, como sea etclados, mouses et con su respectiva clave. me ingresa bien, pero al probarla con una misma clave no me dice error, sino que me dice que se a ingresado correctamente y me redirecciona a la misma pagina como le tengo dicho y obviamente cuando veo la bd el ingreso es el anterior. no es un UPDATE.

este es mi codigo

<?php
$conexion=mysql_connect("localhost","admin","admin ");
mysql_select_db ("inventario",$conexion);
$codigo=$_POST["codigo"];
$item=$_POST["item"];
$marca=$_POST["marca"];


$sql="INSERT INTO miscelaneos VALUES ('$codigo', '$item', '$marca')";


if (mysql_query($sql,$conexion))
{
$n1="Ha sido ingresado correctamente ";
header ("Location: ingresar_miscelaneo.php?n1=$n1");
}
else
{
$n1= "Error Critico ".$sql.mysql_error();
header ("Location: ingresar_miscelenao.php?n1=$n1");
}

?>


Quiero que cuando ingreso el articulo del mismo codigo, me de el error de clave duplicada y no me diga k se a ingresado correctamente :/
  #2 (permalink)  
Antiguo 10/05/2011, 11:21
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: Clave Duplicada

Hola que tal!,

Necesito el código dónde está el inventario, seguramente estás generando códigos diferentes y por eso si se insertan los datos siempre.
  #3 (permalink)  
Antiguo 10/05/2011, 11:27
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Mxas gracais por responder
La tabla de l apagina de ingreso es esta

Cita:
<center>
<form id="form1" name="form1" method="post" action="procesar_guardado_ingreso_miscelaneos.php" >
<table width="200" border="1">
<tr>
<td width="67">CODIGO</td>
<td width="117"><label for="codigo"></label>
<input type="text" name="codigo" id="codigo" /></td>
</tr>
<tr>
<td>ITEM</td>
<td><input type="text" name="item" id="item" /></td>
</tr>
<tr>
<td>MARCA</td>
<td><input type="text" name="marca" id="marca" /></td>
</tr>
</table>
<p>
<input type="button" onClick="valida_envia()" name="Guardar" id="Guardar" value="Guardar" />
</p>
Uso el form para redireccionarme al procesar_guardado_ingreso_miscelaneos.php
es decir uso 2 paginas asi no tengo la cagason de codigos en una jaja xD
la que puse anteriormente es la pagina de procesar donde esta el codigo de ingreso.
esta es la pagina donde se ingresan, no donde esta el codigo de ingreso.
  #4 (permalink)  
Antiguo 10/05/2011, 11:38
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: Clave Duplicada

te guarda con la misma clave?
  #5 (permalink)  
Antiguo 10/05/2011, 11:45
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

me dice ingresado correctamente, y me redirecciona a la pagina de ingreso, pero con error que no la encuentra :S y como no es un UPDATE los datos quedan intactos.
Simplemente no deveria ingresar y decir error como lo tengo en el codigo.

y cuando ingreso otro codigo distinto sale todo bien, me dice ingresado y me redirecciona bien a la pagina de ingreso nuevamente...
  #6 (permalink)  
Antiguo 10/05/2011, 11:49
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: Clave Duplicada

entiendo tu problema...solo quiero saber si se guarda o no tu registro??
  #7 (permalink)  
Antiguo 10/05/2011, 12:08
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Si, pero cuando pongo uno que ya esta ingresado NO
lo raro es que me dice k a sido ingresado correctamente
y me redirecciona a la pagina pero mal, me sale k no existe :S
pero cuando ingreso otro que no esta ingresado me redirecciona bien y se ingresa a la bd.
el problema creo lo tengo en la condicion, no estoy seguro

Cita:
if (mysql_query($sql,$conexion))
{
$n1="Ha sido ingresado correctamente ";
header ("Location: ingresar_miscelaneo.php?n1=$n1");
}
else
{
$n1= "Error Critico ".$sql.mysql_error();
header ("Location: ingresar_miscelenao.php?n1=$n1");
}
  #8 (permalink)  
Antiguo 10/05/2011, 13:34
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Clave Duplicada

duda , checa mi comentario en el codigo



Código PHP:
if (mysql_query($sql,$conexion))
{
$n1="Ha sido ingresado correctamente ";
header ("Location: ingresar_miscelaneo.php?n1=$n1");
}
else
{
$n1"Error Critico ".$sql.mysql_error();
#aqui dice micelenao ¿seria la misma paginaque cuando esta correcto?
header ("Location: ingresar_miscelenao.php?n1=$n1");

__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #9 (permalink)  
Antiguo 10/05/2011, 13:40
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

miscelaneo, si al ingresar correctamente dice ingresado correctamente y al tener una clave duplicada deveria marcar error pero redireccionar a esa misma pagina para volver a ingresarlo.
cosa que no marca ni error y redirecciona mal siendo que es la misma de arriba :/
  #10 (permalink)  
Antiguo 10/05/2011, 14:03
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Clave Duplicada

ahora en la tabla miscelaneos estas completamente seguro que codigo es la llave primaria y es un indice?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #11 (permalink)  
Antiguo 10/05/2011, 14:07
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

pues si, es codigo.
a que te refieres con un indice? la tabla miscelaneos solo consta de
codigo
item
marca

y como el codigo es primario no lo puedo duplicar pero envez de error me da que esta bien :/
el else no esta cumpliendo su funcion. deve ser otra la condicion.
  #12 (permalink)  
Antiguo 10/05/2011, 14:22
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Clave Duplicada

yo que tu primero imprimiria el sql que se forma cuando sabes que se va a repetir un codigo y lo meteria directo en el manejador de base de datos para ver si si muestra error , si lo muestra intentaria este codigo


Código PHP:
$sql="INSERT INTO miscelaneos VALUES ('$codigo', '$item', '$marca')";
mysql_query($sql,$conexion);
$id=mysql_insert_id($conexion);

if (
$id 0) {
    
$n1="Ha sido ingresado correctamente ";
}
else {
    
$n1"Error Critico ".$sql.mysql_error();
}


header("Location: ingresar_miscelaneo.php?n1=$n1"); 
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #13 (permalink)  
Antiguo 10/05/2011, 14:45
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Gracias ya no me redirecciona mal, pero aun que la clave este duplicada me marca que se ingreso y en la bd no se ingresa obiamente.
deve haber alguna forma con POST, donde me indique que si ingreso un codigo en el POST que sea = al codigo de la bd me mande error :/
Muchas gracias por la ayuda que me estas brindando!
  #14 (permalink)  
Antiguo 10/05/2011, 14:53
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Clave Duplicada

Cita:
Iniciado por apolazo Ver Mensaje
Gracias ya no me redirecciona mal, pero aun que la clave este duplicada me marca que se ingreso y en la bd no se ingresa obiamente.
deve haber alguna forma con POST, donde me indique que si ingreso un codigo en el POST que sea = al codigo de la bd me mande error :/
Muchas gracias por la ayuda que me estas brindando!

mm en algun momento en la pagina de ingresar_miscelaneo.php te muestra el mensaje de error?

es decir como sabes cuando un codigo se va a repetir?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #15 (permalink)  
Antiguo 10/05/2011, 14:58
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

deveria decirlo en un cuadro de texto tal y como dice ingresado correctamente $n1
pero envez de decir error critico como marca el else, sige diciendo ingresado correctamente. y cuando reviso la bd no se a ingresado por que ya estava ingresado de antes y tampcoo se modificara ya que no es UPDATE.
aun que saque el $sql.mysql_error() no cambia :/
  #16 (permalink)  
Antiguo 10/05/2011, 16:26
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: Clave Duplicada

prueba con esto amigo:

Código PHP:
<?php
$id
=mysql_query($sql,$conexion);

if (
$id==1) { 
    
$n1="Ha sido ingresado correctamente "

else { 
    
$n1"Error Critico ".$sql.mysql_error(); 

?>

<script>window.location="ingresar_miscelaneo.php?n1=<?php echo $n1;?>";</script>
  #17 (permalink)  
Antiguo 11/05/2011, 07:18
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Gracias, pero aun no marca error, e probado varias formas, revise la bd y la clave primaria es codigo. simplemente no lo ingresa pero no marca error >.<
  #18 (permalink)  
Antiguo 11/05/2011, 07:22
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Cuando no lo ingresa pero dice ingresado correctamente
en la URL dice esto:

http://localhost/liceo/ingresar_miscelaneo.php?n1=Error%20Critico%20INSER T%20INTO%20miscelaneos%20VALUES%20('hola',%20'zasd asda',%20'sdasda')Duplicate%20entry%20'hola'%20for %20key%20'PRIMARY'
  #19 (permalink)  
Antiguo 11/05/2011, 07:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Clave Duplicada

Cita:
Iniciado por apolazo Ver Mensaje
Cuando no lo ingresa pero dice ingresado correctamente
en la URL dice esto:

http://localhost/liceo/ingresar_misc...20'PRIMARY'
Hola apolazo.

¿En la url te pone eso y luego te aparece que ha sido ingresado correctamente?
¿Estás poniendo el código tal cual te lo está poniendo la gente?

Ponlo así:

Código PHP:
$sql="INSERT INTO miscelaneos VALUES ('$codigo', '$item', '$marca')"

$bien mysql_query($sql$conexion); 

if (
$bien) { 
    
$n1="Ha sido ingresado correctamente "

else { 
    
$n1"Error Critico ".$sql.mysql_error(); 


header("Location: ingresar_miscelaneo.php?n1=$n1"); 
Es imposible que te pueda poner que se ingresó correctamente porque la función mysql_query() devuelve false y no entra en el if
  #20 (permalink)  
Antiguo 11/05/2011, 08:18
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Soy novato en esto. y craneandome y con la ayuda de ustedes viendo cada pagina vi que ustedes estavan en lo correcto y yo en un gran error X.x en un script de validacion le dava la orden que si estava todo ingresado me mandara un cuadro de texto diciendo que esta ingresado correctamente sin embargo en la URL me dice lo contrario. lo cual ahora quite el mensaje MIL PERO MIL DISCULPAS A TODOS
ahora me falta en la pagina anterior que me diga el mensaje cuando lo ingresa o cuando marca el error, lo puse asi
Cita:
<input type="hidden" name="$n1" value="<?php echo $n1 ?>
pero imagino que esta malo xD
y no me dice ningun mensaje :/
Gracias.
  #21 (permalink)  
Antiguo 11/05/2011, 08:53
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: Clave Duplicada

Segun tengo entendido es solo hacer una busqueda de algun item que si el codigo ya esta en uso muestre un mensaje asi de simple no?
entonces seria asi solamente

Código PHP:
<?php
$conexion
=mysql_connect("localhost","admin","admin ");
mysql_select_db ("inventario",$conexion);
$codigo=$_POST["codigo"];
$item=$_POST["item"];
$marca=$_POST["marca"];

$q mysql_query("SELECT * FROM miscelaneos WHERE codigo='".$codigo."'");
if(!
mysql_num_rows($q))
{

    
$sql="INSERT INTO miscelaneos VALUES ('$codigo', '$item', '$marca')";

    if (
mysql_query($sql,$conexion))
    {
        
$n1="Ha sido ingresado correctamente ";
    }else{
        
$n1"Error Critico ".$sql.mysql_error();        
    }
        
header ("Location: ingresar_miscelenao.php?n1=$n1");    

}else{
    
    echo 
"Ya hay un Item Utilizando este codigo";
    
}
?>
  #22 (permalink)  
Antiguo 11/05/2011, 09:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Clave Duplicada

No te muestra nada porque el mensaje lo metes en un campo oculto XD
Tienes que poner un campo de texto:

<input type="text" name="$n1" value="<?php echo $n1 ?>

A ver ahora.
  #23 (permalink)  
Antiguo 11/05/2011, 09:17
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Gracias, me marca un error con el localhost :S?
en la URL dice esto:

http://localhost/liceo/ingresar_miscelenao.php?n1=Error%20Critico%20INSER T%20INTO%20miscelaneos%20VALUES%20('453t6',%20'Mou se',%20'Genius')Access%20denied%20for%20user%20'SY STEM'@'localhost'%20(using%20password:%20NO)

y ademas con el header me dice que la pagina no la encuentra :S

Not Found

The requested URL /liceo/ingresar_miscelenao.php was not found on this server.

pero con el script
<script>window.location="ingresar_miscelaneo.php?n 1=<?php echo $n1;?>";</script>

si me redirecciona bien >.<
  #24 (permalink)  
Antiguo 11/05/2011, 09:17
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Probare lo tuyo ahora Nexus gracias
  #25 (permalink)  
Antiguo 11/05/2011, 09:20
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: Clave Duplicada

amigo como capturas la variable $n1 en ingresar_miscelaneo.php??
  #26 (permalink)  
Antiguo 11/05/2011, 09:25
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

No, no lo puede mostrar en un campo de texto ya que el usuario que usara el sistema vera el cuadro y no deve escribirle nada, y tiene una comilla demas el codigo, gracias de todas maneras Nexus
  #27 (permalink)  
Antiguo 11/05/2011, 09:26
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

En eso estoy JMSystem, intentando postrar el mensaje en la pagina ingresar_miscelaneo,
  #28 (permalink)  
Antiguo 11/05/2011, 09:27
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Probe esto y no sirve jeje
<?php echo $n1 ?>
  #29 (permalink)  
Antiguo 11/05/2011, 09:51
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: Clave Duplicada

pero primero capturalo ps

Código PHP:
$n1=$_GET['n1'];
echo 
$n1
  #30 (permalink)  
Antiguo 11/05/2011, 10:09
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Clave Duplicada

Código PHP:
<?php 
$conexion
=mysql_connect("localhost","admin","admin ");
mysql_select_db ("inventario",$conexion); 
$codigo=$_POST["codigo"];
$item=$_POST["item"];
$marca=$_POST["marca"];


$sql="INSERT INTO miscelaneos VALUES ('$codigo', '$item', '$marca')";


if (
mysql_query($sql,$conexion))
{
$n1="Ha sido ingresado correctamente ";
}
else
{
$n1"Error Critico ".$sql.mysql_error();
?>

<script>window.location="ingresar_miscelaneo.php?n1=<?php echo $n1;?>";</script>

Lo deje con ese codigo, es el unico que no me dice que la pagina no existe xD Gracias al script, pero ahora me dice

Error Critico INSERT INTO miscelaneos VALUES ('1', 'qww', 'qwq')Access denied for user 'admin'@'localhost' (using password: YES)

Gracias a todos los que me estan ayudando :)

Etiquetas: clave, duplicada
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 02:09.