Ir para conteúdo
Fórum Script Brasil
  • 0

comparar uma tabla com a outra


nipp

Pergunta

tipo eu fiz duas tabelas no banco de dados

CREATE TABLE Personagens(

Id int NOT NULL AUTO_INCREMENT,

Usuario int NOT NULL,

Cidade int NOT NULL DEFAULT 1,

Arma int NOT NULL DEFAULT 1,

Classe enum ('Capitao', 'Espadachim', 'Navegador', 'Atirador', 'Cozinheiro', 'Medico', 'Historiador', 'Carpinteiro', 'Musico') NOT NULL,

Nick varchar(80) NOT NULL,

Foto varchar(100) NOT NULL,

Bando varchar(80) NOT NULL,

Lvl int NOT NULL DEFAULT 1,

Forca int NOT NULL DEFAULT 5,

Agilidade int NOT NULL DEFAULT 5,

Inteligencia int NOT NULL DEFAULT 5,

HpAtu int NOT NULL DEFAULT 10,

HpTot int NOT NULL DEFAULT 10,

MpAtu int NOT NULL DEFAULT 15,

MpTot int NOT NULL DEFAULT 15,

ExpAtu int NOT NULL Default 0,

ExpLvl int NOT NULL DEFAULT 100,

Berrys int NOT NULL DEFAULT 0,

PRIMARY KEY (Id, Usuario),

FOREIGN KEY (Usuario) REFERENCES Usuarios(Id),

FOREIGN KEY (Cidade) REFERENCES Cidades(Id),

FOREIGN KEY (Arma) REFERENCES Armas(Id)

);

CREATE TABLE Usuarios(

Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,

Nome varchar(80) NOT NULL,

Sobrenome varchar(80) NOT NULL,

Sexo enum ('M','F'),

Email varchar(200) NOT NULL,

Login varchar(20) NOT NULL,

Senha varchar(32) NOT NULL,

Classe enum ('Capitao', 'Espadachim', 'Navegador', 'Atirador', 'Cozinheiro', 'Medico', 'Historiador', 'Carpinteiro', 'Musico') NOT NULL,

IsAdm Char(1) NOT NULL DEFAULT 'N'

);

ai tipo

como podem ver na tabela personagem eu coloquei uma referencia de usuario pra gravar o id da tabela usuario

no campo usuario da tabela personagem

so qeu não ta funcionando

tem que ter algum code em php pra interagir com os 2 na hora do cadastro??

porque tipo o cadastro funciona direitinho porque eu fiz pra gravar em duas tabelas diferente na hora do cadastro so que não faz a refeencia e sempre fica 0

te m como ajuda

e aqui ta o code do cadastro

<?php

ob_start();

$nome = $_POST['rNome'];

$sobrenome = $_POST['rSobren'];

$sexo = $_POST['rSexo'];

$email = $_POST['rEmail'];

$login = $_POST['rLogin'];

$senha = $_POST['rPass1'];

$senhaconf = $_POST['rPass2'];

$classe = $_POST['rClasse'];

$arma = $_POST['rArma'];

$nick = $_POST['rNick'];

$foto = $_POST['rFotos'];

$hpatu = 30;

$mpatu = 20;

$hptot = 30;

$mptot = 20;

$berrys = 1000;

$exp = 0;

$explvl = 10;

$level = 1;

$for = 5;

$int = 5;

$agi = 5;

include ('conexao.php');

$consulta = "SELECT * FROM Cidades WHERE Nome = '{$cidade}'";

$consulta = mysql_query($query);

$query = "INSERT INTO `Usuarios` ( `Id` , `Nome` , `Sobrenome` , `Sexo` , `Email` , `Login` , `Senha` , `Classe` , `IsAdm` )

VALUES ('', '$nome', '$sobrenome', '$sexo', '$email', '$login', '$senha', '$classe', '')";

mysql_query($query,$conexao);

$colocar = "INSERT INTO `Personagens` ( `Id` , `Usuario` , `Cidade` , `Arma` , `Classe` , `Nick` , `Foto` , `Bando` , `Lvl` , `Forca` , `Agilidade` , `Inteligencia` , `HpAtu` , `HpTot` , `MpAtu` , `MpTot` , `ExpAtu` , `ExpLvl` , `Berrys` )

VALUES ('', '', '', '', '$classe', '$nick', '$foto', '', '$level', '$for', '$agi', '$int', '$hpatu', '$hptot', '$mpatu', '$mptot', '$expatu', '$explvl', '$berrys')";

mysql_query($colocar,$conexao);

header("Location:index.php?asd=1");

?>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Entre o INSERT do Usuario e o do Personagem, você pode usar a função do php mysql_insert_id(), que retorna o último Id que foi colocado em uma query. Dessa forma, você pegaria o ID do Usuário que acabou de cadastrar e o colocaria no Usuario do campo Personagens.

$query = "INSERT INTO `Usuarios` ( `Id` , `Nome` , `Sobrenome` , `Sexo` , `Email` , `Login` , `Senha` , `Classe` , `IsAdm` )
VALUES ('', '$nome', '$sobrenome', '$sexo', '$email', '$login', '$senha', '$classe', '')";
mysql_query($query,$conexao);

$Id_Usuario = mysql_insert_id(); // Pega o Id do Usuário que acabou de cadastrar.

$colocar = "INSERT INTO `Personagens` ( `Id` , `Usuario` , `Cidade` , `Arma` , `Classe` , `Nick` , `Foto` , `Bando` , `Lvl` , `Forca` , `Agilidade` , `Inteligencia` , `HpAtu` , `HpTot` , `MpAtu` , `MpTot` , `ExpAtu` , `ExpLvl` , `Berrys` )
VALUES ('', '$Id_Usuario', '', '', '$classe', '$nick', '$foto', '', '$level', '$for', '$agi', '$int', '$hpatu', '$hptot', '$mpatu', '$mptot', '$expatu', '$explvl', '$berrys')";

O restante pode continuar o mesmo..

Vê se isso dá certo.

Link para o comentário
Compartilhar em outros sites

  • 0

cara valeu

nem sabi que no php tinha essa função....

tenho que estuda muito ainda php^^

a agora uma outra pergunta

tem como tipo

eu puchar o id de mais 3 tabelas por essa funfão

ou eu teno que fazer uma outra função???

porque tipo eu tenho que puchar o id de duas tabelas armas e cidades

Link para o comentário
Compartilhar em outros sites

  • 0

Então..

Essa função só retorna o último ID imediatamente inserido.. Ele não retorna quais é o último Id de uma tabela, entendeu??

Agora, se você vai utilizar igual nesse caso, LOGO DEPOIS de um INSERT, aí sim.. Funciona corretamente.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...