Foros del Web » Programando para Internet » PHP »

Problemas con un insert en php y mysql

Estas en el tema de Problemas con un insert en php y mysql en el foro de PHP en Foros del Web. Hola a todos bueno tengo problemas para hacer un insert y no s por que alguien podria ayudarme a encontrar la pana ya que reviso ...
  #1 (permalink)  
Antiguo 20/11/2005, 11:50
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 14 años, 7 meses
Puntos: 0
Problemas con un insert en php y mysql

Hola a todos bueno tengo problemas para hacer un insert y no s por que alguien podria ayudarme a encontrar la pana ya que reviso y reviso el codigo y no veo nada raro por lo menos asi pieenso por eso recuro a ustedes, bueno la tabla que uso es esta
Código:
CREATE TABLE `usuarios` (
`nick` VARCHAR( 25 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL ,
`tipo` INT( 1 ) NOT NULL ,
`nombre` VARCHAR( 32 ) ,
`apellido` VARCHAR( 32 ) ,
`raza` VARCHAR( 20 ) ,
`nacimiento` DATE,
`residencia` VARCHAR( 50 ) ,
`foto` BLOB,
`descripcion` TEXT,
`historia` BLOB,
UNIQUE (
`nick` 
)
) TYPE = MYISAM ;
y el codigo de el php que hace la validacion y la incesrion es esta:

Código PHP:
 <?php
require('configuracion.php');
$nick $_POST["nick"];
$email $_POST["email"];
$pass $_POST["pass"];
$repass $_POST["repass"];
$nombre $_POST["nombre"];
$apellido $_POST["apellido"];
$raza $_POST["raza"];
$residencia $_POST["residencia"];
$dia $_POST["dia"];
$mes $_POST["mes"];
$ano $_POST["ano"];
$foto $_POST["foto"];
$descripcion $_POST["descripcion"];
$historia $_POST["historia"];
$pathfotos"./integrantes/fotos";
$pathhistoria="./integrantes/historias";

echo 
$nick."<br>".$email."<br>".$pass."<br>".$repass."<br>".$nombre."<br>".$apellido."<br>".$raza."<br>".$residencia."<br>".$dia."<br>".$mes."<br>".$ano."<br>".$foto."<br>".$descripcion."<br>".$historia."<br>";

//Hacemos algunas validaciones

if((empty($nick)) || (empty($email)) || (empty($pass)) || (empty($repass))) {
 echo 
"Porfavor ingrese los datos de los campos Titulo, Descripcion y Mensaje.";
 
Header("Location: formulario.php");
}


//existencia de usuarios
if($pass==$repass) {
    
$result mysql_query("select nick FROM usuarios where nick = '$nick'");
    if(
mysql_num_rows($result) == 0) {
        if( empty(
$nombre)) {
            
$nombre="";
        }
        if( empty(
$apellido)) {
            
$apellido="";
        }
        if( empty(
$raza)) {
            
$raza="";
        }
        if( empty(
$residencia)) {
            
$residencia="";
        }
        
$meses=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
        
$i=0;
        for(
$i;$i<12;$i++) {
            if(
$meses[i]==$mes) {
                
$mes=i+1;
            }
        }
        
//$nacimiento=$ano."-".$mes."-".$dia;
        
$nacimiento="";
//Validar la imagen si se ha ingresado sino se pondra una imagen por defecto
        
if(empty($foto)) {
            
$foto='<img src="'.$pathfotos.'/noimage.jpg" width="283" height="204">';
        }else {
            if((
$HTTP_POST_FILES['foto']['type']="image/gif")|| ($HTTP_POST_FILES['foto']['type']="image/pjpeg") ){
                if(
$HTTP_POST_FILES['foto']['type']="image/gif"){
                    
move_uploaded_file($HTTP_POST_FILES['foto']['tmp_name'],$pathfotos."/".$nick.".gif");
                    
$foto='<img src="'.$pathfotos.'/'.$nick.'.gif" width="283" height="204">';
                }
                if(
$HTTP_POST_FILES['foto']['type']="image/pjpeg"){
                    
move_uploaded_file($HTTP_POST_FILES['foto']['tmp_name'],$pathfotos."/".$nick.".jpg");
                    
$foto='<img src="'.$pathfotos.'/'.$nick.'.jpg" width="283" height="204">';        
                }
            }else {
                echo 
"porfavor solo ingrese imagenes de formato JPG o GIF";
            }
        }
        if( empty(
$descripcion)) {
            
$descripcion="";
        }
        if( empty(
$historia)) {
            
$historia=$pathhistoria.'/sinhistoria.txt';
        }else {
            if(
$HTTP_POST_FILES['historia']['type']=="text/plain") {
                
move_uploaded_file($HTTP_POST_FILES['historia']['tmp_name'],$pathhistoria."/".$nick.".txt");
                
$historia=$pathhistoria."/".$nick.".txt";
            }else {
                echo 
"porfavor solo ingrese archivos de formato TXT";
            }
        }
        
//Evitamos que el usuario ingrese HTML
        
$descripcion htmlentities($descripcion);


        
// Grabamos el mensaje en la base.
        
$tipo=0;
        
$rs mysql_query("insert into usuarios (nick, email, pass,tipo, nombre, apellido, raza, nacimiento, residencia, foto, descripcion, historia) values ('$nick','$email','$pass','$tipo','$nombre','$apellido','$raza','&nacimiento','$residencia',$foto,'$descripcion','$historia')",$con) or die("Error al grabar un mensaje: ".mysql_error);
        
Header("Location: index.php");
    }else {
        echo 
"Usuario ya Existe";
    }
}else {
    echo 
"la clave y la confirmacion son distintas";
}
?>
bueno al imprimir error me dice mysql error y nada mas bueno espero que alguiin pueda pillar esta pana ya que por mas que reviso no se que puede ser por la cresta quien me manda a ser tan volado bueno agradesco de antemano la ayuda y la colabotracion atte.
Goomba

Última edición por jam1138; 20/11/2005 a las 16:51
  #2 (permalink)  
Antiguo 20/11/2005, 12:06
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
Paso rápidito por el foro pero si quieres conocer el error cambia lo que tienes
Cita:
("Error al grabar un mensaje: ".mysql_error);
por
Código PHP:
or die("Error al grabar un mensaje:".mysql_error()); 
sino me equivoco faltan los () si llega a molestar el mensaje simplemente colocas

Código PHP:
or die(mysql_error()); 
Suerte Compa
  #3 (permalink)  
Antiguo 20/11/2005, 16:44
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Ten cuidado a la hora de postear... Parte de código que pertenece a la BD esta "volando":
Cita:
agradesco de antemano la ayuda y la colabotracion atte.
Goomba
) TYPE = MYISAM ;
... Encierra tu código, verdaderamente se lee mejor y ayudas a que se te ayude (además en caso de exederse, no rompe con el sitio) : http://www.forosdelweb.com/misc.php?do=bbcode#code

