Foros del Web » Programando para Internet » PHP »

Insertar Auto Increment en sentencia.

Estas en el tema de Insertar Auto Increment en sentencia. en el foro de PHP en Foros del Web. Hola gente de ForosdelWeb, tengo una duda. Supongamos que creo una sentencia en PHP para insertar datos a una base de datos. Tengo el ID, ...
  #1 (permalink)  
Antiguo 17/08/2011, 17:29
Avatar de Jaava  
Fecha de Ingreso: febrero-2011
Ubicación: Venado Tuerto, Argentina
Mensajes: 11
Antigüedad: 13 años, 2 meses
Puntos: 0
Insertar Auto Increment en sentencia.

Hola gente de ForosdelWeb, tengo una duda. Supongamos que creo una sentencia en PHP para insertar datos a una base de datos. Tengo el ID, como hago para que se Auto-Incremente en cada registro de usuarios que se hacen?

Código PHP:
Ver original
  1. mysql_query("insert into usuarios (id, username, email, password) values ('$_POST[nick]','$_POST[email]','$_POST[password]')");

Que deberia ir en el 'id'?

Gracias desde ya, saludos.
  #2 (permalink)  
Antiguo 17/08/2011, 17:33
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Insertar Auto Increment en sentencia.

El auto_increment se define al crear la tabla SQL en las opciones de los campos. Después no tienes que añadir ningún valor en id, puesto que se asignará solo.

Saludos.
  #3 (permalink)  
Antiguo 17/08/2011, 17:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Insertar Auto Increment en sentencia.

Si tu campo es autoincrementable en la Base de Datos no necesitas enviarlo en la sentencia INSERT.

Saludos.
  #4 (permalink)  
Antiguo 17/08/2011, 17:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Insertar Auto Increment en sentencia.

Puedes agregarlo como NULL

Código PHP:
Ver original
  1. mysql_query("insert into usuarios (id, username, email, password) values (NULL, '$_POST[nick]','$_POST[email]','$_POST[password]')");
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 17/08/2011, 17:41
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Insertar Auto Increment en sentencia.

Lo normal es que al ser autoincrement no se ponga en la consulta, y si la el campo de la tabla no es autoincrement pero lo quiere es sumar uno al siguiente usar:

Código PHP:
$idmysql_insert_id()+1
http://php.net/manual/es/function.mysql-insert-id.php
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #6 (permalink)  
Antiguo 17/08/2011, 17:47
Avatar de Jaava  
Fecha de Ingreso: febrero-2011
Ubicación: Venado Tuerto, Argentina
Mensajes: 11
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Insertar Auto Increment en sentencia.

Si si, en la base de datos esta puesto el Auto-Increment, pero me sale un error al recargar la página:
Código HTML:
Ver original
  1. Notice: Undefined index: nick in C:\wamp\www\prueba\register.php
  2. Notice: Undefined index: email in C:\wamp\www\prueba\register.php
  3. Notice: Undefined index: password in C:\wamp\www\prueba\register.php
  #7 (permalink)  
Antiguo 17/08/2011, 17:54
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Insertar Auto Increment en sentencia.

Es recomendable que leas este tema de como usar las comillas correctamente.
Al cual por cierto yo le pondría una chincheta, ya que muchas personas tienen problemas concatenando.
http://www.forosdelweb.com/f18/como-...1/#post2414268

Código PHP:
mysql_query("insert into usuarios (id, username, email, password) values ('".$_POST['nick']."','".$_POST['email']."','".$_POST['password']."')"); 
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #8 (permalink)  
Antiguo 17/08/2011, 18:08
Avatar de Jaava  
Fecha de Ingreso: febrero-2011
Ubicación: Venado Tuerto, Argentina
Mensajes: 11
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Insertar Auto Increment en sentencia.

Me sigue tirando esos errores, no creo que sea el problema por concatenar.
  #9 (permalink)  
Antiguo 17/08/2011, 18:30
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Respuesta: Insertar Auto Increment en sentencia.

Te recomiendo que en donde ejecutes tu query lo reemplezes por lo siguiente:

Código PHP:
mysql_query($sQuery) or die(mysql_error()); 
Esto te indicara con mas detalle el problema que tienes con tu query.

Slds!
  #10 (permalink)  
Antiguo 17/08/2011, 18:39
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Insertar Auto Increment en sentencia.

Imprime los datos $_POST['nick'] a ver si se están pasando correctamente desde el formulario. Te recomiendo que usas la función empty() o isset() para validar esto antes de insertar en la base de datos.

Código PHP:
Ver original
  1. if (empty($_POST['nick']) || empty($_POST['email']) || empty($_POST['password'])) {
  2.     echo 'No inserto nada en el formulario';
  3. } else {
  4.     echo 'Inserto en el formulario';
  5. }

y toma en cuenta esto:

Código PHP:
Ver original
  1. mysql_query("insert into usuarios (id, username, email, password) values ('".$_POST['nick']."','".$_POST['email']."','".$_POST['password']."')");
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #11 (permalink)  
Antiguo 17/08/2011, 19:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Insertar Auto Increment en sentencia.

Cita:
Iniciado por IEKK Ver Mensaje
Es recomendable que leas este tema de como usar las comillas correctamente.
Al cual por cierto yo le pondría una chincheta, ya que muchas personas tienen problemas concatenando.
http://www.forosdelweb.com/f18/como-...1/#post2414268

Código PHP:
mysql_query("insert into usuarios (id, username, email, password) values ('".$_POST['nick']."','".$_POST['email']."','".$_POST['password']."')"); 
Ese tema ya esta en los Aportes de FDW.

Saludos.
  #12 (permalink)  
Antiguo 18/08/2011, 02:39
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Insertar Auto Increment en sentencia.

Cita:
Iniciado por Jaava Ver Mensaje
Si si, en la base de datos esta puesto el Auto-Increment, pero me sale un error al recargar la página:
Código HTML:
Ver original
  1. Notice: Undefined index: nick in C:\wamp\www\prueba\register.php
  2. Notice: Undefined index: email in C:\wamp\www\prueba\register.php
  3. Notice: Undefined index: password in C:\wamp\www\prueba\register.php
Es que estás utilizando los datos del post sin comprobar si vienen o no en dicho post. La primera vez que entres en la página, no estarán rellenos y te dará ese error. Tienes que comprobar con isset, como ya te ha dicho @andresdzphp.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: auto, increment, mysql, registro, usuarios
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 07:56.