• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Llaverola

CICLO WHILE E POST

8 mensagens neste tópico

Por favor vejam o que esta mal. o meu POST n esta a dar :(

<?php
$i=0;
while($reg=mysql_fetch_array($resultado)){				
			$nomeA=$reg["aluno"];
			print "<tr><td style='text-align:center;'>{$nomeA}</td>
    <td style='text-align:center;'><input type='text' id='nota$i' name='nota' class='input-box'><br></td>
<td style='text-align:center;'><input type='text' id='tipo$i' name='tipo' class='input-box'><br></td>
<td style='text-align:center;'><input type='text' id='data$i' name='data' class='input-box'><br></td>
</tr>";
echo '--------------------------------------------OLHA O '.$nomeA;


     $nota = $_POST['nota.$i.'];
	 $tipo = $_POST['tipo.$i.'];
	 $data = $_POST['data.$i.'];


	 if(($nota != '') && ($tipo!='') && ($data !=''))
	 {
	 $query="INSERT INTO nota VALUES($nomeA,$disciplina,$nota,'$tipo','$data')"; 
         $resultado=mysql_query($query) or die(mysql_error());
	 echo 'Dados inseridos com sucesso';
	 }$i++;	
        }
        print("</table>");
	}?>


	<div style="text-align:center;">
    <div style="margin: 0px auto;width:25em;">
    <input type="submit" name="ok-button" value="Enviar" class="submit-button">
	</fieldset>
	</div>
	</div>
    </form>

<?php

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

qual o erro que te da??? podes fornecer o codigo de onde provem o post???

$_POST['nota.$i.'];

Tu podes fazer isso dentro do POST ?

supostamente axo que nao :|

basta

$_POST['nota'];

edit: atenção que na pagina anterior o method da form tem que estar post :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$_POST['nota.$i.'];

Tu podes fazer isso dentro do POST ?

Pode, aliás, isso até funcionava caso existisse esse campo. O que ele deve querer é $_POST["nota$i"] ou $_POST['nota'.$i], digo eu.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O codigo é este:

<?php
$novas = explode(",", $_POST['tabela']);
$disciplina=$novas[0];
$turma = $novas[1];

$pesquisa= "SELECT aluno FROM inscricao WHERE turma='$turma' AND disciplina ='$disciplina'"; 
$resultado=mysql_query($pesquisa) or die(mysql_error());
$num=mysql_num_rows($resultado);

