Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rubens2009

[Resolvido] Adicionar novos campos em uma tabela

Recommended Posts

Boa noite.

 

Estou tentando inserir novos campos em uma tabela e quero exibir o conteudo deles no site. Como nao entendo de PHP/SQL eu tentei duplicar um campo que possui as mesmas características dos novos campos que quero criar(Ex.: campo com o nome do site) e consegui. O problema é que não estou conseguindo exibir o conteúdo desses novos campos no site usando <?echo $nomedocampo;?>.

 

Nome da Tabela: adminsettings

Nomes dos novos campos: giftbonus1, giftbonus2, giftbonus3

Tipo de conteúdo dos novos campos: texto

Nome dos novos campos: giftbonus1p, giftbonus2p, giftbonus3p

Tipo de conteúdo dos novos campos: valor em moeda

 

A página do site onde irei mostrar o conteúdo desses campos já possui códigos que exibem os campos já existentes na tabela adminsettings(como: <?echo $sitename;?>). Portanto, será necessário apenas usar <?echo $nomedocampo;?> para mostrar o conteúdo correspondente de cada um dos novos campos que quero criar, correto?!

 

Código que cria a tabela adminsettings/os campos e o conteúdo dos campos.

CREATE TABLE IF NOT EXISTS `adminsettings` (
  `sitename` text,
  `siteurl` text,
  `Email` text,
  `Password` varchar(75) default NULL,
  `Alertpay` varchar(75) default NULL,
  `Inpays` varchar(75) default NULL,
  `Sfipay` varchar(75) default NULL,
  `profee` float(8,2) default NULL,
  `levels` int(10) unsigned NOT NULL,
  `level1` float(8,2) default NULL,
  `level2` float(8,2) default NULL,
  `level3` float(8,2) default NULL,
  `level4` float(8,2) default NULL,
  `level5` float(8,2) default NULL,
  `level6` float(8,2) default NULL,
  `level7` float(8,2) default NULL,
  `level8` float(8,2) default NULL,
  `level9` float(8,2) default NULL,
  `level10` float(8,2) default NULL,
  `forcedmatrix` int(10) unsigned NOT NULL,
  `duration` int(10) unsigned NOT NULL,
  `signupbonus` float(8,2) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `adminsettings`
--

INSERT INTO `adminsettings` (`sitename`, `siteurl`, `Email`, `Password`, `Alertpay`, `Inpays`, `Sfipay`, `profee`, `levels`, `level1`, `level2`, `level3`, `level4`, `level5`, `level6`, `level7`, `level8`, `level9`, `level10`, `forcedmatrix`, `duration`, `signupbonus`) VALUES
('NOMEDOSITE', 'http://www.site.com', 'nome@email.com', 'pass', 'nome@email.com', 'nome@email.com', 'nome@email.com', 15.00, 10, 2.00, 3.00, 3.00, 2.00, 1.00, 1.00, 1.00, 1.00, 1.00, 3.00, 4, 30, 5.00);

Se puderem ajudar, agradeço, pois não consegui entender o que estou fazendo de errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde.

 

Para adicionar novos campos em uma tabela já existente, utilize o alter table como o Motta indicou. Exemplo:

 

ALTER TABLE nome-tabela ADD nome-campo tipo-campo not null;

Para exibir os dados você precisa fazer um SELECT e tratar via PHP. Se sua dúvida é no select poste aqui para nós ajudarmos, caso contrário abra um tópico na área de PHP pedindo auxílio.

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde.

 

Para adicionar novos campos em uma tabela já existente, utilize o alter table como o Motta indicou. Exemplo:

 

ALTER TABLE nome-tabela ADD nome-campo tipo-campo not null;

Para exibir os dados você precisa fazer um SELECT e tratar via PHP. Se sua dúvida é no select poste aqui para nós ajudarmos, caso contrário abra um tópico na área de PHP pedindo auxílio.

 

:D

 

Eu usei o phpMyAdmin pra criar o novo campo na tabela, pois e mais facil pra mim dessa maneira justamente por nao entender sobre o assunto.

Fiz o seguinte:

 

1° Abri a estrutura da tabela adminsettings;

2° Cliquei em "Adicionar 1 campo No final da tabela;

3° Digitei giftbonus1 em Nome do campo;

4° Marquei as opções: Tipo(String text), Padrao(NULL), Collation(latin1_swedish_ci), Nulo(sim). Essa e a mesma configuraçao do campo sitename, siteurl e Email.

 

Depois disso eu abri o adminsettings e cliquei em editar, e digitei um texto qualquer no novo campo giftbonus1 e salvei.

No codigo da pagina eu usei <?echo $giftbonus1;?> pra mostrar o conteudo do campo giftbonus1 no site, mas nao esta funcionando. E logo acima do lugar onde adicionei o <?echo $giftbonus1;?> tem o <?echo $sitename;?> que mostra o nome do site exatamente como esta no campo sitename da tabela adminsettings.

 

Entao, parece que o novo campo que criei esta invisivel, pois ele esta lendo todos os campos dessa tabela exceto o novo campo que criei. Não sei o que fazer.

 

Sera que o problema esta no MySQL ou no codigo PHP da pagina onde estou querendo mostrar os dados desse novo campo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, a sintaxe

<?echo $giftbonus1;?>
vai imprimir na tela o conteúdo da variável $giftbonus1. Como não tem nada nela você não vai ver nada mesmo.

 

Você precisa fazer um select no banco de dados pra armazenar na variável $giftbonus1. Exemplo:

 

<?php

$query = mysql_query("SELECT giftbonus1 FROM nome-tabela WHERE campo = condição");

$var   = mysql_fetch_array($query);

echo $var["giftbonus1"];
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui descobrir onde estava errado.

 

No arquivo config.php tinha que adicionar os novos campos que criei.

 

Estava assim:

 

$dbconnect=mysql_connect($dbhost,$dbuser,$dbpass);
  mysql_select_db($dbname);

$rs=mysql_query("select * from adminsettings");
if(mysql_num_rows($rs)>0) {
$arr=mysql_fetch_array($rs);
$sitename=$arr[0];
$siteurl=$arr[1];
$webmasteremail=$arr[2];
$adminpass=$arr[3];

$alertpay=$arr[4];

$fee=$arr[7];

$levels=$arr[8];

$level1=$arr[9];
$level2=$arr[10];
$level3=$arr[11];
$level4=$arr[12];
$level5=$arr[13];
$level6=$arr[14];
$level7=$arr[15];
$level8=$arr[16];
$level9=$arr[17];
$level10=$arr[18];

$forcedmatrix=$arr[19];
$membershipperiod=$arr[20];
$signupbonus=$arr[21];
}

E agora está assim:

 

$dbconnect=mysql_connect($dbhost,$dbuser,$dbpass);
  mysql_select_db($dbname);

$rs=mysql_query("select * from adminsettings");
if(mysql_num_rows($rs)>0) {
$arr=mysql_fetch_array($rs);
$sitename=$arr[0];
$siteurl=$arr[1];
$webmasteremail=$arr[2];
$adminpass=$arr[3];

$alertpay=$arr[4];

$fee=$arr[7];

$levels=$arr[8];

$level1=$arr[9];
$level2=$arr[10];
$level3=$arr[11];
$level4=$arr[12];
$level5=$arr[13];
$level6=$arr[14];
$level7=$arr[15];
$level8=$arr[16];
$level9=$arr[17];
$level10=$arr[18];

$forcedmatrix=$arr[19];
$membershipperiod=$arr[20];
$signupbonus=$arr[21];
$giftbonus1=$arr[22];
$giftbonus1p=$arr[23];
$giftbonus2=$arr[24];
$giftbonus2p=$arr[25];
$giftbonus3=$arr[26];
$giftbonus3p=$arr[27];
}

Não tinha visto antes, rs. De qualquer forma, agradeço aqueles que colaboraram com minha dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.