Jump to content
fernvl007

Base de dados não funciona

Recommended Posts

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));
}
?>

Edited by brunoais
geshi + tag completamente errada removida

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
HappyHippyHippo

então altera para

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


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

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Edited by fernvl007

Share this post


Link to post
Share on other sites
fernvl007

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

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

Edited by fernvl007

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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... Edited by fernvl007

Share this post


Link to post
Share on other 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);

Edited by yoda

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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);

Edited by fernvl007

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.