1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em php, xml e mysql

Discussão em 'Web Development' iniciada por kabonga, 10 de Julho de 2008. (Respostas: 10; Visualizações: 814)

  1. kabonga

    kabonga Power Member

    Boas,

    Alguém que está disposto a ajudar-me num trabalho que use php, xml, xsd, xsl e mysql?

    Se alguém estiver à vontade com estas ferramentas, e disposto a dar uma vista de olhos, agradecia.

    Obrigado.
     
  2. shello

    shello Moderador
    Staff Member

    Se tens dúvidas talvez seja melhor colocá-las aqui. Dúvidas específicas.
     
  3. kabonga

    kabonga Power Member

    A primeira dúvida é como uso o php para gerar xml?

    Já andei à procura e encontro muitos tutoriais... mas nenhum funciona para o meu caso! :(

    O meu xml é este:

    <Lancar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="lancar.xsd">
    <cod_professor>
    <nome></nome>
    <morada></morada>
    <cod_postal></cod_postal>
    <localidade></localidade>
    <biprofessor></biprofessor>
    <contacto></contacto>
    </cod_professor>
    <cod_disciplina></cod_disciplina>
    <cod_aluno></cod_aluno>
    <nota></nota>
    <data></data>
    </Lancar>

    Mas tem de ser gerado por um ficheiro php... e não sei como o fazer!
     
  4. shello

    shello Moderador
    Staff Member

    php.net/xml

    No php.net tens quase tudo o que precisas sobre PHP :)
     
  5. kabonga

    kabonga Power Member

    Aí já andei a ver... Mas como o prof nunca falou no parse... não usei!

    Preciso mesmo que alguém me diga: usas este php...... para gerar esse xml!
     
  6. AliFromCairo

    AliFromCairo Power Member

    Boas, tens bastantes exemplos aqui.
     
  7. kabonga

    kabonga Power Member

    Essa parte já consegui!

    Agora precisava que depois de submeter um formulário numa base de dados surgisse um msg a dizer: "dados inseridos com sucesso" e um botão para começar o formulário outra vez.

    o código que tenho é este:

    Código:
    <?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"];
    
    ?>
    
    <?php
    	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());
    		
    		$sucesso="OK";
    					
    	} 
    	
    	
    	if ($_REQUEST['cod_professor'] or $_REQUEST['cod_disciplina'] or $_REQUEST['cod_aluno'] or $_REQUEST['nota'] or $_REQUEST['data'])
    	{ 	
    		$sucesso="Faltam parametros";
    	}
    		
    	
    	
    	echo "<Lancar>";
    	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>";
    	echo "</Lancar>";
    	
    	
    
    ?>
     
  8. AliFromCairo

    AliFromCairo Power Member

    Hmm, não te aconselho a fazeres output de XML como estás a fazer. A longo prazo, torna-se bastante difícil de manter.

    Em relação à outra questão, se for possível, coloca aqui o formulário que estás a utilizar.
     
  9. kabonga

    kabonga Power Member

    Se fosse com html... já tinha o trabalho quase feito! Mas o prof exige que seja o resultado sempre em XML!! Enfim...

    O XSL associado a esse php é este:
    Já consigo inserir os dados da base de dados, apenas quando os campos do formulário estão preenchidos, mas não consigo obter a mensagem: "dados enviados com sucesso!" ou, se faltar algum campo por preencher, visualizar a mensagem: "Campos por preencher".

    Como posso obter essas mensagens?
     
  10. kabonga

    kabonga Power Member

    Já consegui que surgissem as mensagens de erro... mas agora elas aparecem sempre! Na primeira vez que mostro o formulário... não convém que a msg "Faltam dados" surgisse! Como posso corrigir isso?
    Código:
    <?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>
     
  11. kabonga

    kabonga Power Member

    Já consegui resolver esse problema.
    Mas agora apareceu outro e não sei como fazer!

    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?
     

Partilhar esta Página