Foros del Web » Programando para Internet » PHP »

no encuentro el fallo en este script

Estas en el tema de no encuentro el fallo en este script en el foro de PHP en Foros del Web. tengo un sencillo formulario que con php lo inserto en mysql pero no me inserta nada y yo lo veo todo correcto....asi ke no se ...
  #1 (permalink)  
Antiguo 11/08/2010, 14:09
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
no encuentro el fallo en este script

tengo un sencillo formulario que con php lo inserto en mysql pero no me inserta nada y yo lo veo todo correcto....asi ke no se que pasa haber si me podeis ayudar

Código:
<form  method="POST">
<ul>
<li>	Titulo: <input type="text" name="titulo" id="titulo" size="30" value="<?php if (isset($_SESSION['titulo'])) echo htmlentities($_SESSION['titulo']); ?>"/></li>

<li>	año: <input type="text" name="ano" id="ano" size="10" value="<?php if (isset($_SESSION['ano'])) echo htmlentities($_SESSION['ano']); ?>"/></li>
<li>	Director: <input type="text" name="director" id="director" size="26" value="<?php if (isset($_SESSION['director'])) echo htmlentities($_SESSION['director']); ?>"/></li>
<li>Genero:<select size="1" name="genero" id="genero"  value="<?php if (isset($_SESSION['genero'])) echo htmlentities($_SESSION['genero']); ?>">
<option value="">Elegir genero</option>
  <option value="accion">accion</option>
  <option value="adolescente">adolescente</option>
  <option value="animacion">animacion</option>
  <option value="infantil">infantil</option>
  <option value="artesmarciales">artes marciales</option>
  <option value="aventura">aventura</option>
    <option value="belico">belico</option>
  <option value="biografia">biografia</option>
    <option value="cienciaficcion">ciencia ficcion</option>
  <option value="cinenegro">cine negro</option>
    <option value="comedia">comedia</option>
  <option value="cortometrajes">cortometrajes</option>
    <option value="deporte">deporte</option>
  <option value="drama">drama</option>
    <option value="fantastico">fantastico</option>
  <option value="historico">historico</option>
    <option value="intriga">intriga</option>
  <option value="musical">musical</option>
    <option value="policiaca">policiaca</option>
  <option value="romance">romance</option>
    <option value="suspense">suspense</option>
  <option value="terror">terror</option>
    <option value="thriller">thriller</option>
  <option value="western">western</option>
 
 </select>
 </li>
 <li>Calidad:<select size="1" name="calidad" id="calidad" value="<?php if (isset($_SESSION['calidad'])) echo htmlentities($_SESSION['calidad']); ?>">
<option value="">Elegir calidad</option>
  <option value="dvd">dvd</option>
  <option value="dvdrip">dvdrip</option>
  <option value="dvdscreener">dvdscreener</option>
  <option value="tsscreener">tsscreener</option>

 </select>
 </li>
 
 <li>Idioma:<select size="1" name="idioma" id="idioma" value="<?php if (isset($_SESSION['idioma'])) echo htmlentities($_SESSION['idioma']); ?>">
<option value="">Elegir idioma</option>
  <option value="español">español</option>
  <option value="ingles">ingles</option>
  <option value="latino">latino</option>
 </select>
 </li>
 <li>Comentarios:

<textarea cols="30" rows="7" name="comentario" id="comentarios"  value="<?php if (isset($_SESSION['comentario'])) echo htmlentities($_SESSION['comentario']); ?>"> </textarea>	
</li>
<li><input type="submit" name="enviar" value="Enviar" id="boton"></li>

</ul>
</form>
Código PHP:
<?php if (isset($_POST["enviar"])) {
    
//Aqui iria el codigo del archivo externo
    
$titulo=$_POST['titulo'];
    
$ano=$_POST['ano'];
    
$director=$_POST['director'];
    
$genero$_POST['genero'];
    
$calidad=$_POST['calidad'];
    
$idioma=$_POST['idioma'];
    
$comentario=$_POST['comentario'];
    
    
    
$ssql="insert into peliculas(titulo,ano,director,genero,calidad,idioma,comentario) values (('$titulo'),
            ('$ano'),('$director'),('$genero'),('$calidad'),('$idioma'),('$comentario'))"
;
    
    
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("carajaula"$conexion);
    
        if (
mysql_query($ssql$conexion)){
        echo 
"sentencia ingresada!";
    }else{
        echo 
"no inserte nada!" ;
    }   
    
    
}
    
?>
  #2 (permalink)  
Antiguo 11/08/2010, 14:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: no encuentro el fallo en este script

depura la consulta a ver que te dice ej:
Código PHP:
Ver original
  1. mysql_query("insert into..") or die (mysql_error());
y ve que te dice el mensaje suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 11/08/2010, 14:19
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: no encuentro el fallo en este script

Código PHP:
Ver original
  1. $ssql="INSERT INTO peliculas (titulo,ano,director,genero,calidad,idioma,comentario) VALUES ('$titulo','$ano','$director','$genero','$calidad','$idioma','$comentario')";
  #4 (permalink)  
Antiguo 11/08/2010, 14:37
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: no encuentro el fallo en este script

ey gracias e metido el or die.... y e puesto en mayusculas las palabras clave de la sentencia mysql pero sigue sin insertar nada y no me sale ninguno mensaje diciendome nada al insertar

mysql_query("insert into..") or die (mysql_error());
  #5 (permalink)  
Antiguo 11/08/2010, 14:38
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: no encuentro el fallo en este script

asi tengo ahora el codigo:

Código PHP:
<?php if (isset($_POST["enviar"])) {
    
//Aqui iria el codigo del archivo externo
    
$titulo=$_POST['titulo'];
    
$ano=$_POST['ano'];
    
$director=$_POST['director'];
    
$genero$_POST['genero'];
    
$calidad=$_POST['calidad'];
    
$idioma=$_POST['idioma'];
    
$comentario=$_POST['comentario'];
    
    
    
$ssql="INSERT INTO peliculas(titulo,ano,director,genero,calidad,idioma,comentario) VALUES (('$titulo'),
            ('$ano'),('$director'),('$genero'),('$calidad'),('$idioma'),('$comentario'))" 
or die (mysql_error());
    
    
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("carajaula"$conexion);
    
        if (
mysql_query($ssql$conexion)){
        echo 
"sentencia ingresada!";
    }else{
        echo 
"no inserte nada!" ;
    }   
    
    
}
    
?>
  #6 (permalink)  
Antiguo 11/08/2010, 14:40
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: no encuentro el fallo en este script

Buenas,

Si te fijas a lo que dice rpv...

El problema puede estar aqui:

VALUES ('$titulo','$ano','$director','$genero','$calidad' ,'$idioma','$comentario')";

Saludos,
  #7 (permalink)  
Antiguo 11/08/2010, 14:46
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: no encuentro el fallo en este script

deffer pero ke falla en esa linea de codigo ya la he repasado varias veces...cambie la variable año por ano por si mysql no reconocia la "ñ" pero que eso que me extraña mucho que no me inserte nada
  #8 (permalink)  
Antiguo 11/08/2010, 14:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: no encuentro el fallo en este script

Cita:
$ssql="INSERT INTO peliculas(titulo,ano,director,genero,calidad,idiom a,comentario) VALUES (('$titulo'),
('$ano'),('$director'),('$genero'),('$calidad'),(' $idioma'),('$comentario'))" or die (mysql_error());
el or die no va ahi para depurar debe de ser luego del sql ej:
Código PHP:
Ver original
  1. mysql_query("consulta") or die (mysql_error());
bueno como dicen los compañeros el () puede q sea el problema yo no los uso pero no estoy seguro si eso da problemas suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 11/08/2010, 14:51
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: no encuentro el fallo en este script

Perdonen mi incumbencia pero en el form no deberia de haber un action que indique que pagina va a realizar la rutina de inserción?

<form method="POST" action="algo.php">
  #10 (permalink)  
Antiguo 11/08/2010, 14:52
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: no encuentro el fallo en este script

Aparte de (), no puedes primeor hacer la consulta y luego llamar a la base de datos. LO estas haciendo al reves.

Intenta probar así:


Código PHP:
Ver original
  1. $conexion= mysql_connect("localhost", "root", "");
  2. mysql_select_db("carajaula", $conexion);
  3.  
  4. $ssql="insert into peliculas(titulo,ano,director,genero,calidad,idioma,comentario) values ('$titulo','$ano','$director','$genero','$calidad','$idioma','$comentario')";
  5. $result=mysql_query($ssql,$conexion) or die (mysql_error());

Veras como te ha de funcionar.
Cita:
Perdonen mi incumbencia pero en el form no deberia de haber un action que indique que pagina va a realizar la rutina de inserción?

<form method="POST" action="algo.php">
A que va a ser eso! jeje
  #11 (permalink)  
Antiguo 11/08/2010, 14:54
Avatar de ylellan  
Fecha de Ingreso: mayo-2010
Ubicación: en un lugar de Veracruz
Mensajes: 432
Antigüedad: 14 años
Puntos: 36
Respuesta: no encuentro el fallo en este script

amor prueba con esto:

