Foros del Web » Programando para Internet » PHP »

No registra datos de php a mysql

Estas en el tema de No registra datos de php a mysql en el foro de PHP en Foros del Web. Hola! Tengo este codigo donde en un solo archivo php llamado agregarlibro.php, trato de hacer el formulario para tomar los datos del libro y luego ...
  #1 (permalink)  
Antiguo 22/11/2011, 10:23
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 9 meses
Puntos: 0
No registra datos de php a mysql

Hola!

Tengo este codigo donde en un solo archivo php llamado agregarlibro.php, trato de hacer el formulario para tomar los datos del libro y luego guardarlos a la base de datos, todo en un solo archivo, peeeero no hace nada, no registra, pero tampoco da error, entonces no tengo ni idea de cual es el problema.

Podrian ayudarme?

Aca les dejo el codigo:

La primera parte es el registro, y luego viene el formulario:


<!-- *************COMIENZA REGISTRO DE LIBROS***************-->
<?php

//Aqui defino las variables que me guardan los valores que registro en las cajas de texto en el formulario...
$nomb='$_POST[nombre]';
$prec='$_POST[precio]';
$edit='$_POST[editorial]';
$aut='$_POST[autor]';
$resu='$_POST[resumen]';
$descrip='$_POST[descripcion]';
$img='$_POST[imagen]';

//Conecto con la BD..
require("conexion.php");

// Validar si el registro ya existe en la base de datos.
$validar= "SELECT * FROM libros WHERE titulo='$nomb'";
$resultado=mysql_query($validar);

if (mysql_num_rows($resultado) == 0) {
//HAGO EL REGISTRO EN LA BASE DE DATOS
$strsql= "INSERT INTO libros (titulo, resumen, descripcion_completa, precio, editorial, imagen, autor) VALUES ($nomb, $resu, $descrip, $prec, $edit, $img, $aut)";
$result=mysql_query($strsql);
}
?>

<HTML>
<HEAD>
<title> Agregar Libro</title>
<link href="estilos.css" rel="stylesheet" type="text/css" media="screen"/>
</HEAD>


<BODY id="cuerpo" >

<div id="general">

<!-- ******************* SUPERIOR *********************-->

<div id="superior">

<div id="superior1">
<?php
require("menusuperior.php");
?>
</div>

<div id="superior2">

</div>

<div id="superior3">

</div>
</div>

<!-- *******************CUERPO CENTRAL ********************-->
<div id="centralcompleto">



<!-- ****COMIENZA FORMULARIO****-->
<BR>
<h3 class="title2" align="center">Introduzca los datos del nuevo Libro:</h3><BR>
<FORM name="form2" action="" method="POST">


<div id="tablaregistro">
<table width="300" border="0" cellspacing="20">

<tr width="60%">
<td>Nombre:</td>
<td><input name="nombre" type="text" id="nombre" size="30"></td>
<td>Precio:</td>
<td><input name="precio" type="text" id="precio" size="30"></td>
</tr>

<tr>
<td>Editorial:</td>
<td><input name="editorial" type="text" id="editorial" size="30"></td>
<td>Autor:</td>
<td><input name="autor" type="text" id="autor" size="30"></td>
</tr>

<tr>
<td>Resumen:</td>
<td><textarea name="resumen" id="resumen" size="50"></textarea></td>
<td>Descripcion:</td>
<td><textarea name="descripcion" id="descripcion" size="100"></textarea></td>
</tr>


<tr>
<td>Imagen:</td>
<td><input name="imagen" type="text" id="imagen" size="30"></td>
<!--<td><input type="button" name="buscar" value="Buscar"></td>-->
</tr>

</table>
</div> <!--Fin del div de la tabla de registro-->
<BR>
<BR>
<div id="botones">
<table>
<tr>
<td><input type="button" value="Registrar" name="registrar" onClick="validar()"></td>
<td><input type="reset" name="borrar" value="Borrar"></td>
<BR>
</tr>
</table>
</div> <!--fin div botones-->
</FORM>
</div> <!--fin div cuerpocentral-->

<!-- ******************** INFERIOR ***************-->

<div id="inferior">
<h5 align="center">Todos los derechos reservados</h5>
</div> <!--fin div inferior-->

</div> <!-- fin de la div general-->
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 22/11/2011, 10:37
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Respuesta: No registra datos de php a mysql

Yo cuidaría de poner los datos que son strings entre comillas en el INSERT.

Prueba eso a ver si es el problema.

(no pongas $nomb sino '$nomb')

Saludos.
  #3 (permalink)  
Antiguo 22/11/2011, 14:12
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No registra datos de php a mysql

ay lo tienes eran errores de comilla y concatenacion ademas el action estaba vacio , el boton no tenias puesto submit para que envie
Código PHP:
Ver original
  1. <!-- *************COMIENZA REGISTRO DE LIBROS***************-->
  2.     <?php
  3.     $action = $_SERVER['PHP_SELF'];
  4.     if(isset($_POST['nombre'])){
  5.      
  6.     //Aqui defino las variables que me guardan los valores que registro en las cajas de texto en el formulario...
  7.     $nomb=$_POST['nombre'] ;
  8.     $prec=$_POST['precio'] ;
  9.     $edit=$_POST['editorial'] ;
  10.     $aut=$_POST['autor'] ;
  11.     $resu=$_POST['resumen'] ;
  12.     $descrip=$_POST['descripcion'] ;
  13.     $img=$_POST['imagen'] ;
  14.      
  15.     //Conecto con la BD..
  16.     require('conexion.php');
  17.      
  18.     // Validar si el registro ya existe en la base de datos.
  19.     $validar= "SELECT * FROM libros WHERE titulo='$nomb'";
  20.     $resultado=mysql_query($validar);
  21.      
  22.     if (mysql_num_rows($resultado) == 0) {
  23.     //HAGO EL REGISTRO EN LA BASE DE DATOS
  24.     $strsql= "INSERT INTO libros (titulo, resumen, descripcion_completa, precio, editorial, imagen, autor) VALUES ('".$nomb."', '".$resu."', '".$descrip."', '".$prec."', '".$edit."', '".$img."', '".$aut."')";
  25.     $result=mysql_query($strsql);
  26.     }}
  27.     ?>
  28.      
  29.     <HTML>
  30.     <HEAD>
  31.     <title> Agregar Libro</title>
  32.     <link href="estilos.css" rel="stylesheet" type="text/css" media="screen"/>
  33.     </HEAD>
  34.      
  35.      
  36.     <BODY id="cuerpo" >
  37.      
  38.     <div id="general">
  39.      
  40.     <!-- ******************* SUPERIOR *********************-->
  41.      
  42.     <div id="superior">
  43.      
  44.     <div id="superior1">
  45.  <?php
  46. require("menusuperior.php");
  47. ?>
  48.     </div>
  49.      
  50.     <div id="superior2">
  51.      
  52.     </div>
  53.      
  54.     <div id="superior3">
  55.      
  56.     </div>
  57.     </div>
  58.      
  59.     <!-- *******************CUERPO CENTRAL ********************-->
  60.     <div id="centralcompleto">
  61.      
  62.      
  63.      
  64.     <!-- ****COMIENZA FORMULARIO****-->
  65.     <BR>
  66.     <h3 class="title2" align="center">Introduzca los datos del nuevo Libro:</h3><BR>
  67.     <FORM name="form2" action="<?php echo $action; ?>" method="POST">
  68.      
  69.      
  70.     <div id="tablaregistro">
  71.     <table width="300" border="0" cellspacing="20">
  72.      
  73.     <tr width="60%">
  74.     <td>Nombre:</td>
  75.     <td><input name="nombre" type="text" id="nombre" size="30"></td>
  76.     <td>Precio:</td>
  77.     <td><input name="precio" type="text" id="precio" size="30"></td>
  78.     </tr>
  79.      
  80.     <tr>
  81.     <td>Editorial:</td>
  82.     <td><input name="editorial" type="text" id="editorial" size="30"></td>
  83.     <td>Autor:</td>
  84.     <td><input name="autor" type="text" id="autor" size="30"></td>
  85.     </tr>
  86.      
  87.     <tr>
  88.     <td>Resumen:</td>
  89.     <td><textarea name="resumen" id="resumen" size="50"></textarea></td>
  90.     <td>Descripcion:</td>
  91.     <td><textarea name="descripcion" id="descripcion" size="100"></textarea></td>
  92.     </tr>
  93.      
  94.      
  95.     <tr>
  96.     <td>Imagen:</td>
  97.     <td><input name="imagen" type="text" id="imagen" size="30"></td>
  98.     <!--<td><input type="button" name="buscar" value="Buscar"></td>-->
  99.     </tr>
  100.      
  101.     </table>
  102.     </div> <!--Fin del div de la tabla de registro-->
  103.     <BR>
  104.     <BR>
  105.     <div id="botones">
  106.     <table>
  107.     <tr>
  108.     <td><input type="submit" value="Registrar" name="registrar" onClick="validar()" ></td>
  109.     <td><input type="reset" name="borrar" value="Borrar"></td>
  110.     <BR>
  111.     </tr>
  112.     </table>
  113.     </div> <!--fin div botones-->
  114.     </FORM>
  115.     </div> <!--fin div cuerpocentral-->
  116.      
  117.     <!-- ******************** INFERIOR ***************-->
  118.      
  119.     <div id="inferior">
  120.     <h5 align="center">Todos los derechos reservados</h5>
  121.     </div> <!--fin div inferior-->
  122.      
  123.     </div> <!-- fin de la div general-->
  124.     </BODY>
  125.     </HTML>

Última edición por webankenovi; 22/11/2011 a las 14:31
  #4 (permalink)  
Antiguo 23/11/2011, 09:34
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: No registra datos de php a mysql

GRACIAS!!! Ya lo probaré y les cuento!

WEBANKENOVI: Tengo el action vacio porque todo va en el mismo archivo, y en el boton REGISTRAR tengo la funcion para validar (lo que pasa es que no la copie para que no se hiciera tan largo el codigo, ademas de que no me parecio necesario) Y en la funcion es que luego tengo un submit para enviar el form!

Voy a probar sus sugerencias y ya les cuento. Muchas gracias!
  #5 (permalink)  
Antiguo 23/11/2011, 11:35
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No registra datos de php a mysql

yo te lo puse con action para que te lo lea en la misma pagina si verifica que se a mandado algo por post si no solo te sale el form , el boton de submit tambin te lo puse el codigo esta completo solo te faltaria añadir lo de validar na mas y asi deberia funcionar
  #6 (permalink)  
Antiguo 25/11/2011, 08:47
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: No registra datos de php a mysql

Hola de nuevo.. Bueno les cuento que mi codigo ya registra todo bien en la base de datos. Les dejo aqui el codigo: (incluida las validaciones que hago)

<!-- **********COMIENZA REGISTRO DE libros**********-->
<?php
//Conecto con la BD..
require("conexion.php");

if (isset($_POST['registrar'])){
//Aqui defino las variables que me guardan los valores que registro en las cajas de texto en el formulario...
$nomb=$_POST['nombre'];
$prec=$_POST['precio'];
$edit=$_POST['editorial'];
$aut=$_POST['autor'];
$resu=$_POST['resumen'];
$descrip=$_POST['descripcion'];
$img= $_FILES['txtimagen'] ['name']; //aca me dice que la variable txtimagen no esta definida

// Validar si el registro ya existe en la base de datos. Si existe, semuestra un mensaje...
$validar= "SELECT * FROM libros WHERE titulo='$nomb'";
$resultado=mysql_query($validar);

if (mysql_num_rows($resultado) == 0) {
//Insertamos el Registro en la Base de Datos..
move_uploaded_file($_FILES['txtimagen'] ['tmp_name'],"libros_img/".$_FILES['txtimagen']['name']); //aca tambien me da error de variable txtimagen indefinida..

$strsql= "INSERT INTO libros (titulo, resumen, descripcion_completa, precio, editorial, imagen, autor) VALUES ('$nomb','$resu','$descrip','$prec','$edit','Libro s_img/$img','$aut')";
$result=mysql_query($strsql);
echo "<script> alert ('Libro registrado exitosamente')</script>";
}
else { echo "<script> alert ('Libro ya Existe')</script>"; }
}
?>

<HTML>
<HEAD>
<title>Agregar Libro</title>
<link href="estilos.css" rel="stylesheet" type="text/css" media="screen"/>
</HEAD>


<BODY id="cuerpo" >
<div id="general">
<!-- ******************* SUPERIOR *************************-->

<div id="superior">
<div id="superior1">
<?php
require("menusuperior.php");
?>
</div>
</div>

<!-- *************CUERPO CENTRAL ****************-->
<div id="centralcompleto">
<SCRIPT language="javascript">

<!-- **********VALIDACIONES*************-->

