Foros del Web » Programando para Internet » PHP »

base de datos en blanco

Estas en el tema de base de datos en blanco en el foro de PHP en Foros del Web. buenas tengo esta tabla en una base de datos pero cada vez que se envian los datos se llena una fila en blanco por que ...
  #1 (permalink)  
Antiguo 27/06/2012, 22:49
 
Fecha de Ingreso: febrero-2012
Mensajes: 84
Antigüedad: 12 años, 2 meses
Puntos: 3
base de datos en blanco

buenas tengo esta tabla en una base de datos pero cada vez que se envian los datos se llena una fila en blanco por que sera

esta es la tabla

CREATE TABLE pagos (
id bigint(7) NOT NULL auto_increment,
nombredeusuario char(100) NOT NULL,
nombredebanco char(100) NOT NULL,
numerodecuenta char(255) NOT NULL,
KEY id (id))
  #2 (permalink)  
Antiguo 27/06/2012, 22:53
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: base de datos en blanco

y como le estas enviado datos a la tabla???...
  #3 (permalink)  
Antiguo 28/06/2012, 07:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: base de datos en blanco

- Tomas los datos en la aplicación.
- Los envías a la base en web
- El proceso del script en servidor inserta una fila en blanco (valores de espacios vacíos no son NULL, por lo que no saltan las restricciones).

Respuesta básica: Los datos no están legando correctamente al script en servidor.
Respuesta extendida: El script no está tomando correctamente los datos para pasarlos al INSERT.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 30/06/2012, 08:44
 
Fecha de Ingreso: febrero-2012
Mensajes: 84
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: base de datos en blanco

asi envio los datos a la tabla, dodne estara el problema hay??

<?php

mysql_connect("localhost", "pag", "0000" ) or die(mysql_error());
mysql_select_db("bd" ) or die(mysql_error());

//Recibir
$nombredeusuario = strip_tags($_POST['nombredeusuario']);
$nombredebanco = strip_tags($_POST['nombredebanco']);
$numerodedeposito = strip_tags($_POST['numerodedeposito']);


// Preguntaremos si se han enviado ya las variables necesarias
if (isset($_POST["nombredeusuario"] ) ) {
$nombredeusuario = $_POST["nombredeusuario"];
$nombredebanco = $_POST["nombredebanco"];
$numerodedeposito = $_POST["numerodedeposito"];

// Hay campos en blanco
if($nombredeusuario==NULL|$nombredebanco==NULL|$nu merodedeposito==NULL)
{
header ("Location: http://www.pag/registropagoscamposvacios.html");
exit;
}


/// Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an
$checknick = mysql_query("SELECT numerodedeposito FROM pagos WHERE numerodedeposito='$numerodedeposito'" ) ;
$numerodedeposito_exist = mysql_num_rows($checknick);

if ($numerodedeposito_exist>0) {

header ("Location: http://www.pag/numerodedepositoexiste.html");

}
}else{



//Todo parece correcto procedemos con la inserccion
echo $query ;
$query = "INSERT INTO pagos (nombredeusuario, nombredebanco, numerodedeposito) VALUES('$nombredeusuario','$nombredebanco','$numer odedeposito')";
mysql_query($query) or die(mysql_error());
header ("Location: http://www.pagregistropagocorrecto.html");
exit;
}


?>
  #5 (permalink)  
Antiguo 30/06/2012, 10:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: base de datos en blanco

Haz un
Código PHP:
Ver original
  1. echo $query;
antes de
Código PHP:
Ver original
  1. mysql_query($query) or die(mysql_error());
Para ver qué es lo que realmente ha quedado construido.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 30/06/2012, 20:19
 
Fecha de Ingreso: febrero-2012
Mensajes: 84
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: base de datos en blanco

bueno ya arriba deje la tabla y deje el codigo php que hace la funcion aqui les dejo el codigo html del formulario para ver si me pueden enviar el codigo arreglado hermano porfavor gracias.

[codigo borrado por normas del foro]

Última edición por gnzsoloyo; 01/07/2012 a las 07:48
  #7 (permalink)  
Antiguo 01/07/2012, 07:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: base de datos en blanco

Te dije algo. No me diste ni media atención.
- Si el INSERT está metiendo lineas en blanco, el problema sólo puede estar en los datos.
- Hay que comprobar si es un tema de los datos que llega, o de la forma que los toma.
- Que el código esté correctamente armado, no implica que los datos estén llegando.
- La única forma de comprobar si los datos están llegando bien, es verificando cómo queda armada la sentencia.
- Para comprobar la sentencia, sólo necesitas verificarla usando echo:
- Pone la línea indicada, donde te indiqué, y prueba. Luego postea lo que ese echo te muestre en pantalla.

O sea:
Código PHP:
Ver original
  1. // echo $query ; // esto no tiene sentido, porque a esta altura $query no contiene nada.
  2. $query = "INSERT INTO pagos (nombredeusuario, nombredebanco, numerodedeposito) VALUES('$nombredeusuario','$nombredebanco','$numer odedeposito')";
  3. echo $query ; // Esto va aquí, y no antes.
  4. mysql_query($query) or die(mysql_error());
  5. header ("Location: http://www.pagregistropagocorrecto.html");

VERIFICA.

P.D.:
Te borré el HTML porque no se permite poner código de programación en este foro. Esto es Bases de Datos, no PHP o HTML, que son otros foros.
No te he borrado el PHP porque aún no definimos si es un problema de la sentencia INSERT o del manejo del PHP. Si termina siendo de PHP, te moveré el thread al foro que corresponda.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 01/07/2012, 09:35
 
Fecha de Ingreso: febrero-2012
Mensajes: 84
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: base de datos en blanco

ahh ok hermano tiene razon
lo coloque como me dijo y este es el error q me da

INSERT INTO pagos (nombredeusuario, nombredebanco, numerodedeposito) VALUES('','','')
Warning: Cannot modify header information - headers already sent by (output started at /home/ganatelo/public_html/registrarpago.php:42) in /home/pag/public_html/registrarpago.php on line 44
  #9 (permalink)  
Antiguo 01/07/2012, 12:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: base de datos en blanco

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /home/ganatelo/public_html/registrarpago.php:42) in /home/pag/public_html/registrarpago.php on line 44
Esto es un error de programación de PHP, no es un asunto de MySQL.
Pero, tal como te dije, el problema que tienes a nivel de MYSQL es este:
Código MySQL:
Ver original
  1. INSERT INTO pagos (nombredeusuario, nombredebanco, numerodedeposito) VALUES('','','')
Los datos están vacíos, pero como lo que envías es un caracter de espacio vacío y no un NULL, las restricciones de NOT NULL no se disparan.
En otras palabras, se cumple lo que ya te advertí: Las variables, pese a lo que supones, están vacías.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 01/07/2012, 12:12
 
Fecha de Ingreso: febrero-2012
Mensajes: 84
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: base de datos en blanco

hermano y como lo resuelvo ps =(
  #11 (permalink)  
Antiguo 01/07/2012, 14:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: base de datos en blanco

Son errores de programación. No es asunto de MySQL, sino que estás haciendo algo mal en PHP.
Muevo tu thread al foro correspondiente, para que te contesten los que entienden de PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 01/07/2012, 15:37
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: base de datos en blanco

PHP no entiende NULL, entodo caso puedes hacer !empty($valor)
La validación sería
Código PHP:
Ver original
  1. if(empty($nombredeusuario) || empty($nombredebanco) || empty($numerodedeposito))
  2. {
  3. header ("Location: http://www.pag/registropagoscamposvacios.html");
  4. }
Si te da error Warning: Cannot modify header information - headers already sent by (output started at /home/ganatelo/public_html/registrarpago.php:42) in /home/pag/public_html/registrarpago.php on line 44
Debemos suponer que la linea del error es la de algún header('location:loquesea'), en ese caso elimina los echo y quita las lineas en blanco... debería funcionar

Etiquetas: blanco, tabla
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 05:16.