Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/06/2005, 10:08
yokoshima
 
Fecha de Ingreso: febrero-2005
Ubicación: chile, Santiasko
Mensajes: 728
Antigüedad: 19 años, 2 meses
Puntos: 1
Problema con Foreach()

hola les escribo, porque estoy con algunos problemas con el update de una base de datos...

ahora explicare:
tengo una casede datos que tiene codclase, username, respuesta y pregunta.. para resumir... la cosa es que un usuario puede tener 5 respuestas de esas puede que 3 ya estan respondida por el usuario.. y 2 no todavia, asi que cuando el usuario no tiene nada en respuesta aparece un textbox y si tiene la respuesta aparece obviamente la respuesta... eso ya lo hise y me esta funcionando bien..

ahora el dilema... como uso recorcount y me arroja toda las respuestas la caja de texto tiene el mismo nombre para todo las respuestas.. y me dijeron que tenia que hacerlo con un foreach...

averigue y averigue... y todavia no entiendo....

aqui esta mi codigo... porfis ayudenme
Código PHP:
<?php
include "pagina.inc.php";
$username='yokoshima';
$codclase='5';
$contenido='';
$db=conexion();

//Identificacion
$sql=" select c.identificacion
from clase c, profesor_clase pc, pregunta p
where pc.username= '"
.$username."'
and pc.codclase= c.codclase
and c.codclase = p.codclase
and c.codclase = '"
.$codclase."' ";
$rs=$db->Execute($sql);

$clase=$rs->Fields("identificacion");

//Preguntas Clase
$sql1=" select p.alu_username, p.fecha_pregunta, p.pregunta, p.tipo_pregunta, p.fecha_respuesta, p.respuesta
from clase c, profesor_clase pc, pregunta p
where pc.username= '"
.$username."'
and pc.codclase= c.codclase
and c.codclase = p.codclase
and c.codclase = '"
.$codclase."' ";
$rs1=$db->Execute($sql1);

        
$alu_username=$rs1->Fields("alu_username");
        
$tipo_pregunta=$rs1->Fields("tipo_pregunta");

$fila3='';
if (
$rs1){
    if (
$rs1->RecordCount() > 0){
        while (!
$rs1->EOF){
        
$respuesta=$rs1->Fields("respuesta");
          if (
strlen($respuesta)==0){
            
$respuestax='<input type="text"  size="70" name="respuestax[]" ><input type="hidden" name="codclase[]"  value="'.$clase.'"> ';
           
//$respuestax='<input type="text"  size="70" name="respuestax">';
          
}else{
            
$respuestax=$respuesta
           }
           
$fecha_pregunta=$rs1->Fields("fecha_pregunta");
           
$pregunta=$rs1->Fields("pregunta");
           
$fecha_respuesta=$rs1->Fields("fecha_respuesta");
            
$fila3.=' <tr>
 <td>Clase:</td>
 <td>'
.$clase.'</td>
 <td>&nbsp;</td>
 <td>&nbsp;</td>
 <td>&nbsp;</td>
 </tr>
 
<tr>
<td>Publicado por:</td>
<td>'
.$alu_username.'</td>
<td>&nbsp;</td>
<td>Tipo pregunta:</td>
<td>'
.$tipo_pregunta.'</td>
</tr> 

<tr>
<td nowrap>Fecha publicacion:</td>
  <td nowrap>'
.$fecha_pregunta.'</td>
<td nowrap>&nbsp;</td>
<td nowrap>Fecha respuesta:</td>
<td nowrap>'
.$fecha_respuesta.'</td>
</tr> 

<tr>
<td>Consulta:</td>
<td>'
.$pregunta.'</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr> 

<tr>
<td>Respuesta:</td>
<td colspan="4">'
.$respuestax.'</td>
</tr>'
;
            
$rs1->movenext();
        }
    }
}


$guardar=$_POST['guardar'];
$datos='';
if(
strlen($guardar)==0$guardar=0;
         if(
$guardar){
         
$fechamodif=date('Y-m-d H:i:s');
         
$respuestaT=$_POST['respuestax'];        
         
$clase=$_POST['codclase']; 

            
$i=0;
            foreach (
$clase as $respuestaT){
             
$respuestaT1=$respuestaT[$i];
            
$sql4="update pregunta set respuesta='".$respuestaT1."', fecha_respuesta='".$fechamodif."' where codclase='".$codclase."'";
            
$rs4=$db->execute($sql4);
             
$i=$i+1;
             }
             }
$contenido=' <p><h2><b>Consultas</b></h2></p>
<table  width="100%" border="0" cellpadding="0" cellspacing="0">
'
.$fila3.'
</table><br> <br>
<table  width="100%" border="0" cellpadding="0" cellspacing="0">
'
.$fila4.'
</table> 
 '
;

$contenido=' <form name="frm_publicar" method="post" action="'.$pagina.'">
'
.$contenido.'

<p><input type="button" name="Button" value="Guardar" onClick="javascript:document.forms[0].guardar.value=1;this.form.submit();" >
<input name="guardar" type="hidden" id="guardar" value="0"></p>'
;
    
echo 
$contenido;

?>
como ven tengo problemas con el foreach... solo me graba o me repite el ultimo valor de la caja de texto.... osea si dentro de todas las respuesta del usuario solo 4 no tiene respondidas me aparecen todas sus respuestas con la caja de texto y hay coloco la respuesta pero me repite en todas despues cuando quiero verla...

ojala me ayuden si no entienden me preguntan y asi ojala hacer eso....


salu2
__________________
Una Vez Muerto el Perro.............Se acaba la Rabia :risa: