Foros del Web » Programando para Internet » PHP »

No me inserta 3 campos

Estas en el tema de No me inserta 3 campos en el foro de PHP en Foros del Web. Hola, Tengo un problemilla. Os explico un poco. Estoy haciendo una base para una academia, y al final del curso hacen el cierre y necesitan ...
  #1 (permalink)  
Antiguo 28/06/2007, 06:42
 
Fecha de Ingreso: marzo-2004
Mensajes: 22
Antigüedad: 20 años, 1 mes
Puntos: 0
No me inserta 3 campos

Hola, Tengo un problemilla. Os explico un poco. Estoy haciendo una base para una academia, y al final del curso hacen el cierre y necesitan entrar las horas de asistencia, el porcentaje y si es apto o no. Pues bien, no hay manera de que me haga el insert de estos tres campos "horesasis", "perasis", "apte". Sí me inserta los alumnos pero en estos tres campos me pone 0. Os pongo el trozo de codigo que no me funciona. Si quereis lo puedo poner todo. Gracias de antemano

Código:
 <?php 
   
   if($tip=="INS"){
   
  
		
		$sql="SELECT a.idalumne,a.nomalumne,a.cognom,a.dni,a.telefonmovil,ac.idalumne,ac.idcurs FROM defalumnes a,relalumnescurs ac WHERE a.idalumne=ac.idalumne AND ac.idcurs=$idcurs AND ac.estat='i'";
		$res=mysql_query($sql) or die('La consulta fall&oacute;: ' . mysql_error());
		echo "<TABLE BORDER='0'>";
             
              echo "<TR><TD bgcolor=#999999 >Nom</TD>
			  			<TD bgcolor=#999999>Cognmoms</TD>
						<TD bgcolor=#999999>DNI</TD>
						<TD bgcolor=#999999>Tel</TD>
						<TD bgcolor=#999999>Hores assis</TD>
						<TD bgcolor=#999999>Percentatge</TD>
						<TD bgcolor=#999999>Apte</TD>
					</TR>";
              //Canviem el color de cada fila de la taula
			  $col=false;
	$bgcol="";
	while ($r= mysql_fetch_array($res, MYSQL_ASSOC)){
	 

	if ($col){ 
			$bgcol="#FFFFE1"; 
		}else{
			$bgcol="#FFFFFF";
		}
		$col=!$col;
		
	echo "<TR font>";
              //Generem els valors de la taula
              echo "<TD bgcolor=$bgcol width=150>".$r["nomalumne"]."</TD>";
			  echo "<TD bgcolor=$bgcol width=200>".$r["cognom"]."</TD>";
			  echo "<TD bgcolor=$bgcol width=120>".$r["dni"]."</TD>";
			  echo "<TD bgcolor=$bgcol width=120>".$r["telefonmovil"]."</TD>";
			  echo "<TD bgcolor=$bgcol width=100><input type=text name=hores size=2></TD>";
			  echo "<TD bgcolor=$bgcol width=100><input type=text name=per size=2></TD>";
			  echo "<TD bgcolor=$bgcol width=100><input type=text name=apt size=2></TD>";
      
    echo "</TR>";
		$idalumne=$r["idalumne"];
		$idcurs=$r["idcurs"];
		
		
				$sql3="INSERT INTO relalumnestancament (idalumne,idcurs,horesasis,perasis,apte) VALUES ('$idalumne','$idcurs','$hores','$per','$apt')";
		mysql_query($sql3) or die('L\'Insert del alumnes ha fallat: ' . mysql_error());
		
		
	}
	}
  #2 (permalink)  
Antiguo 28/06/2007, 07:00
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: No me inserta 3 campos

Harto complejo tu codigo... te sugiero que imprimas las variables $sql y veas cual es la que no tiene datos... luego rastrear de donde vienen los datos para construir eso e imprimir una a una las variables justo antes de la ejecucion del sql.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 29/06/2007, 08:23
 
Fecha de Ingreso: marzo-2004
Mensajes: 22
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: No me inserta 3 campos

