Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Respetar

Estas en el tema de Respetar en el foro de PHP en Foros del Web. Hola a todos tengo el siguiente código el cual antes de hacer un insert compara que mi clave no exista si ya esta, omite el ...
  #1 (permalink)  
Antiguo 14/09/2015, 17:18
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respetar

Hola a todos tengo el siguiente código el cual antes de hacer un insert compara que mi clave no exista
si ya esta, omite el insert.

Código PHP:
 foreach($_POST["clave"] as $key => $value){
       
mysql_select_db($database_connection$connection); 
            
$sql "select * from registro where idcliente = ($value) and area='$area'";  
  
$res mysql_query($sql$connection) or die('Error en consulta: ' ." "mysql_error()); 
  
  
    if(
mysql_num_rows($res) == 0) { 
    
mysql_select_db($database_connection$connection); 
    
$insert=sprintf("INSERT INTO registro(area,idcliente) VALUES ($area, $value)");
$resultadomysql_query($insert$connection) or die(mysql_error());
      
       } else { 
     
       } 

El problema surge porque tengo clientes que tienen un cero en primer lugar en su clave
ejemplo: 0123, 0456,0789

Revise y se insertar como 123,456,789 como puedo insertar el 0 previo

el tipo de dato del campo idcliente es varchar
nota: no todas las claves llevan 0 al inicio

desde ya gracias
  #2 (permalink)  
Antiguo 14/09/2015, 17:20
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Respetar

prueba con esto, claro va a depender de si la logitud de la clave es fija:

Código PHP:
Ver original
  1. sprintf("%06d",$tuvariable)//aqui le sumamos los ceros a un codigo de por ejemplo 123 seria 000123
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 14/09/2015, 17:22
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Respetar

Cita:
Iniciado por xfxstudios Ver Mensaje
prueba con esto, claro va a depender de si la logitud de la clave es fija:

Código PHP:
Ver original
  1. sprintf("%06d",$tuvariable)//aqui le sumamos los ceros a un codigo de por ejemplo 123 seria 000123
Gracias amigo, pero no todas las claves llevan 0, además tengo una duda porque en el select lo toma como si existiera y por ende omite el insert... se supone que 0123 no es igual a 123
  #4 (permalink)  
Antiguo 14/09/2015, 17:24
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Respetar

el cero es nulo en php asi que si lo escribes o no el sistema va a tomar los valores que le siguen hasta donde se, podrias crear un prefijo que complete la clave, por ejemplo AB000123
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 14/09/2015, 17:26
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Respetar

Cita:
Iniciado por xfxstudios Ver Mensaje
el cero es nulo en php asi que si lo escribes o no el sistema va a tomar los valores que le siguen hasta donde se, podrias crear un prefijo que complete la clave, por ejemplo AB000123
suena bien lo del prefijo pero son claves primarias así se necesitan... puedo cambiar nada
gracias amig@
  #6 (permalink)  
Antiguo 14/09/2015, 17:29
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Respetar

estas usando el campo de id como clave de acceso o algo parecido????
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 14/09/2015, 17:40
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Respetar

Cita:
Iniciado por xfxstudios Ver Mensaje
estas usando el campo de id como clave de acceso o algo parecido????
Asi es amigo
  #8 (permalink)  
Antiguo 14/09/2015, 18:58
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Respetar

Dices que el campo es varchar, pero no encierras el valor entre comillas al hacer la consulta, entonces MySQL lo toma como entero y 0123 se convierte en 123:

Código PHP:
Ver original
  1. // Mal:
  2.  $sql = "select * from registro where idcliente = ($value) and area='$area'";
  3.  
  4. // Bien:
  5.  $sql = "select * from registro where idcliente = '$value' and area='$area'";
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 15/09/2015, 09:59
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Respetar

Cita:
Iniciado por Triby Ver Mensaje
Dices que el campo es varchar, pero no encierras el valor entre comillas al hacer la consulta, entonces MySQL lo toma como entero y 0123 se convierte en 123:

Código PHP:
Ver original
  1. // Mal:
  2.  $sql = "select * from registro where idcliente = ($value) and area='$area'";
  3.  
  4. // Bien:
  5.  $sql = "select * from registro where idcliente = '$value' and area='$area'";
Triby como siempre salvándome la vida mil gracias
Pd. si un día voy a Guanajuato te llevaré unos dulces típicos de mi estado

Última edición por Briss; 15/09/2015 a las 10:29
  #10 (permalink)  
Antiguo 15/09/2015, 12:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Respetar

Briss, no sé de que estado eres, pero me gusta todo tipo de dulces y más si son típicos mexicanos... ya se me hizo agua la boca, los estare esperando!
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 15/09/2015, 13:55
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Respetar

:) cuando valla a León (espero pronto) te llevaré varios
gracias otra vez

Última edición por Briss; 15/09/2015 a las 15:19

Etiquetas: mysql, registro, select, sql
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 10:48.