print("<table>");
if ($resultado){

        print("<table width=20% align=center border=4 top:10em text-align=center>");
        print("<tr bgcolor=Silver>
	        <td style='text-align:center;'><h5>Numero</h5></td>
			<td style='text-align:center;'><h5>Nota</h5></td>
			<td style='text-align:center;'><h5>Tipo</h5></td>
			<td style='text-align:center;'><h5>Data</h5></td>
	</tr>");

?>

<form name='loginform' method='post'>
<?php
$i=0;
while($reg=mysql_fetch_array($resultado)){				
			$nomeA=$reg["aluno"];
			print "<tr><td style='text-align:center;'>{$nomeA}</td>
    <td style='text-align:center;'><input type='text' id='nota$i' name='nota' class='input-box'><br></td>
<td style='text-align:center;'><input type='text' id='tipo$i' name='tipo' class='input-box'><br></td>
<td style='text-align:center;'><input type='text' id='data$i' name='data' class='input-box'><br></td>
</tr>";
echo '--------------------------------------------OLHA O '.$nomeA;


     $nota = $_POST["nota$i"];
	 $tipo = $_POST["tipo$i"];
	 $data = $_POST["data$i"];


	 if(($nota != '') && ($tipo!='') && ($data !=''))
	 {
	 $query="INSERT INTO nota VALUES($nomeA,$disciplina,$nota,'$tipo','$data')"; 
         $resultado=mysql_query($query) or die(mysql_error());
	 echo 'Dados inseridos com sucesso';
	 }$i++;	
        }
        print("</table>");
	}?>


	<div style="text-align:center;">
    <div style="margin: 0px auto;width:25em;">
    <input type="submit" name="ok-button" value="Enviar" class="submit-button">
	</fieldset>
	</div>
	</div>
    </form>

<?php

ao inicio eu listo os alunos pertencentes a uma determinada disciplina e turma. ate aí tudo bem. mas depois clico em ENVIAR, que é o form la em baixo mas n envia nd pa BD. n sei como enviar td pa BD duma so vez. entendem?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que é destas tres linhas

<input type='text' id='nota$i' name='nota' class='input-box'><br></td>
<td style='text-align:center;'><input type='text' id='tipo$i' name='tipo' class='input-box'><br></td>
<td style='text-align:center;'><input type='text' id='data$i' name='data' class='input-box'><br></td>

Penso que quererias

<input type='text' id='nota$i' name='nota$i' class='input-box'><br></td>
<td style='text-align:center;'><input type='text' id='tipo$i' name='tipo$i' class='input-box'><br></td>
<td style='text-align:center;'><input type='text' id='data$i' name='data$i' class='input-box'><br></td>

Esqueceste-te dos $i nos nomes (que é o que interessa, as classes não interessam para o PHP). Experimenta assim

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, dei algumas voltas no codigo, so que nao pude testar uma vez que nao tenho a base de dados, nem passwords iguais, etc... por isso peço-te que testes, e se nao funcionar, diz se há alguma mensagem de erro.

<?php
$novas = explode(",", $_POST['tabela']);
$disciplina=$novas[0];
$turma = $novas[1];

$pesquisa= "SELECT aluno FROM inscricao WHERE turma='$turma' AND disciplina ='$disciplina'"; 
$resultado=mysql_query($pesquisa) or die(mysql_error());
$num=mysql_num_rows($resultado);

//se houver linhas
if ($num>0){
echo "
<form name='loginform' method='post'>
<table width='20%' align='center' border='4' style='top:10em; text-align=center'>
	<tr bgcolor='Silver'>
	        <td style='text-align:center;'><h5>Numero</h5></td>
			<td style='text-align:center;'><h5>Nota</h5></td>
			<td style='text-align:center;'><h5>Tipo</h5></td>
			<td style='text-align:center;'><h5>Data</h5></td>
	</tr>
";

$i=0;
while($reg=mysql_fetch_array($resultado)){				
	$nomeA=$reg["aluno"];
	echo "
	<tr>
		<td style='text-align:center;'>{$nomeA}</td>
	    <td style='text-align:center;'><input type='text' id='nota' name='nota{$i}' class='input-box'><br></td>
		<td style='text-align:center;'><input type='text' id='tipo' name='tipo{$i}' class='input-box'><br></td>
		<td style='text-align:center;'><input type='text' id='data' name='data{$i}' class='input-box'><br></td>
	</tr>
	";
	//suponho que isto seja para testes, mas tens no echo de cima...
	echo '--------------------------------------------OLHA O '.$nomeA;

    $nota = $_POST["nota$i"];
	$tipo = $_POST["tipo$i"];
	$data = $_POST["data$i"];

	//a funcao empty do php verifica se as variaveis estao vazias, como pretendes. carrega na funcao para ver mais informacoes
	if(empty($nota) or empty($tipo) or empty($data)){
		//gera-se um erro, porque algo esta vazio: podes mudar mais tarde e so para testar...
		echo "Os dados nao foram todos inseridos!";
	}else{
		$query="INSERT INTO nota VALUES($nomeA,$disciplina,$nota,'$tipo','$data')"; 
        $resultado=mysql_query($query) or die(mysql_error());
		echo "Dados inseridos com sucesso";
	}
	$i++;
    }
    
echo "</table>";
}
?>


	<div style="text-align:center;">
    <div style="margin: 0px auto;width:25em;">
    <input type="submit" name="ok-button" value="Enviar" class="submit-button">
	</fieldset>
	</div>
	</div>
    </form>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora