Boas,
estou a ter dificuldade em inserir um form na bd. Não apresenta nenhum erro, mas quando faço enviar faz tipo refresh à página. o código onde esta o form é este:
Codigo Form:
<h3>Inserir Cliente</h3>
<?php
require_once("insertdb.php"); //inclusao do arquivo com a funcao
mysql_connect("localhost","nome_da_bd","password"); //conexão com o banco de dados.
mysql_select_db("teste"); //Definição do banco de dados a ser usado.
if(isset($_POST['campo1'])){ //Testa se o form foi postado
if(insertDb($_POST,"teste")){ //Chama a função
echo "Dados inseridos com sucesso!";
}
else{
echo "Falha ao inserir os dados!";
}
}
else{ //se não foi postado imprime o form
?>
<form method="post" id="info" action="<?$_SERVER['PHP_SELF'];?>">
Nome Cliente: <input type="text" name="cliente"><br>
Morada: <input type="text" name="morada"><br>
N. contribuinte: <input type="text" name="contribuinte"><br>
<input type="submit" value="Enviar"><br>
<!-- Importante: O submit nao pode ter a propriedade "name", senão dará errado!)-->
</form>
<?php
}
?>
Em insertdb.php tenho o seguinte código:
<?
function insertDb($info,$table){
$count = 1; //Contador para auxiliar na colocação das virgula
foreach($info as $key=>$value){
$fields .= $key; //Montagem da query
$values .= "'".$value."'"; //Montagem da query
if($count < sizeof($info)){
$fields .= ","; //Inserção das virgulas
$values .= ","; //Inserção das virgulas
}
$count++;
}
mysql_query("INSERT INTO $table($fields) VALUES($values)"); //Realização da query
return (mysql_affected_rows() == 1) ? true : false; //Testa se a linha foi inserida no BD
}
?>
SQL:
CREATE TABLE `teste` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cliente` TEXT NOT NULL ,
`morada` TEXT NOT NULL ,
`contribuinte` TEXT NOT NULL
) ENGINE = MYISAM ;
Obrigado:)