Ir para conteúdo
Fórum Script Brasil

PhoenixWings

Membros
  • Total de itens

    34
  • Registro em

  • Última visita

Tudo que PhoenixWings postou

  1. Boa tarde a todos. Estou com o seguinte trecho de código: $operacao = $_POST["operacao"]; include "conecta_mysqli_administrativo.inc"; if($operacao == "listar"){ $resultado = mysqli_query($conexao, "SELECT * FROM siglas"); $linhas = mysqli_num_rows($resultado); for($i = 0; $i < $linhas; $i++) { $registro = mysqli_fetch_row($resultado); echo "Sigla: $registro[0]<br>"; } } if($operacao == "cadastrar") "<html> ?> E gostaria de saber se é possível abrir uma página com um formulário HTML a partir do "if" de cadastramento. Se for possível, como eu faria para retornar os dados inseridos neste formulário para este arquivo .php? Obrigado pela ajuda.
  2. Boa tarde pessoal. Eu criei uma tabela cep que contém um campo cep com valores 1, 2, 3 ... e este campo está vinculado a uma chave estrangeira de mesmo nome (cep) numa outra tabela denominada contatos. Percebi que esses valores numéricos estão errados e estou querendo mudá-los para ceps fictícios como, por exemplo, 23819000 só que não estou conseguindo fazer isso! a constraint foreign key me impede de efetuar esta operação. mysql> UPDATE cep -> SET cep = 23816000 -> WHERE cidade = 'Algum lugar'; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`esquema_contatos`.` contatos`, CONSTRAINT `contatos_ibfk_2` FOREIGN KEY (`cep`) REFERENCES `cep` (`cep`)) mysql> UPDATE contatos -> SET cep = 23816000 -> WHERE primeiro_nome = 'Fulana'; ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`esquema_contatos`.`cont atos`, CONSTRAINT `contatos_ibfk_2` FOREIGN KEY (`cep`) REFERENCES `cep` (`cep`)) como poso fazer para modificar os campos cep da tabela cep e contatos sem precisar apagar as tabelas? Obs.: eu não adicionei nenhuma CONSTRAINT explícita da forma CONSTRAINT contatos_fk. Obrigado pela ajuda! Existe alguma forma de atualizar simultaneamente uma chave estrangeira e uma primária com um novo registro ?
  3. Eu já tinha criado as suas tabelas corretamente. Agora criei elas com um 2 na frente (só para não apagar a my_contacts e a jobs). Tentei apagar a foreign key criada na tabela my_contacts2 a fim de adicioná-la com ALTER TABLE (como você mostrou acima). mysql> ALTER TABLE my_contacts2 DROP FOREIGN KEY idjob; ERROR 1025 (HY000): Error on rename of '.\gregslist\my_contacts2' to '.\gregslist\#sql2-72c-2' (errno: 152) Consegui Denis, muito obrigado! Segue abaixo o que eu fiz: 1º ) Criei as tabelas mas com 2 na frente para não precisar apagar a my_contacts e jobs: mysql> CREATE TABLE my_contacts2 -> ( -> id_contact INT NOT NULL AUTO_INCREMENT, -> last_name varchar(30) , -> first_name varchar(20) , -> email varchar(50) , -> gender char(1), -> birthday date , -> idjob INT(11) NOT NULL DEFAULT 0, -> location varchar(50), -> status varchar(20), -> interests varchar(100), -> seeking varchar(100), -> city VARCHAR(20), -> state CHAR(2), -> PRIMARY KEY(id_contact), -> CONSTRAINT my_contacts2_fk FOREIGN KEY (idjob) REFERENCES jobs2 (idjob) ON DELETE CASCADE ON UPDATE CAS CADE -> ); Query OK, 0 rows affected (0.02 sec) 2º ) Removi a constraint: mysql> ALTER TABLE my_contacts2 DROP FOREIGN KEY my_contacts2_fk; Query OK, 0 rows affected (0.06 sec) 3º ) Adicionei a constraint: mysql> ALTER TABLE my_contacts2 -> ADD CONSTRAINT my_contacts2_fk FOREIGN KEY(idjob) REFERENCES jobs2(idjob); Query OK, 0 rows affected (0.06 sec) 4º ) Repeti o 2º passo, removi a coluna idjob e adicionei-a logo em seguida: mysql> ALTER TABLE my_contacts2 -> DROP COLUMN idjob; Query OK, 0 rows affected (0.08 sec) mysql> ALTER TABLE my_contacts2 -> ADD COLUMN idjob INT NOT NULL DEFAULT 0 AFTER birthday; Query OK, 0 rows affected (0.06 sec) 5º ) Por fim, adicionei a constraint de novo e usei DESC na tabela: mysql> ALTER TABLE my_contacts2 -> ADD CONSTRAINT my_contacts2_fk FOREIGN KEY(idjob) REFERENCES jobs2(idjob); Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC my_contacts2; +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+----------------+ | id_contact | int(11) | NO | PRI | NULL | auto_increment | | last_name | varchar(30) | YES | | NULL | | | first_name | varchar(20) | YES | | NULL | | | email | varchar(50) | YES | | NULL | | | gender | char(1) | YES | | NULL | | | birthday | date | YES | | NULL | | | idjob | int(11) | NO | MUL | 0 | | | location | varchar(50) | YES | | NULL | | | status | varchar(20) | YES | | NULL | | | interests | varchar(100) | YES | | NULL | | | seeking | varchar(100) | YES | | NULL | | | city | varchar(20) | YES | | NULL | | | state | char(2) | YES | | NULL | | +------------+--------------+------+-----+---------+----------------+ 13 rows in set (0.00 sec)
  4. Boa tarde. Eu inseri o código citado e mesmo assim não funcionou: ALTER TABLE my_contacts ADD COLUMN idjob INT(11) NOT NULL DEFAULT 0, ADD CONSTRAINT `FK_MY_CONTACTS001` FOREIGN KEY (`idjob`) REFERENCES `jobs` (`idjob`) ON DELETE CASCADE ON UPDATE CASCADE; Error 1452 (23000): Cannot add or update a child row: a foreign key constraint fails(`gregslist` (result 2 when explaining filename `#sql-7bc-1`), CONSTRAINT `FK_MY_CONTACTS001` FOREIGN KEY ( `idjob`) REFERENCES `jobs` (`idjob`) ON DELETE CASCADE ON UPDATE CASCADE) Esqueci de dizer que estou usando InnoDB (não sei se isso faz alguma diferença).
  5. Obrigado pela atenção cedida Dennis. os códigos passados funcionaram contudo eu queria mesmo era inserir a chave estrangeira numa tabela que já estivesse criada pois parti do pressuposto que a tabela teria milhares de registros então não daria para apagar esta e criar uma outra. Existe a possibilidade de inserir a foreign key na tabela já criada com Alter? era isto que eu estava tentando fazer para a tabela my_contacts. Obrigado.
  6. Dennis, eu estou estudando através de um livro e cheguei agora em subconsultas então não sei o que você quis dizer com sinalização. Também não entendi o que você quis dizer com inserir 0 como default se a linha está como Auto_increment. Eu tentei colocar Default 0 na linha assim: CREATE TABLE jobs ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY DEFAULT 0, profession VARCHAR(20) ) AS SELECT profession FROM my_contacts GROUP BY profession ORDER BY profession; e obtive o seguinte erro: "invalid default value for id" já a outra tabela criei desta forma: CREATE TABLE my_contacts ( last_name varchar(30) , first_name varchar(20) , email varchar(50) , gender char(1), birthday date , profession varchar(50), location varchar(50), status varchar(20), interests varchar(100), seeking varchar(100) ); e depois adicionei o id_contato e mais duas colunas: ALTER TABLE my_contacts ADD COLUMN city VARCHAR(20), ADD COLUMN state CHAR(2); ALTER TABLE my_contacts ADD COLUMN id_contact INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id_contact);
  7. Boa noite gente. Criei uma tabela chamada my_contacts e outra jobs e estou tentando inserir uma chave estrangeira na primeira sem êxito. Segue o código abaixo: # ALTER TABLE my_contacts # ADD COLUMN id_prof INT NOT NULL AFTER birthday; # OK, 15 rows affected (0.08 sec) # 15 Duplicates: 0 Warnings: 0 1. ALTER TABLE my_contacts 2. ADD FOREIGN KEY(id_prof) REFERENCES jobs(id_job); 3. 1005 (HY000): Can't create table 'gregslist.#sql-4a4_2' (errno: 150) my_contacts é minha parent table, jobs a minha child table e id_job a minha primary key na tabela jobs. Como faço para adicionar a foreign key na tabela my_contacts? obrigado pela ajuda.
×
×
  • Criar Novo...