Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] duda en almacenamiento en la DB

Estas en el tema de duda en almacenamiento en la DB en el foro de PHP en Foros del Web. buenas... estoy haciendo mis primeras incursiones en bases de datos... tengo un script que funciona (hasta cierto punto) ya que envia los datos pero no ...
  #1 (permalink)  
Antiguo 26/11/2013, 15:03
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años, 5 meses
Puntos: 0
duda en almacenamiento en la DB

buenas... estoy haciendo mis primeras incursiones en bases de datos...

tengo un script que funciona (hasta cierto punto) ya que envia los datos pero no los recibe o logro verlos en la base de datos cuando voy a ver en el php my admin.
Código MySQL:
Ver original
  1. INSERT INTO agenda (nom, app, mail)
  2. VALUES ('".$_POST["nombre"]."', '".$_POST["apellido"]."', '".$_POST["mail"]."', '".$_POST["dni"]."')
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos. Leer las normas del foro.
y esto es lo que tengo por el lado del phpmyadmin.




desde ya gracias!! :D
saludos!!
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)

Última edición por gnzsoloyo; 26/11/2013 a las 16:36
  #2 (permalink)  
Antiguo 26/11/2013, 16:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: duda en almacenamiento en la DB

Estás indicando sólo tres datos a ingresar (nom, app y mail), y mandando cuatro (nombre, apellido, mail y dni).
Si mandas cuatro valores, debes indicar los cuatro campos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/11/2013, 12:05
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: duda en almacenamiento en la DB

pues entonces, corregido eso.... por que es que no recibo o veo los datos en el phpMy admin????
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #4 (permalink)  
Antiguo 27/11/2013, 12:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: duda en almacenamiento en la DB

¿Lo corregiste?
Si ahora estás mandando los datos correspondientes, simplemente deben aparecer en la tabla.
Ahora bien, ¿te has puesto a verificar si te está llegando algun error al momento de ejecución?

Si una sentencia falla, MySQL siempre devuelve mensajes de error, pero si no sabemos si lo haces, si no capturas la respuesta de MySQL... ¿cómo quieres que adivinemos qué estás haciendo mal?

VErifica si retorna error, pero por favor, no postees código de PHP en este foro. Lee las normas de los foros de BDD, que están al principio, alli se explica por qué.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/11/2013, 12:30
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: duda en almacenamiento en la DB

si claro, lo corregi, y los datos se envian correctamente y devuelve un mensaje de datos enviados(tal como lo programe). en ningun momento me devuelve algun mensaje de error...
eso si, en la base de datos tengo 2 tablas y en ninguna de las 2 veo almacenado los datos que envio.
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #6 (permalink)  
Antiguo 27/11/2013, 12:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: duda en almacenamiento en la DB

Entonces hay sólo pocos caminos posibles:
1) Uno o más de los datos que no estás enviando son NOT NULL, y por tanto dispara un error mal administrado.
2) Uno o más de los datos contiene un valor que rompe la sintaxis.
3) No los estás enviando correctamente, sea por la conexión, por el destino u otro parámetro.
4) No estás capturando el error de forma adecuada.
Salvo lo primero, el resto son temas a ver en programación.

Vamso al caso: Si ejecutas un INSERT creadoi manualmente con phpMyadmin, y sólo usando la misma sintaxis que muestras, ¿qué sucede?

Si se inserta bien, entonces el error está en PHP.
Si no se inserta, disparará un error. En ese caso dinos cuál es el mensaje que muestra.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/11/2013, 18:03
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: duda en almacenamiento en la DB

gnzsoloyo mira, estoy imprimiendo el $sql y me devuelve los values vacios....
INSERT INTO miniagenda (id, nombre, apellido, mail, direccion, telefono)VALUES ('', '', '', '', '')¡Gracias!, hemos recibido sus datos correctamente.

?????

mes estoy pegando tremendo mareo con esto jeeee!!

desde ya muchas gracias por tu ayuda
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #8 (permalink)  
Antiguo 27/11/2013, 18:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: duda en almacenamiento en la DB

Pues entonces el problema lo tienes en programación: Las variables que usas están vacías...

Muevo el post a PHP para que sigan allá, y te recomiendo postear de nuevo el código PHP de toda esa parte, a que se entienda de dónde tomas los valores y por donde entran.

Movido de MySQL a 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)
  #9 (permalink)  
Antiguo 27/11/2013, 18:52
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: duda en almacenamiento en la DB

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Pues entonces el problema lo tienes en programación: Las variables que usas están vacías...

Muevo el post a PHP para que sigan allá, y te recomiendo postear de nuevo el código PHP de toda esa parte, a que se entienda de dónde tomas los valores y por donde entran.

Movido de MySQL a PHP.
dale nomas! movelo
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #10 (permalink)  
Antiguo 27/11/2013, 18:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: duda en almacenamiento en la DB

No te olvides de volver a poner el código PHP de esa parte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 28/11/2013, 10:16
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Respuesta: duda en almacenamiento en la DB

bien... siguiendo con la cuestion...

el formulario envia los datos... pero no se en que punto estos se pierden o por que...

este es el codigo que tengo