He editado tu mensaje para "arreglar" esos detalles.

Edito:
Haz lo que te comenta under_ground, con eso obtendrás una descripción más detallada del problema (no la solución). Si sigues teniendo dudas coloca el error exáacto que te arrojó y procura ser más descriptivo.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 20/11/2005 a las 16:54
  #4 (permalink)  
Antiguo 20/11/2005, 20:26
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 14 años, 7 meses
Puntos: 0
Error al grabar un mensaje: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<img src="./nuestrosmial/integrantes/fotos/noimage.jpg" width="283" height="204"' at line 1

Ese es el porblema es cuando guardo la rutra de la imagen
  #5 (permalink)  
Antiguo 20/11/2005, 20:49
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
claro!... estás intentando meter comillas en la query. ... ¿en realidad quieres guardar todo el HTML?. Usualmente solo se guarda la ruta del archivo (carpeta/carpeta/archivo.etx), es recomendable lo hagas así pues el dato queda disponible para otros efectos (borrar el archivo, por ejemplo) y te evitas de este tipo de problemas.

Lo que estás haciendo tú es guardar todo el HTML que mostraría ese archivo (<img src="carpeta/carpeta/archivo.etx" width="xxx" ...>). ¿realmente quieres hacer eso?; pásale la función addslashes() antes de guardarlo, con ello escaparás las comillas, pero de verdad te recomiendo solo guardes la ruta.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 21/11/2005, 11:29
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 14 años, 7 meses
Puntos: 0
gracias amigo por la ayuda se agradese enormemente tu ayuda bueno guardare el path solamente donde esta la imagen ya que la idea era guardar toda la linea de codigo htm para no preucuparme al cargar la imagen pero pensandolo bien es lo mismo que pasar la direccion a l templat al cargarlo jejeje garcias por todo atte.
Goomba
  #7 (permalink)  
Antiguo 21/11/2005, 18:37
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 14 años, 7 meses
Puntos: 0
hola bueno he tratado de guardar las variables pero harora tengo este problema ejemplo al llenar el formulario:

Código PHP:
$foto =$pathfotos."/noimage.jpg"
bueno he remplazado las comillas por comilla sipel y viseversa pero aun me da problemas al almacenar la variable me manda este error:

Error al grabar un mensaje: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/nuestrosmial/integrantes/fotos/noimage.jpg,'','./nuestrosmial/integrantes/histo' at line 1

asi que no se que hacer ya que he cambiado los " opor ' y porbe sin suerte y viseversa alguien que me ayude por favor no puedo salir de esta pana bueno agradesco nuevamente a todos por la ayuda.

acontinuacion pogo el codigo completo por si alguien entiende mejor

Código PHP:
<?php
require('configuracion.php');
$nick $_POST["nick"];
$email $_POST["email"];
$pass $_POST["pass"];
$repass $_POST["repass"];
$nombre $_POST["nombre"];
$apellido $_POST["apellido"];
$raza $_POST["raza"];
$residencia $_POST["residencia"];
$dia $_POST["dia"];
$mes $_POST["mes"];
$ano $_POST["ano"];
$foto $_POST["foto"];
$descripcion $_POST["descripcion"];
$historia $_POST["historia"];
$pathfotos"./nuestrosmial/integrantes/fotos";
$pathhistoria="./nuestrosmial/integrantes/historias";

echo 
$nick."<br>".$email."<br>".$pass."<br>".$repass."<br>".$nombre."<br>".$apellido."<br>".$raza."<br>".$residencia."<br>".$dia."<br>".$mes."<br>".$ano."<br>".$foto."<br>".$descripcion."<br>".$historia."<br>";

//Hacemos algunas validaciones

if((empty($nick)) || (empty($email)) || (empty($pass)) || (empty($repass))) {
 echo 
"Porfavor ingrese los datos de los campos Titulo, Descripcion y Mensaje.";
 
Header("Location: formulario.php");
}


//existencia de usuarios
if($pass==$repass) {
    
$result mysql_query("select nick FROM usuarios where nick = '$nick'");
    if(
mysql_num_rows($result) == 0) {
        if( empty(
$nombre)) {
            
$nombre="";
        }
        if( empty(
$apellido)) {
            
$apellido="";
        }
        if( empty(
$raza)) {
            
$raza="";
        }
        if( empty(
$residencia)) {
            
$residencia="";
        }
        
$meses=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
        
$i=0;
        for(
$i;$i<12;$i++) {
            if(
$meses[i]==$mes) {
                
$mes=i+1;
            }
        }
        
//$nacimiento=$ano."-".$mes."-".$dia;
        
$nacimiento="";
//Validar la imagen si se ha ingresado sino se pondra una imagen por defecto
        
if(empty($foto)) {
            
$foto =$pathfotos."/noimage.jpg";
        }else {
            if((
$HTTP_POST_FILES['foto']['type']=="image/gif")|| ($HTTP_POST_FILES['foto']['type']=="image/pjpeg") ){
                if(
$HTTP_POST_FILES['foto']['type']=="image/gif"){
                    
move_uploaded_file($HTTP_POST_FILES['foto']['tmp_name'],$pathfotos."/".$nick.".gif");
                    
$foto $pathfotos."/".$nick.".gif";
                }
                if(
$HTTP_POST_FILES['foto']['type']=="image/pjpeg"){
                    
move_uploaded_file($HTTP_POST_FILES['foto']['tmp_name'],$pathfotos."/".$nick.".jpg");
                    
$foto $pathfotos."/".$nick.".jpg";        
                }
            }else {
                echo 
"porfavor solo ingrese imagenes de formato JPG o GIF";
            }
        }
        if( empty(
$descripcion)) {
            
$descripcion="";
        }
        if( empty(
$historia)) {
            
$historia=$pathhistoria."/sinhistoria.txt";
        }else {
            if(
$HTTP_POST_FILES['historia']['type']=="text/plain") {
                
move_uploaded_file($HTTP_POST_FILES['historia']['tmp_name'],$pathhistoria."/".$nick.".txt");
                
$historia $pathhistoria."/".$nick.".txt";
            }else {
                echo 
"porfavor solo ingrese archivos de formato TXT";
            }
        }
        
//Evitamos que el usuario ingrese HTML
        
$descripcion htmlentities($descripcion);


        
// Grabamos el mensaje en la base.
        
$tipo=0;
        
$rs mysql_query("insert into usuarios (nick, email, pass,tipo, nombre, apellido, raza, nacimiento, residencia, foto, descripcion, historia) values ('$nick','$email','$pass','$tipo','$nombre','$apellido','$raza','&nacimiento','$residencia',$foto,'$descripcion','$historia')",$con) or die("Error al grabar un mensaje: ".mysql_error());
        
Header("Location: index.php");
    }else {
        echo 
"Usuario ya Existe";
    }
}else {
    echo 
"la clave y la confirmacion son distintas";
}
?>
  #8 (permalink)  
