Ir para o conteúdo
fernvl007

Base de dados não funciona

Mensagens Recomendadas

fernvl007

Boas,

estou a construir um site, e estive a usar o WAMP para fazer de servidor local, e as coisas até corriam bem, fiz um formulário e a coisa começou a complicar, porque o formulário é suposto ir para a base de dados. Até aqui ainda me mexi, e as coisas apesar de darem alguns erros os dados eram inseridos numa tabela que criei no phpMyAdmin. Hoje coloquei no servidor online e a coisa complicou, importei a base de dados para o servidor e afins, mudei o código para o do servidor e os erros deixaram de apareçer, mas não entra registo nenhum na tabela, que pode ser?

A tabela que supostamente deveriam os dados ir ter chama-se "registo".

Este é o código:

<?php
$conect = mysql_connect("nome do servidor", "nomedoutilizadr", "senha");

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) &amp;&amp; ($_POST["MM_insert"] == "form2")) {
 $insertSQL = sprintf("INSERT INTO registo (id, bd_nome, bd_n_bi, bd_idade, bd_sexo, bd_morada, bd_cod_postal, bd_localidade, bd_telefone, bd_email, bd_n_acompanhantes, bd_refeicao, bd_mensagem) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['id'], "int"),
                      GetSQLValueString($_POST['bd_nome'], "text"),
                      GetSQLValueString($_POST['bd_n_bi'], "int"),
                      GetSQLValueString($_POST['bd_idade'], "int"),
                      GetSQLValueString($_POST['bd_sexo'], "text"),
                      GetSQLValueString($_POST['bd_morada'], "text"),
                      GetSQLValueString($_POST['bd_cod_postal'], "text"),
                      GetSQLValueString($_POST['bd_localidade'], "text"),
                      GetSQLValueString($_POST['bd_telefone'], "int"),
                      GetSQLValueString($_POST['bd_email'], "text"),
                      GetSQLValueString($_POST['bd_n_acompanhantes'], "int"),
                      GetSQLValueString($_POST['bd_refeicao'], "text"),
                      GetSQLValueString($_POST['bd_mensagem'], "text"));

 $db = mysql_select_db("nome_base_dados");
 $Result1 = mysql_query($registo);

 $insertGoTo = "/index.htm";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&amp;" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}
?>

Editado por brunoais
geshi + tag completamente errada removida

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

Pode ser muita coisa. Não dá erro nenhum?

Não :s dava erro de código na linha 56 e 57, depois inseri o nome e não dá mais o erro, mas os dados na tabela não inserem...no WAMP dava erro mas sempre inseria os dados na tabela

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

o local onde está o servidor é : "nome do servidor" ?

o utilizador da base de dados é : "nomedoutilizadr" ?

a palavra chave do utilizador é : "senha" ?

a base de dados chamasse : "nome_base_dados" ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

o local onde está o servidor é : "nome do servidor" ?

o utilizador da base de dados é : "nomedoutilizadr" ?

a palavra chave do utilizador é : "senha" ?

a base de dados chamasse : "nome_base_dados" ?

Não, tem nome, eu meti isso para facilitar a confusão que estou a ter, a ver se me está a escapar algo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

$db = mysql_select_db("nome_base_dados");

Troca esta linha para logo depois do mysql_connect.

Continua a não dar nem erro nem entrada na tabela, será que não me está a faltar algum caminho para a tabela? Será que só meter o nome da base de dados não será pouco?

então altera para

if (($Result1 = mysql_query($registo)) == null)
 echo "SQL error : ".mysql_error();

Onde?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

e isto, dá mensagem que foi inserido ?

if (($Result1 = mysql_query($registo)) == null)
 echo "SQL error : ".mysql_error();
else
 echo "Foi inserido";


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

Agora dá este erro mesmo antes de inserir algo

*Que é o caminho para a página de inscrição

$db = mysql_select_db("nome_base_dados");

Troca esta linha para logo depois do mysql_connect.

Desde que troquei como dizes, ficou a dar este erro "

mysql_select_db() expects parameter 2 to be resource, null given in

/home/vol9/alojamentogratuito.com/alo_12198399/htdocs/inscricoes.php

on line

3

Editado por fernvl007

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

$db = mysql_select_db("nome_base_dados", $conect);

Não dá o erro, mas dados também não inserem na tabela

Editado por fernvl007

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

e isto, dá mensagem que foi inserido ?

if (($Result1 = mysql_query($registo)) == null)
 echo "SQL error : ".mysql_error();
else
 echo "Foi inserido";


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

então o problema é anterior a isso :

print_r($_POST); // <------- verifica o que foi enviado
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

Actualmente o código com alguma alterações que foram colocadas aqui, não dá erro nenhum mas também não introduz os dados na base de dados

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

então o problema é anterior a isso :

print_r($_POST); // <------- verifica o que foi enviado
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

onde coloco esse código, ele não me está a funcionar

Continuo sem conseguir introduzir dados na base de dados, qualquer ajuda é bem-vinda.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

Acho que é melhor procurares saber sobre o que estás a tentar fazer, e depois vires com as dúvidas concretas.

Não consigo fazer um formulário do site cair na base de dados, é um formulário de inscrição para uma prova btt... Editado por fernvl007

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Se o todo não funciona, e como no PHP é fácil alterar e ver logo o resultado, porque não partes o processo que estás a criar em pequenos blocos até conseguir encontrar onde ele falha?

Aqui está um exemplo, para ver se estás mesmo ligado à base de dados :

$conect = mysql_connect("nome do servidor", "nomedoutilizadr", "senha") or die(mysql_error());
$db = mysql_select_db("nome_base_dados", $conect) or die(mysql_error());

Deixas só este código no ficheiro e abres, se correr mal vai aparecer uma mensagem de erro no ecrã.

Independe disto, mete sempre este bloco de código no início do PHP :

error_reporting(E_ALL);
ini_set('display_errors', 1);

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sEnte

Tens de ver se há incorências entre variaveis, e se as estás a inserir correctamente na BD, e não esquecer de aceder à mesma.


"If It Ain't Broke, Break it and build something Cooler!" Unknown

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

Se o todo não funciona, e como no PHP é fácil alterar e ver logo o resultado, porque não partes o processo que estás a criar em pequenos blocos até conseguir encontrar onde ele falha?

Aqui está um exemplo, para ver se estás mesmo ligado à base de dados :

$conect = mysql_connect("nome do servidor", "nomedoutilizadr", "senha") or die(mysql_error());
$db = mysql_select_db("nome_base_dados", $conect) or die(mysql_error());

Deixas só este código no ficheiro e abres, se correr mal vai aparecer uma mensagem de erro no ecrã.

Independe disto, mete sempre este bloco de código no início do PHP :

error_reporting(E_ALL);
ini_set('display_errors', 1);

Editado por fernvl007

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fernvl007

Este é o código no WAMP

<?php virtual('/Connections/registo.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
 if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
case "text":
  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  break;	
case "long":
case "int":
  $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  break;
case "double":
  $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  break;
case "date":
  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  break;
case "defined":
  $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  break;
 }
 return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
 $insertSQL = sprintf("INSERT INTO registo (id, bd_nome, bd_n_bi, bd_idade, bd_sexo, bd_morada, bd_cod_postal, bd_localidade, bd_telefone, bd_email, bd_n_acompanhantes, bd_refeicao, bd_mensagem) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
				   GetSQLValueString($_POST['id'], "int"),
				   GetSQLValueString($_POST['bd_nome'], "text"),
				   GetSQLValueString($_POST['bd_n_bi'], "int"),
				   GetSQLValueString($_POST['bd_idade'], "int"),
				   GetSQLValueString($_POST['bd_sexo'], "text"),
				   GetSQLValueString($_POST['bd_morada'], "text"),
				   GetSQLValueString($_POST['bd_cod_postal'], "text"),
				   GetSQLValueString($_POST['bd_localidade'], "text"),
				   GetSQLValueString($_POST['bd_telefone'], "int"),
				   GetSQLValueString($_POST['bd_email'], "text"),
				   GetSQLValueString($_POST['bd_n_acompanhantes'], "int"),
				   GetSQLValueString($_POST['bd_refeicao'], "text"),
				   GetSQLValueString($_POST['bd_mensagem'], "text"));

 mysql_select_db($database_registo, $registo);
 $Result1 = mysql_query($insertSQL, $registo) or die(mysql_error());

 $insertGoTo = "/index.htm";
 if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}
?>

Este é o código no WAMP

<?php virtual('/Connections/registo.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
 if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
case "text":
  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  break;	
case "long":
case "int":
  $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  break;
case "double":
  $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  break;
case "date":
  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  break;
case "defined":
  $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  break;
 }
 return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
 $insertSQL = sprintf("INSERT INTO registo (id, bd_nome, bd_n_bi, bd_idade, bd_sexo, bd_morada, bd_cod_postal, bd_localidade, bd_telefone, bd_email, bd_n_acompanhantes, bd_refeicao, bd_mensagem) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
				   GetSQLValueString($_POST['id'], "int"),
				   GetSQLValueString($_POST['bd_nome'], "text"),
				   GetSQLValueString($_POST['bd_n_bi'], "int"),
				   GetSQLValueString($_POST['bd_idade'], "int"),
				   GetSQLValueString($_POST['bd_sexo'], "text"),
				   GetSQLValueString($_POST['bd_morada'], "text"),
				   GetSQLValueString($_POST['bd_cod_postal'], "text"),
				   GetSQLValueString($_POST['bd_localidade'], "text"),
				   GetSQLValueString($_POST['bd_telefone'], "int"),
				   GetSQLValueString($_POST['bd_email'], "text"),
				   GetSQLValueString($_POST['bd_n_acompanhantes'], "int"),
				   GetSQLValueString($_POST['bd_refeicao'], "text"),
				   GetSQLValueString($_POST['bd_mensagem'], "text"));

 mysql_select_db($database_registo, $registo);
 $Result1 = mysql_query($insertSQL, $registo) or die(mysql_error());

 $insertGoTo = "/index.htm";
 if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}
?>

que funciona

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.