function validar(){
//Defino variables para las validaciones
var val_esp_nomb = document.getElementById("nombre").value; /*Variable que evalua que no sean solo espacios en blanco*/
var val_sololetras = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s)+$/ /*Variable que contiene solo letras y espacios en blanco*/
var val_esp_edit = document.getElementById("editorial").value; /*Variable que evalua que no sean solo espacios en blanco*/
var val_esp_aut = document.getElementById("autor").value; /*Variable que evalua que no sean solo espacios en blanco*/
var val_esp_prec = document.getElementById("precio").value; /*Variable que evalua que no sean solo espacios en blanco*/
var val_letrasynum = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|[0-9])+$/ /*Variable que contiene solo letras y numeros*/
var val_numeros = /^([0-9])+$/ /*Variable que contiene solo numeros*/
var val_esp_res = document.getElementById("resumen").value; /*Variable que evalua que no sean solo espacios en blanco*/
var val_esp_descrip = document.getElementById("descripcion").value; /*Variable que evalua que no sean solo espacios en blanco*/

//Valido que el campo NOMBRE no esté vacio...
if (document.form2.nombre.value.length==0){
alert("Tiene que escribir el nombre del libro");
document.form2.nombre.focus();
return 0;
}

//Valido que el campo NOMBRE no contenga solo espacios en blanco
if (/^\s+$/.test(val_esp_nomb)) {
alert('El contenido del campo NOMBRE no pueden ser solo espacios en blanco');
return false;
}

//Valida el contenido del campo NOMBRE.. Que solo contenga letras, y espacios en blanco
if (!val_sololetras.test(form2.nombre.value)) {
alert('El contenido del campo NOMBRE no es válido.');
return false;
}

//Valido que el campo EDITORIAL no esté vacio...
if (document.form2.editorial.value.length==0){
alert("Tiene que escribir la editorial del libro");
document.form2.editorial.focus();
return 0;
}

//Valido que el campo EDITORIAL no contenga solo espacios en blanco
if (/^\s+$/.test(val_esp_edit)) {
alert('El contenido del campo Editorial no pueden ser solo espacios en blanco.');
return false;
}

//Valida el contenido del campo EDITORIAL.. Que solo contenga letras, y espacios en blanco
if (!val_sololetras.test(form2.editorial.value)) {
alert('El contenido del campo Editorial no es válido.');
return false;
}

//Valido que el campo AUTOR no este vacio....
if (document.form2.autor.value.length==0) {
alert("Tiene que escribir el autor");
document.form2.autor.focus();
return 0;
}

//Valido que el campo AUTOR no contenga solo espacios en blanco
if (/^\s+$/.test(val_esp_aut) ) {
alert('El contenido del campo Autor no pueden ser solo espacios en blanco.');
return false;
}

//Valida el contenido del campo AUTOR.. Que solo contenga letras, y espacios en blanco
if (!val_sololetras.test(form2.autor.value)) {
alert('El contenido del campo Autor no es válido.');
return false;
}

//Valido que el campo PRECIO no este vacio....
if (document.form2.precio.value.length==0) {
alert("Tiene que escribir el precio del libro");
document.form2.precio.focus();
return 0;
}

//Valido que el campo PRECIO no contenga solo espacios en blanco
if(/^\s+$/.test(val_esp_prec) ) {
alert('El contenido del campo Precio no pueden ser solo espacios en blanco.');
return false;
}

//Valido que el campo PRECIO, contenga solo numeros, sin espacios en blanco..
if (!val_numeros.test(form2.precio.value)) {
alert('El contenido del campo Precio no es válido.');
return false;
}

//Valido que el campo RESUMEN no esté vacio...
if (document.form2.resumen.value.length==0){
alert("Tiene que escribir un resumen del libro");
document.form2.resumen.focus();
return 0;
}

//Valido que el campo RESUMEN no contenga solo espacios en blanco
if (/^\s+$/.test(val_esp_res)) {
alert('El contenido del campo Resumen no pueden ser solo espacios en blanco');
return false;
}

//Valida el contenido del campo RESUMEN.. Que solo contenga letras, y espacios en blanco
if (!val_sololetras.test(form2.resumen.value)) {
alert('El contenido del campo Resumen no es válido.');
return false;
}

//Valido que el campo DESCRIPCION no esté vacio...
if (document.form2.descripcion.value.length==0){
alert("Tiene que escribir la descripcion del libro");
document.form2.descripcion.focus();
return 0;
}

