Jump to content


Photo

Ajuda Com Sql


  • Faça o login para participar
4 replies to this topic

#1 kabonga

kabonga

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 16/07/2008, 13:47

Eu queria que, por exemplo, inserimos os dados todos no form e enviamos para a base de dados. Mas enganei-me na atribuição da nota: coloquei o 4 mas queria dar 3. Tornava a inserir os dados do aluno, mas colocava a nota correcta, e o php alterava a nota que já existia na base de dados.

Como posso fazer isso?

Ficheiro lancar.php

<?php
	header ('Content-type: text/xml');
	echo '<?xml version="1.0" encoding="utf-8"?>';
	echo '<?xml-stylesheet type="text/xsl" href="lancar.xsl"?>';


$server = "localhost";
$server_ip = "localhost";
$user = "root";
$pass = "";
$db = "bdescola";

$cod_professor = $_POST["cod_professor"];
$cod_aluno = $_POST["cod_aluno"];
$cod_disciplina = $_POST["cod_disciplina"];
$nota = $_POST["nota"];
$data = $_POST["data"];

?>
<Lancar>

<?php
	if($_REQUEST){
		if ($_REQUEST['cod_professor'] and $_REQUEST['cod_disciplina'] and $_REQUEST['cod_aluno'] and $_REQUEST['nota'] and $_REQUEST['data'])
		{	 
		
			$connection = mysql_connect($server, $user, $pass) or die ("Unable to connect!");
			mysql_select_db($db) or die ("Unable to select database!");

			$sql1  = "INSERT INTO lancarnotas (cod_professor,cod_aluno,cod_disciplina,nota,data) VALUES ('$cod_professor','$cod_aluno','$cod_disciplina','$nota','$data')";
			$resultado1 = mysql_query($sql1) or die (mysql_error());
				
			
			echo '<msg>Dados enviados com Sucesso!</msg>';
			echo "<cod_professor></cod_professor>";
			echo "<cod_disciplina></cod_disciplina>";
			echo "<cod_aluno></cod_aluno>";
			echo "<nota></nota>";
			echo "<data></data>";
					
		}
		else
		{	 
			echo '<erro>Campos por preencher!</erro>';
			echo "<cod_professor>$cod_professor</cod_professor>";
			echo "<cod_disciplina>$cod_disciplina</cod_disciplina>";
			echo "<cod_aluno>$cod_aluno</cod_aluno>";
			echo "<nota>$nota</nota>";
			echo "<data>$data</data>";
		}
		
}else{

			echo "<cod_professor></cod_professor>";
			echo "<cod_disciplina></cod_disciplina>";
			echo "<cod_aluno></cod_aluno>";
			echo "<nota></nota>";
			echo "<data></data>";

}
	
?>
</Lancar>



ficheiro lancar.xml

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="lancar.xsl"?>

<Lancar>
	<cod_professor></cod_professor>
	<cod_disciplina></cod_disciplina>
	<cod_aluno></cod_aluno>
	<nota></nota>
	<data></data>
	<erro></erro>
	<msg></msg>
</Lancar>



ficheiro lancar.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="base.xsl"/>	

	<xsl:template match="Lancar">
		<form action="lancar.php" method="post">
			<xsl:apply-templates select="cod_professor"/>
			<xsl:apply-templates select="cod_disciplina"/>
			<xsl:apply-templates select="cod_aluno"/>
			<xsl:apply-templates select="nota"/>
			<xsl:apply-templates select="data"/><br/>
			<input type="submit" name="botao" value="Enviar"/>
			<br/>
			<xsl:apply-templates select="msg"/>
			<xsl:apply-templates select="erro"/>
		</form>
	</xsl:template>
	
	<xsl:template match="cod_professor">
		Codigo do Professor: <input type="text" name="cod_professor" value="{text()}"/>
		<br/>
	</xsl:template>
  
	<xsl:template match="cod_disciplina">
		Codigo da Disciplina: <input type="text" name="cod_disciplina" value="{text()}"/>
		<br/>
	</xsl:template>
  
	<xsl:template match="cod_aluno">
		Codigo do Aluno: <input type="text" name="cod_aluno" value="{text()}"/>
		<br/>
	</xsl:template>
  
	<xsl:template match="nota">
		Nota: <input type="text" name="nota" value="{text()}"/>
		<br/>
	</xsl:template>
  
	<xsl:template match="data">
		Data: <input type="text" name="data" value="{text()}"/>
		<br/>
	</xsl:template>
	
</xsl:stylesheet>


#2 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 16/07/2008, 13:51

UPDATE tabela SET coluna = valor WHERE campo = condicao
? :blink:

#3 kabonga

kabonga

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 16/07/2008, 14:02

Deixa ver se me consigo explicar melhor.

Esse código gera um formulário onde temos de inserir vários campos: professor, disciplina, aluno, nota e data.
Se inserir todos os dados, clico no botão enviar e ele envia para a base de dados. Se um dos campos estiverem vazios, ele devolve a tabela com a indicação que faltam campos e não envia para a base de dados.

O que pretendo é se, no caso de estar a enviar os mesmos dados, por exemplo, enviar os dados de um aluno, mudando apenas a nota, o php actualizasse a base de dados, alterando a nota inicial pela que acabei de inserir.

#4 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 16/07/2008, 14:08

REPLACE?

#5 kabonga

kabonga

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 16/07/2008, 14:13

Parece que seja o replace... mas eu não percebo nada disto! lol

Precisava que indicassem o código como tenho de o colocar, adaptado ao meu trabalho.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq