Foros del Web » Programando para Internet » PHP »

insert con php

Estas en el tema de insert con php en el foro de PHP en Foros del Web. Hola tengo el siguiente codigo en php: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original function registrar_usuario ( $usuario , $pass , $nombre , $apellido , $correo ...
  #1 (permalink)  
Antiguo 29/06/2011, 08:03
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
insert con php

Hola tengo el siguiente codigo en php:

Código PHP:
Ver original
  1. function registrar_usuario($usuario,$pass,$nombre,$apellido,$correo,$direccion,$cp,$pais,$telefono,$ciudad){
  2.         $conn = do_conexion();
  3.         $consulta = "insert into clientes (usuario,nombre,apellido,direccion,correo,telefono,contrasena,ciudad,pais,cp)
  4.         values  ('".$usuario."','".$nombre."','".$apellido."','".$direccion."','".$correo."',".$telefono.",'".$pass."','".$ciudad."','".$pais."',".$telefono.");";
  5.         mysql_query ($consulta, $conn);
  6.        
  7.         mysql_close();
  8.     }

y me lo ejecuta sin problemas: pero si pongo algun dato mal es lo que quiero validar, tengo aparte esto:

Código PHP:
Ver original
  1. if (registrar_usuario($usuario,$pass,$nombre,$apellido,$correo,$direccion,$cp,$pais,$telefono,$ciudad)){
  2.         echo "alta";
  3.     }else{
  4.         echo "no alta";
  5.     }

Entonces si ocurre un error:
1º NO da de alta me sale echo "no alta";
2º SI hace el insert bien pero sigue saliendo echo "no alta";

Alguien me puede explicar?

gracias
  #2 (permalink)  
Antiguo 29/06/2011, 08:12
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: insert con php

Tu función no devuelve nada, y para que la puedas usar en una condición, debería retornar TRUE en caso de que se ejecute tu consulta, y FALSE caso contrario.

Podrías hacer algo así:

Código PHP:
Ver original
  1. function registrar_usuario($usuario,$pass,$nombre,$apellido,$correo,$direccion,$cp,$pais,$telefono,$ciudad){
  2.         $conn = do_conexion();
  3.         $consulta = "insert into clientes (usuario,nombre,apellido,direccion,correo,telefono,contrasena,ciudad,pais,cp)
  4.        values  ('".$usuario."','".$nombre."','".$apellido."','".$direccion."','".$correo."',".$telefono.",'".$pass."','".$ciudad."','".$pais."',".$telefono.");";
  5.         if (mysql_query ($consulta, $conn)) {
  6.             return TRUE;
  7.        } else {
  8.             return FALSE;
  9.        }        
  10.     }

Saludos
  #3 (permalink)  
Antiguo 29/06/2011, 08:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
Respuesta: insert con php

Ammm ,ok ya funciona perfecto, pero una pregunta y eso de die? para que sirve?
Puedo aplicarlo en este caso?

Saludos
  #4 (permalink)  
Antiguo 29/06/2011, 08:25
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: insert con php

Puedes leer la info que tiene el manual die(). y podrías aplicarlo así:

Código PHP:
Ver original
  1. function registrar_usuario($usuario,$pass,$nombre,$apellido,$correo,$direccion,$cp,$pais,$telefono,$ciudad){
  2.         $conn = do_conexion();
  3.         $consulta = "insert into clientes (usuario,nombre,apellido,direccion,correo,telefono,contrasena,ciudad,pais,cp)
  4.        values  ('".$usuario."','".$nombre."','".$apellido."','".$direccion."','".$correo."',".$telefono.",'".$pass."','".$ciudad."','".$pais."',".$telefono.");";
  5.         if (mysql_query ($consulta, $conn)) {
  6.             return TRUE;
  7.        } else {
  8.             die('error en la consulta: '.mysql_error($conn));
  9.        }        
  10.     }

Saludos.
  #5 (permalink)  
Antiguo 29/06/2011, 08:34
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
Respuesta: insert con php

Ok, gracias kike, ahi te dejo un karma por tu ayuda

Saludos

Etiquetas: insert
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 09:52.