Ir para conteúdo

POWERED BY:

Arquivado

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

Célio A.

[Resolvido]  melhorar este script.

Recommended Posts

O script é faz parte de um sistema para torneios de karate, neste script o usuário cria um novo torneio por meio de um formulário.

 

Na primeira versão era inserido os dados do torneio em uma tabela e criado a nova tabela com o nome do torneio. Como o nome do torneio poderá ser muito grande modifiquei o script para que seja feita uma queire pelo nome do torneio criado e seja criado uma array para que eu possa criar a tabela com o ID do torneio, tive este trabalho porque o ID é criado do BD e não no script.

 

Funcionou perfeitamente presumindo que existe apenas um registro com o nome do torneio, mas e se existir nomes idênticos? Esta é a questão!

 

Preciso de ajuda para que a consulta retorne apenas 1 resultado para que o ID capturado seja correto.

 

Minha idéia n° 1

Gostaria de saber se é possível criar um código que capture a data e hora que o formulário foi enviado e inserir esta informação na tabela

 

Minha idéia n° 2 é adicionar mais campos no formulário e na tabela eventos como:

Data do torneio, cidade etc.

Neste caso estou tendo dificuldades em adicionar as variáveis da consulta:

Qual a sintaxe para adicionar a busca pelo data do torneio ($data) e cidade ($cidade)

 

Assim deu certo

$result = mysql_query("SELECT * FROM eventos WHERE nome='$novo_evento'");

Agora não consigo adicionar as outras strings com sucesso.

 

Abaixo o script completo e funcional;

 

<?php
//codigo para reportar erros
ini_set( 'display_errors', true );
error_reporting( E_ALL );

//declarando a variavel que ira capturar o valor do formulario
//pela superglobal $_POST
$novo_evento= $_POST["evento"];

//inclui o arquivo de conexão
if(file_exists("../conector/conectar.php")) {
require "../conector/conectar.php";		
} else {
echo "Arquivo conectar.php nao foi encontrado";
exit;
}

//seleciona o banco de dados
mysql_select_db("$banco", $conexao);

//gravar dados do evento na tabela eventos
//NULL é o campo ID que sera gerado direto no BD
$inserir= "INSERT INTO eventos VALUES (NULL , '$novo_evento')";
mysql_query($inserir, $conexao) or die(mysql_error());

/*
Esta parte do script ira fazer uma queire na tabela eventos e procurar pelo noveo evento criado.
sera criado um array com o resultado.
o objetivo é criar o banco de dados com o ID do evento
*/

$result = mysql_query("SELECT * FROM eventos WHERE nome='$novo_evento'");

//Se nao achar nada, lança essa mensagem
if (empty($result)) { 
   echo "Nenhum registro encontrado.";
}
$dados = array();
while($row = mysql_fetch_array($result)) {
 $dados[] = $row ['id']; 
 }

//criando a tabela com o nome do evento
$sql = "CREATE TABLE `$dados[0]`(
 `id` int(10) unsigned NOT NULL auto_increment,
 `nome` varchar(30) NOT NULL,
 `dn` date NOT NULL,
 `genero_id` varchar(2) NOT NULL,
 `faixa_id` char(5) NOT NULL,
 `entidade_id` int(5) NOT NULL,
 INDEX genero_id (genero_id),
 INDEX faixa_id (faixa_id),
 INDEX entidade_id (entidade_id),
 FOREIGN KEY (genero_id) REFERENCES genero(id),
 FOREIGN KEY (faixa_id) REFERENCES faixa(id),
 FOREIGN KEY (entidade_id) REFERENCES entidade(id),
 PRIMARY KEY  (`id`)
) ENGINE=INNODB";

//executando a criação da tabela
mysql_query($sql,$conexao) or die(mysql_error());

//fecha o banco de dados
@mysql_close();
?>




Compartilhar este post


Link para o post
Compartilhar em outros sites
Gostaria de saber se é possível criar um código que capture a data e hora que o formulário foi enviado e inserir esta informação na tabela

função microtime

 

 

se existir nomes idênticos

você vai ter que fazer uma consulta com o nome antes de cadastrar o torneio

se a consulta retornar alguma coisa, é pq ja contém um torneio com o titulo, caso contrário, vai cadastrar o novo torneio

 

 

Neste caso estou tendo dificuldades em adicionar as variáveis da consulta:

Qual a sintaxe para adicionar a busca pelo data do torneio ($data) e cidade ($cidade)

teste assim

mysql_query( 'SELECT * FROM eventos WHERE nome=' . $novo_evento . ' and cidade=' . $cidade . ' and data=' . $data );

 

 

OSS

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certo fazendo desta forma:

 

$result = mysql_query( 'SELECT * FROM eventos WHERE 
nome="'.$novo_evento.'" 
and cidade="'.$cidade.'" 
and uf="'.$uf.'" 
and data="'.$data.'"' );

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.