//Valido que el campo DESCRIPCION no contenga solo espacios en blanco
if (/^\s+$/.test(val_esp_descrip)) {
alert('El contenido del campo Descripcion no pueden ser solo espacios en blanco');
return false;
}

//Valida el contenido del campo DESCRIPCION.. Que solo contenga letras, y espacios en blanco
if (!val_sololetras.test(form2.descripcion.value)) {
alert('El contenido del campo Descripcion no es válido.');
return false;
}

//el formulario se envia
document.form2.submit();
}
</SCRIPT>


<!-- *************COMIENZA FORMULARIO**********-->
<BR>
<h3 class="title2" align="center">Introduzca los datos del nuevo Libro:</h3><BR>
<FORM name="form2" action="agregarlibro.php" method="POST">


<div id="tablaregistro">
<table width="300" border="0" cellspacing="20">

<tr width="60%">
<td>Nombre:</td>
<td><input name="nombre" type="text" id="nombre" size="30"></td>
<td>Editorial:</td>
<td><input name="editorial" type="text" id="editorial" size="30"></td>
</tr>

<tr>
<td>Autor:</td>
<td><input name="autor" type="text" id="autor" size="30"></td>
<td>Precio:</td>
<td><input name="precio" type="text" id="precio" size="10"><td>BsF</td></td>
</tr>

<tr>
<td>Resumen:</td>
<td><input name="resumen" id="resumen" size="30"></td>
<td>Descripcion:</td>
<td><input name="descripcion" id="descripcion" size="30"></td>
</tr>

<tr>
<td>Imagen:</td>
<td><input type="file" tipe"txtimagen" name="txtimagen"></td>
</tr>

</table>
</div>
<BR>
<BR>
<div id="botones">
<table>
<tr>
<td><input type="submit" value="Registrar" name="registrar" onClick="validar()"></td>
<td><input type="reset" name="borrar" value="Borrar"></td>
<BR>
</tr>
</table>
</div>
</FORM>
</div>

<!-- ************************** INFERIOR *************************-->

<div id="inferior">
</div>
</div>
</BODY>
</HTML>


PEEEEEROO todavia tengo dos incovenientes:

1ero: A pesar de que me registra bien los datos en la BD, sucede esto: cuando cargo la pagina del form por primera vez, esta todo bien, lleno el form, le doy al boton registrar y me muestra el alert de javascript indicando que el registro fue exitoso, y me recarga la pagina de nuevo, hasta ahi todo bien, pero en el momento en que recarga la pagina del formulario de nuevo me da error de variable indefinida "imagen", lo raro es que registro de nuevo y a pesar de que muestra los errores me registra bien. No entiendo que pasa con eso....

y 2do: creo que tengo que colocar un controlador, condicional o algo a mi alert de "libro registrados exitosamente", ya que en lo que recargo la pagina, muestra el mensaje inmediatamente sin haber hecho ningun registro..

Me pueden ayudar?? Dejo en rojo las partes que dan error o incovenientes..

Y gracias por las ayudas anteriores.

Saludos =)
  #7 (permalink)  
Antiguo 27/11/2011, 14:28
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No registra datos de php a mysql

y si pruebas asi
Código PHP:
Ver original
  1. $name= no se de donde lo sacas['name'];
  2. $file= $_FILES['txtimagen'];
  3. $img= $file,$name;

puede que el problema este en el name eso es un array y no se de donde sale , añade en el form un titulo a la foto y lo pones asi

Código PHP:
Ver original
  1. $img = $_POST['titulo_foto'];

y luego en

Código PHP:
Ver original
  1. move_uploaded_file($_POST['titulo_foto'],"libros_img/".$_POST['titulo_fotos']); //aca

Y luego en

Código PHP:
Ver original
  1. $url_foto = 'libros_img/"'.$_POST['titulo_fotos'].'";
  2.  
  3. $strsql= "INSERT INTO libros (titulo, resumen, descripcion_completa, precio, editorial, imagen, autor) VALUES ('$nomb','$resu','$descrip','$prec','$edit','$url_foto,'$aut')";

no se prueba haber si alguna te soluciona, pero esta claro que el problema esta en al imagen y como tratas los datos

Etiquetas: formulario, html, mysql, registro, sql, tabla, variables
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 08:28.