В настоящее время я пытаюсь завершить проект, в котором спецификации должны использовать форму поиска для поиска в базе данных для упаковки. База данных имеет множество переменных величин: от размеров, имен, типов и мяса. Мне нужно создать форму поиска, в которой пользователи могут выполнять поиск по нескольким различным запросам (например, поиск лотка для крышки длиной 50 см).
Я весь день пытался создать некоторый PHP-код, который мог бы искать информацию в тестовой базе данных, которую я создал. У меня было множество ошибок: от ошибок mysql_fetch_array, логических ошибок, и теперь моя последняя ошибка заключается в том, что моя таблица, похоже, не существует. Хотя я могу вводить в него данные (html и php-страницы, где я могу вводить данные), я не знаю, что вызывает это, и я начал снова несколько раз.
Может ли кто-нибудь дать мне некоторое представление или советы о том, что мне сейчас нужно делать? Вот только мои небольшие тесты на данный момент, прежде чем я перейду на базу данных SQL реальных сайтов.
Создание базы данных:
<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>
HTML-форма формы поиска:
<body> <form action="form.php" method="post"> Search: <input type="text" name="term" /><br /> <input type="submit" name="submit" value="Submit" /> </form> </body>
Код PHP, который я использую, чтобы попытаться собрать информацию из базы данных (я переписал это несколько раз, этот код также отображает «table.liam не существует»)
<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>
Если кто-нибудь знает или может мне помочь, я был бы очень благодарен! Заранее спасибо.
попробуйте это, дайте мне знать, что произойдет.
Форма:
<form action="form.php" method="post"> Search: <input type="text" name="term" /><br /> <input type="submit" value="Submit" /> </form>
form.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']; }
Изменить: Убрал его немного больше.
Final Cut (мой тестовый файл):
<?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>
Вы получаете таблицу ошибок «liam» не существует », потому что имя таблицы – это Liam
который не совпадает с именем liam
. Названия таблиц MySQL чувствительны к регистру.
Вы уверены, что указанная база данных и таблица существуют? Вы пытались посмотреть свою базу данных с помощью любого клиента базы данных? Например, клиент MySQL командной строки в комплекте с сервером MySQL. Или, если вы новичок-разработчик, есть десятки клиентов графического интерфейса и веб-интерфейса (HeidiSQL, MySQL Workbench, phpMyAdmin и многие другие). Итак, сначала проверьте, был ли ваш скрипт создания таблицы успешным и создал то, что ему нужно.
Кстати, почему у вас есть скрипт для создания структуры базы данных? Обычно это безответная операция, поэтому написать сценарий для этого не требуется. Это полезно только в случае необходимости многократного создания и управления структурой базы данных «на лету».