Código PHP:
<?php print('<? xml version="1.0" encoding="UTF-8"?>');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><body>
<?php
if(isset($_POST['enviar'])){
    
$link mysqli_connect("localhost""root""""ejercicios");
    
$sql "INSERT INTO miniagenda (nombre, direccion, telefono, email)";
    
$sql.= "VALUES ('".$_POST["nombre"]."', '".$_POST["direccion"]."', '".$_POST["telefono"]."', '".$_POST["mail"]."',)";
    
$result mysqli_query($link$sql);
    print 
$sql;
    print (
"Hemos recibido sus datos correctamente. \n");


recibido:

var_dump($_POST);

     print(
"La query es: $sql<br />");
     print(
$msg);


} else {
    
//se vuelve a mostrar el formulario si no se ingresaron datos.
?>

<form action="insertdata.php" method="post">
    <input type="text" name="nombre" placeholder="Nombre" /><br>
    <input type="text" name="direccion" placeholder="Direccion" /><br>
    <input type="text" name="telefono" placeholder="Telefono" /><br>
    <input type="text" name="mail" placeholder="Mail" /><br>
    <input type="submit" name="enviar" value="Aceptar Informacion" />
</form>
<?php
}
?>
</body>
</html>
al imprimir $sql, lo que me devuelve es lo siguiente...

INSERT INTO miniagenda (nombre, direccion, telefono, email)VALUES ('Juan Martin Rodriguez', 'Catamarca 278', '22348342788', '[email protected]',)Hemos recibido sus datos correctamente.
array (size=5)
'nombre' => string 'Juan Martin Rodriguez' (length=21)
'direccion' => string 'Catamarca 278' (length=13)
'telefono' => string '22348342788' (length=11)
'mail' => string '[email protected]' (length=23)
'enviar' => string 'Aceptar Informacion' (length=19)
La query es: INSERT INTO miniagenda (nombre, direccion, telefono, email)VALUES ('Juan Martin Rodriguez', 'Catamarca 278', '22348342788', '[email protected]',)

( ! ) Notice: Undefined variable: msg in C:\wamp\www\basesdedatos\insertdata.php on line 19 Call Stack #TimeMemoryFunctionLocation 10.0013680304{main}( )..\insertdata.php:0
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)

Última edición por ignacio85r; 28/11/2013 a las 10:44
  #12 (permalink)  
Antiguo 28/11/2013, 11: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: 17 años
Puntos: 2658
Respuesta: duda en almacenamiento en la DB

No estás evaluando si $result es o no exitoso. Es decir, tu asumes que funcionó bien, pero no lo verificas en ninguna parte.
Y donde es evidente es que en el VALUES.(....) tienes una coma de más, lo que debería disparar un error de sintaxis, que no estás capturando.
Código PHP:
<?php print('<? xml version="1.0" encoding="UTF-8"?>');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><body>
<?php
if(isset($_POST['enviar'])){
    
$link mysqli_connect("localhost""root""""ejercicios");
    
$sql "INSERT INTO miniagenda (nombre, direccion, telefono, email)";
    
$sql.= "VALUES ('".$_POST["nombre"]."', '".$_POST["direccion"]."', '".$_POST["telefono"]."', '".$_POST["mail"]."')";
    
$result mysqli_query($link$sql);
    if(!
$result)
      {print (
mysqli_error());}
    else
    {print (
"Hemos recibido sus datos correctamente. \n");}


recibido:

var_dump($_POST);

     print(
"La query es: $sql<br />");
     print(
$msg);


} else {
    
//se vuelve a mostrar el formulario si no se ingresaron datos.
?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 28/11/2013, 19:54
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: duda en almacenamiento en la DB

bien al final pude hacerlo... lo que hice fue lo siguiente
Código PHP:
 <?php print('<? xml version="1.0" encoding="UTF-8"?>');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<body>
<?php
 
if(isset($_POST['enviar'])){                                                        
 
$link mysqli_connect("localhost","root","matrox85","tutorial");    
 
$sql "INSERT INTO minag (nombre, mail, direccion, telefono)";        
 
$sql.= "VALUES ('".$_POST["nombre"]."', '".$_POST["mail"]."', '".$_POST["direccion"]."', '".$_POST["telefono"]."')"
 if(
$result mysqli_query($link$sql)) {                                    


 print (
"¡Gracias!, hemos recibido sus datos correctamente.\n");
 } else {print (
$sql mysqli_error($link));}                                
 } else {

    
?>
    <form method="POST" action="add_reg.php" >
        <input type="text" name="nombre" placeholder="Nombre" ><br>
        <input type="text" name="mail" placeholder="Mail" ><br>
        <input type="text" name="direccion" placeholder="Direccion" ><br>
        <input type="text" name="telefono" placeholder="Telefono" ><br>
        <input type="submit" name="enviar" value="Aceptar Informacion"><br>
    </form>
<?php
}
?>
</body>
</html>
el error era que estaba enviando mas datos de los campos disponibles... pero para llegar a capturar el error lo que hice fue que mediante mysqli_error($link) me devolviera (si lo habia) el error para asi subsanarlo.

creo que eso es todo...
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)

Etiquetas: almacenamiento, mysql, sql
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 14:34.