Criar um formulário de pesquisa em PHP para procurar uma base de dados?
criação de uma base de Dados:
<body>
<?php
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE db_test", $con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
mysql_select_db("db_test", $con);
$sql = "CREATE TABLE Liam
(
Code varchar (30),
Description varchar (30),
Category varchar (30),
CutSize varchar (30),
)";
mysql_query($sql, $con);
mysql_close($con);
?>
</body>
página do formulário de procura em HTML:
<body>
<form action="form.php" method="post">
Search: <input type="text" name="term" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
o código PHP que estou a usar para tentar recolher informações da base de Dados (Eu reescrevi isso algumas vezes, este código também exibe a " tabela.liam não existe.
<body>
<?php
$con = mysql_connect ("localhost", "root", "");
mysql_select_db ("db_test", $con);
if (!$con)
{
die ("Could not connect: " . mysql_error());
}
$sql = mysql_query("SELECT * FROM Liam WHERE Description LIKE '%term%'") or die
(mysql_error());
while ($row = mysql_fetch_array($sql)){
echo 'Primary key: ' .$row['PRIMARYKEY'];
echo '<br /> Code: ' .$row['Code'];
echo '<br /> Description: '.$row['Description'];
echo '<br /> Category: '.$row['Category'];
echo '<br /> Cut Size: '.$row['CutSize'];
}
mysql_close($con)
?>
</body>
se alguém tem alguma visão ou pode ajudar-me com isso, eu ficaria muito grato! Obrigado antecipadamente.
3 answers
Forma:
<form action="form.php" method="post">
Search: <input type="text" name="term" /><br />
<input type="submit" value="Submit" />
</form>
Forma.php:
$term = mysql_real_escape_string($_REQUEST['term']);
$sql = "SELECT * FROM liam WHERE Description LIKE '%".$term."%'";
$r_query = mysql_query($sql);
while ($row = mysql_fetch_array($r_query)){
echo 'Primary key: ' .$row['PRIMARYKEY'];
echo '<br /> Code: ' .$row['Code'];
echo '<br /> Description: '.$row['Description'];
echo '<br /> Category: '.$row['Category'];
echo '<br /> Cut Size: '.$row['CutSize'];
}
Editar: limpei um pouco mais.
Corte Final (o meu ficheiro de teste):
<?php
$db_hostname = 'localhost';
$db_username = 'demo';
$db_password = 'demo';
$db_database = 'demo';
// Database Connection String
$con = mysql_connect($db_hostname,$db_username,$db_password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_database, $con);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="" method="post">
Search: <input type="text" name="term" /><br />
<input type="submit" value="Submit" />
</form>
<?php
if (!empty($_REQUEST['term'])) {
$term = mysql_real_escape_string($_REQUEST['term']);
$sql = "SELECT * FROM liam WHERE Description LIKE '%".$term."%'";
$r_query = mysql_query($sql);
while ($row = mysql_fetch_array($r_query)){
echo 'Primary key: ' .$row['PRIMARYKEY'];
echo '<br /> Code: ' .$row['Code'];
echo '<br /> Description: '.$row['Description'];
echo '<br /> Category: '.$row['Category'];
echo '<br /> Cut Size: '.$row['CutSize'];
}
}
?>
</body>
</html>
Você está recebendo erros 'tabela liam não existe' porque o nome da tabela é {[[0]} que não é o mesmo que liam
. Os nomes das tabelas MySQL são sensíveis à capitalização.
Tens a certeza que existe a base de dados e a tabela indicada? Tentou ver a sua base de dados usando algum cliente da base de dados? Por exemplo, cliente de linha de comandos MySQL junto com o servidor de MySQL. Ou se você é um novato desenvolvedor, existem dezenas de clientes de interface GUI e web (HeidiSQL, MySQL Workbench, phpMyAdmin e muitos mais). Então Primeiro verifique, se seu script de criação de mesa foi bem sucedido e tinha criado o que tem que.
Por que você tem um script para criar a base de dados estrutura? É usualy uma operação nonrecurring, assim que escrever o script para fazer isto é unneded. É útil apenas em caso de necessidade de criar e manipular repetidamente a estrutura do banco de dados no momento.