Creo que el problema esta en que no me coge los valores cuando hace el while, ya que si le mando una sola variable sí la coge pero no la inserta. He probado ya mil cosas y no encuentro la manera. Aquí pongo todo el codigo por si a alguien se le enciende la bombilla. Explico un poco el codigo:

Basicamente, genero una consulta u otra dependiendo de el valor de la variable tip. Si tip ==ins, genera la consulta de los alumnos del curso e inserta los valores (o deberia, porque es lo que no me funciona) de los cuadros de texto en otra tabla. Si tip==pre, es que aún no se ha realizado el cierre y prepara la tabla con los datos para ser insertados. Si tip no es ni ins ni pre, quiere decir que ya se cerró el curso y me muestra los datos que ya se entraron. Ese es mi razonamiento, aunque puede que sea eso lo que falle. Alguna sugerencia?

Código PHP:
<?php 
   
  
if($tip=="INS"){
    
$sql="SELECT a.idalumne,a.nomalumne,a.cognom,a.dni,a.telefonmovil,ac.idalumne,ac.idcurs FROM defalumnes a,relalumnescurs ac WHERE a.idalumne=ac.idalumne AND ac.idcurs=$idcurs AND ac.estat='i'";
        
$res=mysql_query($sql) or die('La consulta fall&oacute;: ' mysql_error());
        echo 
"<TABLE BORDER='0'>";
             
        echo 
"<TR><TD bgcolor=#999999 >Nom</TD>
            <TD bgcolor=#999999>Cognmoms</TD>
            <TD bgcolor=#999999>DNI</TD>
            <TD bgcolor=#999999>Tel</TD>
            <TD bgcolor=#999999>Hores assis</TD>
            <TD bgcolor=#999999>Percentatge</TD>
            <TD bgcolor=#999999>Apte</TD>
        </TR>"
;
              
//Canviem el color de cada fila de la taula
              
$col=false;
    
$bgcol="";
    
    while (
$rmysql_fetch_array($resMYSQL_ASSOC)){
     

    if (
$col){ 
            
$bgcol="#FFFFE1"
        }else{
            
$bgcol="#FFFFFF";
        }
        
$col=!$col;
        
        
?>
<TR>
              
    <TD bgcolor=<?php echo $bgcol;?> width=150><?php echo $r["nomalumne"];?></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=200><?php echo $r["cognom"];?></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=120><?php echo $r["dni"];?></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=120><?php echo $r["telefonmovil"];?></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=100><input type="text" name="hores2" size=2></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=100><input type="text" name="per" size=2></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=100><input type="text" name="apt" size=2></TD>
         
</TR>
    <?
      
echo "</TR>";
        
$idalumne=$r["idalumne"];
        
$idcurs=$r["idcurs"];

        
$sql3="INSERT INTO relalumnestancament (idalumne,idcurs,horesasis,perasis,apte) VALUES ('$idalumne','$idcurs','$hores2','$per','$apt')";
        
mysql_query($sql3) or die('L\'Insert del alumnes ha fallat: ' mysql_error());
        
        
    }
    }else if(
$tip=='PRE'){
        
$sql="SELECT a.idalumne,a.nomalumne,a.cognom,a.dni,a.telefonmovil,ac.idalumne,ac.idcurs FROM defalumnes a,relalumnescurs ac WHERE a.idalumne=ac.idalumne AND ac.idcurs=$idcurs AND ac.estat='i'";
        
$res=mysql_query($sql) or die('La consulta fall&oacute;: ' mysql_error());
        echo 
"<TABLE BORDER='0'>";
              
//
        
echo "<TR><TD bgcolor=#999999 >Nom</TD>
                  <TD bgcolor=#999999>Cognmoms</TD>
                <TD bgcolor=#999999>DNI</TD>
                <TD bgcolor=#999999>Tel</TD>
                <TD bgcolor=#999999>Hores assis</TD>
                <TD bgcolor=#999999>Percentatge</TD>
                <TD bgcolor=#999999>Apte</TD>
            </TR>"
;
              
//empieza el bucle que coloca las líneas del listado
              
$col=false;
    
$bgcol="";
    while (
$rmysql_fetch_array($resMYSQL_ASSOC)){
    
    if (
$col){ 
            
$bgcol="#FFFFE1"
        }else{
            
$bgcol="#FFFFFF";
        }
        
$col=!$col;
        
?>
<TR>
              
    <TD bgcolor=<?php echo $bgcol;?> width=150><?php echo $r["nomalumne"];?></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=200><?php echo $r["cognom"];?></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=120><?php echo $r["dni"];?></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=120><?php echo $r["telefonmovil"];?></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=100><input type="text" name="hores3" size=2></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=100><input type="text" name="per" size=2></TD>
    <TD bgcolor=<?php echo $bgcol;?> width=100><input type="text" name="apt" size=2></TD>
      
</TR>
    <?
     
    
}
    }else{
    
$sql="SELECT a.idalumne,a.nomalumne,a.cognom,a.dni,a.telefonmovil,ac.idalumne,ac.idcurs,at.idcurs, at.idalumne,at.horesasis,at.perasis,at.apte FROM defalumnes a,relalumnescurs ac, relalumnestancament at WHERE a.idalumne=ac.idalumne AND at.idcurs=ac.idcurs AND at.idalumne=ac.idalumne AND ac.idcurs=$idcurs AND ac.estat='i'";
        
$res=mysql_query($sql) or die('La consulta fall&oacute;: ' mysql_error());
        echo 
"<TABLE BORDER='0'>";
              
        echo 
"<TR><TD bgcolor=#999999 >Nom</TD>
                  <TD bgcolor=#999999>Cognmoms</TD>
                <TD bgcolor=#999999>DNI</TD>
                <TD bgcolor=#999999>Tel</TD>
                <TD bgcolor=#999999>Hores assis</TD>
                <TD bgcolor=#999999>Percentatge</TD>
                <TD bgcolor=#999999>Apte</TD>
            </TR>"
;
              
              
$col=false;
    
$bgcol="";
    while (
$rmysql_fetch_array($resMYSQL_ASSOC)){
    if (
$col){ 
            
$bgcol="#FFFFE1"
        }else{
            
$bgcol="#FFFFFF";
        }
        
$col=!$col;
    echo 
"<TR font>";
              
//Generem els valors de la taula
    
echo "<TD bgcolor=$bgcol width=150>".$r["nomalumne"]."</TD>";
    echo 
"<TD bgcolor=$bgcol width=200>".$r["cognom"]."</TD>";
    echo 
"<TD bgcolor=$bgcol width=120>".$r["dni"]."</TD>";
    echo 
"<TD bgcolor=$bgcol width=120>".$r["telefonmovil"]."</TD>";
    echo 
"<TD bgcolor=$bgcol width=100><input type=text name=hores size=2 value=".$r["horesasis"]."></TD>";
    echo 
"<TD bgcolor=$bgcol width=100><input type=text name=hores size=2 value=".$r["perasis"]."></TD>";
    echo 
"<TD bgcolor=$bgcol width=100><input type=text name=hores size=2 value=".$r["apte"]."></TD>";
      
    echo 
"</TR>";
        }
    
    }
  
?>
  #4 (permalink)  
Antiguo 29/06/2007, 08:37
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: No me inserta 3 campos

Pues todo el "código" parace estar muy bien, pero me queda la gran duda en donde estas inicilizando las variables que usas:

$tip,$hores2,$per,$apt

el problema podria radicar aqui, a que quizas tus variables no estan debidamente inicializadas.

Saludillos.
  #5 (permalink)  
Antiguo 29/06/2007, 08:55
 
Fecha de Ingreso: marzo-2004
Mensajes: 22
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta Re: No me inserta 3 campos

son los nombres de los cuadros de texto que hay unas 10 lineas mas arriba.
Continuo pensando que el problema está en cómo enviar los datos de 15 alumnos (es decir 15 valores para una sola variable) y recoger esos mismos valores para que los inserte, pero no sé como hacerlo. Es como entrar 3 registros a la vez pero con un unico formulario. Ahí es donde no veo como hacerlo.
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 19:53.