Foros del Web » Programando para Internet » PHP »

Error al tomar ID dentro de un WHILE

Estas en el tema de Error al tomar ID dentro de un WHILE en el foro de PHP en Foros del Web. Hola a todos, El problema es que cuando envio la respuesta a un mensaje me la multiplica y aparece en todos los mensajes y no ...
  #1 (permalink)  
Antiguo 06/06/2011, 19:56
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 13 años
Puntos: 0
Error al tomar ID dentro de un WHILE

Hola a todos,
El problema es que cuando envio la respuesta a un mensaje me la multiplica y aparece en todos los mensajes y no en el mensaje correspondiente, el tema es que esta basado en ids y dentro de un while, osea el codigo es asi:

Código PHP:
Ver original
  1. $indicador=$row['id'];
  2.  
  3. if(isset($_POST['msg'])){
  4. foreach($_POST['msg'] AS $valor){
  5.  
  6. if($valor != ''){
  7. $name=$_SESSION['nick'];
  8. $mensaje=$valor;
  9. $id=$indicador;
  10. $insert = mysql_query("INSERT INTO mensajes (name,fecha,mensaje,indicador)
  11. values('$name',NOW(),'$mensaje','$id')");
  12. }
  13. else {
  14. if($valor == ''){
  15. echo "error2";
  16. }
  17. }
  18. }
  19. }

Esta todo dentro de un while, pero no se como hacer para que tome el resultado de la id de ese mensaje y lo guarde en la respuesta, tengo a parte un textarea donde escribo el mensaje y al enviarlo pasa por el codigo que deje arriba, pero al tomar la id del mensaje ("$indicador=$row['id'];") me multiplica todos los mensajes con la id de todos el cual ahi surge que aparece la respuestas en todos los mensajes... no se si me explico bien.. espero que me puedan ayudar en este problema, que falta?
  #2 (permalink)  
Antiguo 06/06/2011, 20:02
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Error al tomar ID dentro de un WHILE

no veo el while por ningun lado. :S
  #3 (permalink)  
Antiguo 06/06/2011, 20:16
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 13 años
Puntos: 0
Respuesta: Error al tomar ID dentro de un WHILE

bueno aca te lo dejo:

Código PHP:
Ver original
  1. $q = mysql_query("SELECT * FROM mensajes WHERE name='".$name."' AND indicador=0 ORDER BY id desc LIMIT 0, 10");
  2. while($row = mysql_fetch_array($q)){
  #4 (permalink)  
Antiguo 06/06/2011, 20:25
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Error al tomar ID dentro de un WHILE

creo que el problema es que haces un ciclo,

¿para que un ciclo si es solo una respuesta?

haz el insert tomando el id del mensaje, no haciendo una consulta, por que con la consulta obtienes los ids de todos los mensajes, y por eso te lo escribe en todos.
  #5 (permalink)  
Antiguo 06/06/2011, 20:43
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 13 años
Puntos: 0
Respuesta: Error al tomar ID dentro de un WHILE

mm?? no entiendo, como seria?
  #6 (permalink)  
Antiguo 06/06/2011, 20:54
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Error al tomar ID dentro de un WHILE

la lógica seria que me imagino que tienes un boton que diga responder, cuando lo aprietas este boton debe tener el id del comentario al que va a responder o en su defecto el nombre.

entonces cuando hagas submit de la respuesta

envias por $_POST ese valor,

si es el id queda superfacil solo haces el insert por el id enviado para que quede relacionado al id del mensaje original.
  #7 (permalink)  
Antiguo 06/06/2011, 21:05
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 13 años
Puntos: 0
Respuesta: Error al tomar ID dentro de un WHILE

en realidad lo tengo en un textarea que al apretar "enter" me lo envia, como lo colocaria ahi?

Código PHP:
Ver original
  1. <form name="form2" method="post" action="mensajes.php?name=<?=$name;?>">
  2. <textarea name="msg[]" wrap="off" style="width:480px; height: 20px;"  onkeypress="iSubmitEnter(event, document.form2)"></textarea>

el que toma la id del mensaje dentro del while es:

Código PHP:
Ver original
  1. $indicador=$row['id'];

donde lo coloco?
  #8 (permalink)  
Antiguo 06/06/2011, 21:24
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Error al tomar ID dentro de un WHILE

es que estan mal tus conceptos, el $indicador no te toma el id del mensaje, simplemente esta recorriendo todos los mensajes.

ya te explique la lógica, lo demás depende de ti, explicarte paso a paso tomaria demasiado de mi tiempo, lo siento, tendrás que reafirmar tus conocimientos en php.
  #9 (permalink)  
Antiguo 06/06/2011, 21:40
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 13 años
Puntos: 0
Respuesta: Error al tomar ID dentro de un WHILE

ok de igual manera gracias..

Etiquetas: tomar
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 11:43.