Ir para conteúdo

POWERED BY:

Arquivado

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

Micilini Roll

Alter Table e Add column não funciona

Recommended Posts

pq nao esta inserindo na tabela?quando eu clico no link que faz funçao=amigos?

 

<?
if($GET['funcao'] == "amigos"){
$sql_alt = mysql_query("ALTER TABLE solicitacao ADD id_solicitacao VARCHAR( 255 ) NOT NULL, WHERE id='$id' ");
}
?>

 

sendo where id='$id' é aonde vai aquela coluna...

Compartilhar este post


Link para o post
Compartilhar em outros sites
pq nao esta inserindo na tabela?quando eu clico no link que faz funçao=amigos?

 

Cuma?

Você quer inserir dados na tabela ou alterar a estrutura?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem WHERE em ALTER TABLE

 

ALTER TABLE solicitacao ADD id_solicitacao VARCHAR( 255 ) NOT NULL 

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso ai tem um porem,quando aplico este codigo no sql do banco de dados ele funciona,ja quando aplico no php nao?! porque sera?

 

 


<div id="img_port">
        <p><? echo $nome ?>
          <a href="paginas.php?funcao=amigos" style="">+ amigos</a></div>
<?
	 }
?>
</div>

<?
if($GET['funcao'] == "amigos"){

$sql = mysql_query("ALTER TABLE solicitacao ADD id_socilitacao2 VARCHAR(60) NOT NULL");

}
?>

 

o erro era o $_get que estava de forma errada!,pessoal na verdade o where iria servir como:

 

tem 3 links + amigos,junto a 3 nomes:

 

william-+amigos

joao-+amigos

fernando-+amigos

 

se eu clicasse em + amigos no nome de william so sera criado uma nova coluna dentro daquele id do william...por isso a necessidade de where!

 

eae alguma sugestao para realizar tal fato?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe uma diferença entre comandos de DDL e DML.

 

Não conheço PHP, pode ser que DDL não se aplique neste caso.

O mais comum é criar tabelas e ou colunas diretamente no Banco, seja por algum aplicativo gerenciador ou via script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere a sintaxe para a forma correta e tente executar.

O PHP executa sim DDL, se não não teríamos softwares como o PHPMyAdmin...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me ajuda aí motta a não ser se eu passasse o mesmo id que esta sendo passado pelo link +amigos,pelo comando if,mas será que se eu fizer isso somente ira add em só um registro,invés de todos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim????

Você quer adicionar uma coluna na tabela apenas para alguns registros?

Isso é impossível...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei seu nível de conhecimento de SQL mas, ALTER TABLE altera a estrutura da tabela, não insere um dado nesta.

===============================================

A síntaxe de

 

ALTER TABLE solicitacao ADD id_socilitacao2 VARCHAR(60) NOT NULL

parece correta, a tabela solicitacao existe ? O usuário que faz a operação tem os grants necessários para isto ?

 

Como disse o Henrique Barcelos o problema não ser o fato de ser comando DDL, o erro deve ser outro.

 

1) Tente criar esta coluna diretemente do Banco, por que precisa ser criada via aplicação ?

 

2) Que erro ocorre ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok pessoal vamos diretamente ao ponto,pois bem é o seguintes estou tentando fazer um mine sisteminha de solicitaçao de amizade,e no meu caso ira funcionar da seguinte maneira:

 

primeiro,eu criei 5 projetos,sao eles:

 

logar.php->aonde fara a funçao de login para poder acessar o site

config.php->aonde fara a conecxao com o banco de dados

topo.php->aonde tera o topo do site junto a uma session que ira puxar o nome do usuario que estiver logado

index.php->aonde havera 3 includes,que sao para os projetos,config,topo,paginas

paginas.php->é aonde tera 3 divs uma do lado da outra sendo:

 

1-ira puxar todos os registros do banco de dados,somente o nome junto ao link "+amigos"

2-sera a div que ira apareçer as solicitaçoes

3-sera a div que ira apareçer seus amigos

 

pois bem o projeto ira funcionar da seguinte forma:

 

assim que eu clicar no link +amigos de qualquer usuario que esteja na rede o link ira reconheçer que a FUNÇAO É IGUAL A AMIGOS,logo apos vira um if que ira saber que a funçao é igual a amigos,e ira criar uma nova coluna na tabela,mas so ira criar uma nova coluna na tabela daquele que ira receber a solicitaçao,exemplo:

 

(ESTOU LOGADO NA REDE COM O NOME DE ARNALDO)

william + amigos

fernando + amigos

 

se eu clicar no +amigos do usuario fernando,irei criar uma nova coluna com o nome de ID_SOLICITAÇAO(que ira armazenar o meu id) dentro do registro do usuario fernando.

 

