Foros del Web » Programando para Internet » PHP »

Problema para guardar dato

Estas en el tema de Problema para guardar dato en el foro de PHP en Foros del Web. Hola tengo un problema, estoy guardanda informacion en una base de datos sql, reuslta que me guarda bien los dos campos pero el tercero no ...
  #1 (permalink)  
Antiguo 25/09/2009, 13:35
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Problema para guardar dato

Hola tengo un problema, estoy guardanda informacion en una base de datos sql, reuslta que me guarda bien los dos campos pero el tercero no lo guarda, me apacere en blanco en mi tabla.

este es el codigo.

Código php:
Ver original
  1. $sql_check = mysql_query("SELECT * FROM messages order by msg_id desc");
  2.  
  3.  
  4. if(isSet($_POST['content']))
  5.  
  6. {
  7. $dato=$_POST['dato'];
  8. $content=$_POST['content'];
  9.  
  10. mysql_query("insert into messages(dato,msg) values ('$dato','$content')");
  11.  
  12. $sql_in= mysql_query("SELECT msg,msg_id FROM messages order by msg_id desc");
  13. $r=mysql_fetch_array($sql_in);
  14.  
  15.  
  16. $dato=$r['dato'];
  17. $msg=$r['msg'];
  18. $msg_id=$r['msg_id'];
  19. }

El campo DATO es el que no guarda, pero almenos yo no le veo el error, recibo el dato y envio el valor al campo, no se por que no guarda, ¿alguien me podria dar una mano con esto? gracias!
  #2 (permalink)  
Antiguo 25/09/2009, 13:46
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema para guardar dato

revisa la definición de dicho campo, puede que lo tengas como int, enum o set y trates de guardar una cadena
  #3 (permalink)  
Antiguo 25/09/2009, 13:47
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Problema para guardar dato

La sintaxis puede estar mal..

Pruebalo asi

mysql_query("insert into messages(dato,msg) values ('".$dato."','".$content."')");
  #4 (permalink)  
Antiguo 25/09/2009, 13:52
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema para guardar dato

Hola @maycolalvarez No, es un varchar.

@loncho_rojas gracias lo intente, pero sigue sin guardarme el campo dato.
  #5 (permalink)  
Antiguo 25/09/2009, 13:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema para guardar dato

revisa de nuevo si tienes varchar(0) es por eso que no te guarda
  #6 (permalink)  
Antiguo 25/09/2009, 13:58
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema para guardar dato

no, de echo es un campo varchar(50) NOT NULL default '',
  #7 (permalink)  
Antiguo 25/09/2009, 14:02
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Problema para guardar dato

cuando hay problemas de este tipo, y que son rompecabezas, dado que no encontramos logica, por lo general son problemas de sintaxis en el SCRIPT, nombres mal escritos o mala definicion en la BD..

solo por preguntar, en la linea Nº4

if(isSet($_POST['content']))... no será " if(isset " ??

en la linea 16 para abajo

$dato=$r['dato'];, porque vuelves a declarar $dato despues de haberla generado en el mismo IF...

No te cuestiono, solo pregunto por curiosidad
  #8 (permalink)  
Antiguo 25/09/2009, 14:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Problema para guardar dato

haz un echo de $_POST['dato']; y ve si te llega el valor..

Avisa q tal..
  #9 (permalink)  
Antiguo 25/09/2009, 15:52
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Hola de nuevo, @loncho_rojas lo declaro de nuevo por que estoy trabajando con ajax, despues de guardarlo los muestro en pantalla, veras que justo despues de guardar (y antes de declararlo de nuevo) realizo un SELECT.

@bronkturro lo checare llegando a la oficina y te aviso.

Pues no me ah funcionado, alguna otra idea?

gracias.

Última edición por GatorV; 26/09/2009 a las 17:03
  #10 (permalink)  
Antiguo 25/09/2009, 16:42
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Problema para guardar dato

Debido a que esta todo correcto, puede que tus funcionalidades AJAX esten creando el conflicto.. no se, digo, puesto que lo cheko, incluso lo pruebo en mi maquina y funciona bien, lo que si le quite fueron las variables que declaraste luego de tu Fetch Array,.. en ese caso cuando quiero mostrarlo de nuevo, lo hago en una pagina disitinta, y no en la de carga.. no se si esta logica se aplica a ti.. es decir, tener una pagina de insertar.php, otra de listado.php, editar.php y eliminar.php...
  #11 (permalink)  
Antiguo 25/09/2009, 16:50
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema para guardar dato

mm no se, deveria de funcionar.
  #12 (permalink)  
Antiguo 25/09/2009, 17:03
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Problema para guardar dato

Como lo haria normalmente, modifcando algo de tu codigo, sin dramas me carga todo:

Código PHP:
<?php


include ("inc/conn.php");

mysql_select_db($db_base_datos$conn);



      
$sql_check mysql_query("SELECT * FROM messages order by msg_id desc");

      if(isset(
$_POST['btnCargar']))

      {

      
$dato=$_POST['dato'];
      
$content=$_POST['content'];

      
$sql_insertar="insert into messages(dato,msg) values ('".$dato."','".$content."')";

      
$r=mysql_query($sql_insertar$conn)or die(mysql_error($conn));

            
      }




?>
pero le quite algunas variables, pues en otra pagina disitnta a esta muestro los resultados..

ya se que suena tonto, pero verificaste que tu campo INPUT se llame dato?.. en fin.. eso que hice cargo sin dramas, pero no se si se aplica a tu idea
  #13 (permalink)  
Antiguo 25/09/2009, 17:08
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema para guardar dato

lo que pasa es que ahora que pongo

Código php:
Ver original
  1. "insert into messages(dato,msg) values ('".$dato."','".$content."')";

me marca error :

Cita:
Parse error: syntax error, unexpected ';'
  #14 (permalink)  
Antiguo 25/09/2009, 17:18
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Problema para guardar dato

$sql_insertar="insert into messages(dato,msg) values ('$dato','$content')";

si lo pongo asi, igual me funciona.. por eso creo que la teoria esta correcta, pero algo que estas realizando en tu script genera el conflicto, y como te dije, generalmente, y particularmente, yo no inserto, y a la vez vuelvo a imprimir en la misma pagina los datos, o si lo debo hacer, emplearia una sentencia SQL distinta a la de carga.

Porque no pruebas usar directamente $r['dato'], $r['msg'], $r[msg_id], en donde quieras imprimir, en lugar de guardarlas en una variable dentro de tu IF.. es decir, si lo vas a imprimir, lo hacer tipo

<? echo $r['dato']?>
a parte, si te das cuenta en tu query, estas haciendo esto

$sql_in= mysql_query("SELECT msg,msg_id FROM messages order by msg_id desc");//aca no incluis a dato para que te traiga como resultado

$dato=$r['dato']; // aca llamas a dato desde tu resultado

en todo caso deberia ser:
$sql_in= mysql_query("SELECT msg_id,msg,dato FROM messages order by msg_id desc");

Última edición por loncho_rojas; 25/09/2009 a las 17:25
  #15 (permalink)  
Antiguo 25/09/2009, 17:29
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema para guardar dato

si tienes razon ese $dato=$r['dato']; lo quite por que en realidad no lo necesito en ese momento, solo necesito que se guarde el campo.

por ejemplo: demo pero no me guarda el que dice "dato para envio"

Última edición por tampon; 25/09/2009 a las 19:39
  #16 (permalink)  
Antiguo 25/09/2009, 17:41
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Problema para guardar dato

puedes pegar un rato tu codigo entero, lo veo, y despues vuelves a editarlo para borrar? de otra te puedo asistir por email, enviame un mensaje privado, lo que te parezca mejor
  #17 (permalink)  
Antiguo 25/09/2009, 17:51
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema para guardar dato

Pues es que de echo ese es todo el codigo, pagina que puse de link envia los valores a demo.php, que es el que tiene el primer codigo y eso es todo.
  #18 (permalink)  
Antiguo 25/09/2009, 18:04
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Problema para guardar dato

te falta el action!!

<form method="post" name="form" action="?????">

aunque veo que con el ajax lo haces... emm.. a ver.. puede que mi observacion Nº2 sea el problema.. de todas maneras pruebala inicialmente, y luego verifica la Nº1


1)
Cita:
$sql_in= mysql_query("SELECT msg,msg_id FROM messages order by msg_id desc");//aca no incluis a dato para que te traiga como resultado

$dato=$r['dato']; // aca llamas a dato desde tu resultado, pero no existe en tu query

en todo caso deberia ser:
$sql_in= mysql_query("SELECT msg_id,msg,dato FROM messages order by msg_id desc");
2)
url: "demo.php",
data: dataString,
cache: false,
success: function(html){
$("ol#update").prepend(html);
$("ol#update li:first").slideDown("slow");
//document.getElementById('dato').value='';... esta parte del codigo esta comentada, no sera el problema?, probar quitandole las dos // iniciales
document.getElementById('content').value='';
$("#flash").hide();
}
});

despues la verdad ya no se, es decir, no puedo ver otro error
  #19 (permalink)  
Antiguo 25/09/2009, 18:31
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema para guardar dato

mm no creo,

1. esa linea ya la quite del php, por que como te comente, no me interesa mostrarla, solo que se guarde.

2. esta comentada por que al enviar los datos limpia los campos, no quiero que limpie ese campo por eso lo comente antes de quitarlo.

En realidad es un problema y no se en donde este la falla, supongo que es en el primer codigo que puse ya que es el que procesa los datos para guardarlos en la base de datos, gracias de todos modos por la ayuda.
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 06:10.