Código PHP:
<?php if (isset($_POST["enviar"])) { 
    
//Aqui iria el codigo del archivo externo 
    
$titulo=$_POST['titulo']; 
    
$ano=$_POST['ano']; 
    
$director=$_POST['director']; 
    
$genero$_POST['genero']; 
    
$calidad=$_POST['calidad']; 
    
$idioma=$_POST['idioma']; 
    
$comentario=$_POST['comentario']; 
     
     
    
$ssql="INSERT INTO peliculas(titulo,ano,director,genero,calidad,idioma,comentario) VALUE ('$titulo','$ano','$director','$genero','$calidad','$idioma','$comentario')";
     
     
    
$conexionmysql_connect("localhost""root"""); 
     
    
mysql_select_db("carajaula"$conexion); 
     
        if (
mysql_query($ssql$conexion) or die (mysql_error()) ){ 
        echo 
"sentencia ingresada!"
    }else{ 
        echo 
"no inserte nada!" 
    }    
     } 
    
?>
  #12 (permalink)  
Antiguo 11/08/2010, 14:55
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: no encuentro el fallo en este script

bueno como lo pones esta mejor pero el no habia echo la consulta habia guardado la sintaxis de la consulta en una variable pero la ejecuta con el msyql_query eso no creo q halla dado problemas pero de la manera que lo pones claro que se ve mejor y bueno
Cita:
<form method="POST" action="algo.php">
tiene mucha razon jaja
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 11/08/2010, 14:56
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: no encuentro el fallo en este script

A ver... la sintaxis del insert es:

Código SQL:
Ver original
  1. INSERT INTO tabla (campo1,campo2,...,campoN) VALUES ('valor1,','valor2',...,'valorN')

también se puede:

Código SQL:
Ver original
  1. INSERT INTO tabla (campo1,campo2,...,campoN) VALUES
  2.       ('valor1,','valor2',...,'valorN'),-- insertando fila 1
  3.       ('valor1,','valor2',...,'valorN'),-- insertando fila2
  4.       ('valor1,','valor2',...,'valorN')-- insertando fila3

<< pero eso es solo cuando vas a insertar más de un registro (fila) en la query.

Adicionalmente, lo que comenta zapt142, el formulario está a puntando así mismo, yo supuse que tu código PHP estaba en el mismo archivo del formulario, pero de estar en otro archivo debes especificarlo en en el action=""
  #14 (permalink)  
Antiguo 11/08/2010, 14:58
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: no encuentro el fallo en este script

ey ya e metido bien la linea de codigo or die mysql(error) me dice esto:

Unknown column 'ano' in 'field list'.

que significa esto? columna desconocida en ano field list??? el campo año (ano) es de tipo year es por esto por lo que no me inserta el registro?
  #15 (permalink)  
Antiguo 11/08/2010, 14:58
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: no encuentro el fallo en este script

Aunque este en el mismo archivo, debe de especificar un action.

Saludos,

PD: Dice que esa columna no existe. Comprueba que en tu base de datos existe. Antes dijiste que sustituiste año por ano asi que compruebalo.
  #16 (permalink)  
Antiguo 11/08/2010, 15:00
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: no encuentro el fallo en este script

debo de cambiar el campo año(ano) de year a int?
  #17 (permalink)  
Antiguo 11/08/2010, 15:02
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: no encuentro el fallo en este script

Debes de haber llamado mal a tu campo de la base de datos en el insert por eso te marca ese
error.
  #18 (permalink)  
Antiguo 11/08/2010, 15:02
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: no encuentro el fallo en este script

eso significa q dentro de tu tabla peliculas no tienes ningun campo que se llame ano ve en tu base de datos a ver como llamaste al año de la pelicula suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #19 (permalink)  
Antiguo 11/08/2010, 15:03
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: no encuentro el fallo en este script

Mas arriba dijiste que cambiaste año por ano, y si, lo cambiaste, pero lo cambiaste en las variables... El campo de la base de datos llamado año, no lo cambiaste. Debes de cambiarlo a ano.

  #20 (permalink)  
Antiguo 11/08/2010, 15:04
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: no encuentro el fallo en este script

a si!!! sera eso voy a cambiarlo ahora
  #21 (permalink)  
Antiguo 11/08/2010, 15:06
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: no encuentro el fallo en este script

ya me inserta datos en la base de datos........cuando e cambiado el campo año por ano en phpmyadmin..........entonces decidme en mysql no se pueden usar campos con la letra "ñ"???

por cierto mucha gracia por vuestra ayuda (e intentao repartir karma pero no me deja el foro hacerlo ;) )
  #22 (permalink)  
Antiguo 11/08/2010, 15:24
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: no encuentro el fallo en este script

Si que permite nombres para las tablas y/o campos con Ñ. Lo que pasa que en la variable tu lo recojias como ano y luego en la base de datos tenias puesto año. Ese era el único problema.

Saludos,

PD: Nombres en mysql
  #23 (permalink)  
Antiguo 11/08/2010, 15:30
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: no encuentro el fallo en este script

ok deffer ;)

Etiquetas: encuentro, fallo
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 16:57.