e assim que o usuario fernando estiver logado no site,a segunda div que no caso mostrara as solicitaçoes ou seja,tera um comando que ira reconheçer se existe uma coluna com o nome de ID_solicitaçao,se existir sera mostrada dentro da segunda div com 2 botoes,ACEITAR E RECUSAR,caso clicar em aceitar ira fazer funçao=aceitar,feito isso tera um if que ira reconheçer se a funçao é igual a aceitar e ira deletar essa coluna no registro do fernando e ira criar uma coluna no registro do fernando e do arnaldo com o nome de ID_amigos,caso for RECUSAR so ira deletar a coluna ID_solicitaçao e mais nada.exemplo:

 

arnaldo tem id=3,ira criar uma coluna com o nome de ID_AMIGOS dentro do registro de fernando,sendo que a coluna ID_AMIGOS tera o id=3(do arnaldo),e outra coluna ID_AMIGOS dentro do proprio registro so que com id=1(do fernando)

 

ja na 3 div,que é a div amigos,tera um comando que ira procurar no banco de dados colunas com o nome de ID_amigos,sendo que dentro destas colunas id_amigos tera os ids de alguns usuarios cadastrados na rede(aqueles que aceitaram suas solicitaçoes) e apartir do id deles tera um select que ira puxar os campos FOTO,NOME de cada usuario.

 

 

agora voces entenderam pq deve ser criada via aplicaçao,na verdade esta é a segunda tentaiva de tentar fazer um projeto de solicitaçoes de amizade,vendo assim vemos que ele tem uma logica,mas para que o projeto se finalize é necessario saber os comando que façam função de:

 

1-adicionar uma coluna na tabela APENAS para alguns registros.

2-DELETAR uma coluna na tabela APENAS para alguns registros.

 

ate aonde voces estao me falando isso nao é possivel,ou sera que da pra fazer isso de outra forma?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, você está pensando errado.

 

Note, teremos algumas tabelas: usuário, amigo e solicitações

 

Na tabela usuário serão cadastrados os participantes dessa rede social com as informações que julgou necessárias para o projeto, e entre essas informações teremos um id.

A tabela amigo estarão registrados os id´s do usuário e de seu(s) amigo(s).

A tabela solicitações armazenará temporariamente o pedido de amizade que tem origem do usuário A para o usuário B.

 

O funcionamento é extremamente simples e não precisa criar colunas ou algo do tipo, você precisará apenas manipular os registros dessas tabelas com INSERT, UPDATE, DELETE.

 

Os comandos ALTER TABLE e outros são para alterar a estrutura do banco de dados, o que não é o caso.

 

Cada vez que um membro da sua rede social solicita a amizade de outro membro, será inserido (ou criado se preferir) um novo registro na tabela solicitações.

Se o usário aceitar essa solicitação, será criado um novo registro na tabela amigo e será apagada essa informação na tabela de solicitações.

 

Após modelarmos o banco de dados para atender todas as necessidades do projeto, não precisaremos alterar nada no banco de dados, somente será preciso efetuar alterações na estrutura do banco de dados SE for acrescentar uma nova funcionalidade não prevista inicialmente no projeto.

 

Todas as operações que serão feitas no banco de dados decorrentes do funcionamento do sistema serão inclusões, alterações e deleções dos registros e isso não será nada relacionado com a parte estrutural do banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que seria bom você estudar um pouco mais sobre Banco de dados e Modelagem de Dados.

Pelo que entendi me parece que você está confundindo conceitos (criação de colunas x inserção/alteração de registros).

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao sao tabelas externas :thumbsup: ,eu tinha pensado nisso so nao sabia muito bem como manipular coisas externas ok pessoas valeu pela dica,abraços...

 

ok entao 3 tabelas no caso né. :lol:

 

uma coisa que esqueci de resaltar aqui é que o que o vinicius lanni falou,era a mesma coisa que eu tinha feito so que a diferença é que as tabelas amigo e solicitaçoes estavam presentes dentro da tabela usuario :ermm:,pareçe que o seu metodo de criar 3 tabelas funciona,mas vamos pensar um pouco sera que deste meu metodo tambem funcionaria,so que envez de eu criar colunas,as colunas ja deveriam existir?! so de pensar cada registro na tabela seria uma coisa mosntruaosa né :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando estiver modelando o banco de dados, é preciso pensar também na manutenção e escalabilidade da aplicação.

Uma determinada forma de armazenar e manipular os dados pode até dar certo para uma aplicação pequena com 10, 20, 100 acessos, mas é com 500, 1000, 5000 ?

Conforme os dados crescem, mais complexo se torna a manutenção deles, fora a lentidão no acesso aos dados que tem várias causas, entre elas, a mais comum é a modelagem ruim no inicio do projeto, muitas vezes somente refazendo toda a estrutura é que será possivel sanar certos problemas, o que significa prejuizo para quem comprou / contratou o sistema.

 

Estes links devem lhe ajudar a esclarecer a pequena confusão que você está fazendo:

Modelagem de dados

Normalização de dados

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.