hola. buen dia espero que me puedan ayudar.
estoy haciendo un minichat con jquery, mysql y php y tengo problemas al actualizar la bd.
El problema esta en lo siguiente.:
cuando yo añado un nuevo mensaje a la tabla mensajes. esta se añade pero al intentar recuperarla en ese mismo momento , no puedo recuperarla, porque si se añade a la base de datos pero no puedo recuperarla desde mi codigo php.
.. kiero actualizar el Div con Id chat.. llamando cada minuto a la base de datos
y recuperar el ultimo mensaje añadido a la tabla.
aki adjunto las fuentes para k me puedan ayudar,
index.html
<html>
<head><title>Chat Logeo</title></head>
<body>
<form action = "chat.php" method = "POST">
Usuario : <input type = "text" name = "username">
<input type = "submit" value = "Login">
</form>
</body>
</html>
chat.php
<?php
session_start();
session_register("user");
$_SESSION['user'] = $_POST['username'];
$user = $_SESSION['user'];
?>
<html>
<head><title><?php echo $user; ?> - Chateando</title>
<script type = "text/javascript" src = "jquery.js"></script>
<script type = "text/javascript">
function addMensaje(){
//$('#chat').load('add.php?messagetext=hola');
$.post('add.php',
$('#chatmessage').serialize(),
function(data){
// $('#chat').html(data);
});
}
function getMensajes(){
$.get('mensajes.php', function(dato){
$('#chat').html(dato);
});
window.setTimeout(getMensajes, 1000);
}
</script>
</head>
<body>
<div id = "chat" style = "height: 200px; overflow:auto;">
</div>
<form id= "chatmessage">
<textarea name = "message" id = "messagetext">
</textarea>
</form>
<input type = "button" value = "enviar" onclick = "addMensaje();">
<script type = "text/javascript">
$(document).ready(function(){
getMensajes();
});
</script>
</body>
</html>
add.php
<?php
session_start();
$conn = mysql_connect("localhost","root","");
mysql_select_db("chatbd",$conn);
$msj = $_POST["message"];
$user = $_SESSION["user"];
echo $user . " dice: " . $msj;
$sql = "insert into messages(user, message) values('$user', '$msj')";
mysql_query($sql, $conn);
?>
mensajes.php
<?php
$conn = mysql_connect("localhost","root","");
mysql_select_db("chatbd",$conn);
$rst = mysql_query("select * from messages", $conn);
$num = mysql_num_rows($rst);
$salida = "";
if($num > 0)
{
for($i = 0 ; $i < $num; $i++)
{
$salida .= mysql_result($rst, $i, 1) . " dice : " . mysql_result($rst, $i, 2) . "<br/>";
}
}
echo $salida;
?>