Antiguo 22/11/2005, 05:12
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Código PHP:
        $rs mysql_query("insert into usuarios (nick, email, pass,tipo, nombre, apellido, raza, nacimiento, residencia, foto, descripcion, historia) values ('$nick','$email','$pass','$tipo','$nombre','$apellido','$raza','&nacimiento','$residencia',$foto,'$descripcion','$historia')",$con
¿no es (ó debería de ser) $nacimiento??. Espero sea eso... no analizé tu código.

Código PHP:
            $foto =$pathfotos."/noimage.jpg"
Con eso estás indicando que el archivo esta en la raíz de tu disco... Si esta en la misma carpeta quítale la barra "/" del inicio.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 22/11/2005, 17:56
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 14 años, 7 meses
Puntos: 0
hola nuevamente gracias por encontra ese otro error pero aun no funciona bueno les explico dentro de la tabla existe un campo foto y otro llamado historia los cambie a tipo varchar ya que en ellos solo quiero guardar la direccion o mejor el nombre del usurio mas la extencion que este tenga pal caso de la foto un nick.jpg o .gir y pal historia nick.txt, bueno estos dos capos en la tabla son varchar de 255 caracteres alguien me podria decir como guardarlos ya que ahiora me manda este siguiente error

Error al grabar un mensaje: Unknown table 'noimage' in field list

realmente no se que puede ser ya me tiene chato y creo que yo ya los tengo cfhato a ustedes de tanto pedirles ayuda asi que tb deseo pedir mis disculpas, bueno la tabbla es para un formulario de registro y no se que hacer ya que trate de guardar solo el nombre del archivo, la dire y todo y nada me ha funcionado, bueno eso es todo agradesco la ayuda.
atte
Goomba
  #10 (permalink)  
Antiguo 22/11/2005, 18:13
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 14 años, 7 meses
Puntos: 0
se me habia olvidado mensionar las variables $pathalgo guardan la direccion en donde se guardaran los archivos dentro del rservidor y que es lo que hago al subir el archivo, como ejemplo quiero subir un archivo del usuario yo y la imagen se llama tu que es lo que hago es subir el archivo con el nombre de usuario en este cas yo, todo eso funciona pero cuandolquiero guardar la direccion en donde se encuentra este archivo (foto o TXT) me manda el error que puse mas arriba este es otro pero no entendi fui a ver en la tabla oir si existia alguna incompatibilidad de tipo este es el error que me trajo recien al volver a ejecutarlonuevamente y hacer algunos cambio de quitar el path y agregarlo.

Error al grabar un mensaje: Unknown column 'nuestrosmial' in 'field list'
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:31.