В настоящее время я работаю над проектом в школе градиента. Я создаю базу данных, которая может быть записана, а также доступна для поиска. Я завершил записываемый аспект, однако у меня возникают проблемы с функцией поиска. Проблема заключается в том, что я не могу искать и отображать отдельную строку в базе данных, а только всю базу данных, которая позволяет быть честной, не очень функциональной, если база данных содержит 20 тыс. Элементов, и вам нужно только 20.Выберите синтаксис, который не отображается правильно (не уверен, если повторяется)
Я копирую кода в целом ниже.
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_NOTICE);
// --------------------------------------------------------
/* THIS DEMO FILE ACCEPTS DATA FROM A WEB FORM
AND SAVES THE DATA TO A FLAT FILE AND THEN TO A DATABASE.
AS A CHECK WE READ THE DATA BACK FROM THE TABLE AND FROM
THE FILE.
Created by: PATRICK DUFF, based on example written by G. Benoit, on 2/28/15
Modified on: 3/1/15, 3/5/15/ 3/13/15
Contact: xxxxxxx
*/
// --------------------------------------------------------
/* GETTING READY FOR THE DATA */
/* the file to hold the data */
$filename = "testData.txt";
$status = "";
/* name of the database, table, username, password, table */
$hostname = "xxxxxxx"; // change this vars for your own db
$username = "xxxxx"; // whatever your student email user name is
$password = "xxxxx"; // your usual password
$dbname = "xxxxxx"; // this database name is assigned for you by the Lab Staff Lab Staff
$table = "xxxxxx"; // once you’re using your DB, you can create your own tables
//getting data from webfrom
$isbn = $_POST["isbn"];
$lname = $_POST["lname"];
$fname = $_POST["fname"];
$title = $_POST["title"];
$publisher = $_POST["publisher"];
$genre = $_POST["genre"];
$con = mysqli_connect("$hostname", "$username", "$password", "$dbname");
$isbn = $_POST["isbn"];
$lname = $_POST["lname"];
$fname = $_POST["fname"];
$title = $_POST["title"];
$publisher = $_POST["publisher"];
$genre = $_POST["genre"];
$con = mysqli_connect("$hostname", "$username", "$password", "$dbname");
//retrieving data from flat form & database.
echo "<!DOCTYPE html><html><head> <title> Record Search </title></head>";
echo "<body> Here is the data: The file contents of 'testData.txt so far is/are: ";
echo file_get_contents($filename);
echo "<hr /> End of reading file. Attempting to read database <hr />";
//creating searchability
$sql= "SELECT * FROM myLibrary WHERE isbn LIKE '%" .$isbn." %' OR fname LIKE '%" .$fname." %' OR lname LIKE'%" .$lname." %' OR title LIKE '%" .$title." %' OR publisher LIKE '%" .$publisher." %' OR genre LIKE'%" .$genre."%' ORDER BY lname" or
die(mysql_error());
$result = mysqli_query($con, $sql);
//displays result in table
if ($result->num_rows > 0) {
echo "<table id='myLibrary'><tr><th><u>ISBN</u></th><th> <u>First Name</u></th><th><u> Last Name </u></th><th><u> Title</u> </th><th><u>Publisher</u></th> <th><u>Genre</u></th></tr>";
// output data of each row
while($row = mysqli_fetch_array($result)) {
echo "<tr><td>" . $row["isbn"]."</td><td>". $row["fname"]."</td><td>" . $row["lname"]. "</td><td>" .$row["title"]. "</td><td>" .$row["publisher"]. "</td><td>".$row["genre"]. "</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
echo "End of Results";
По какой-то причине, когда я комментирую таблицу, ничего из таблицы не отображается.
Я надеюсь, что это было достаточно ясно, это моя первая публикация здесь.
'ИЛИ LName LIKE '%' должен быть' ИЛИ LName LIKE' % '' –
$ SQL = "SELECT ..." или умереть (mysql_error()); '- это полная ерунда. Кроме того, вы используете функции 'mysqli' всюду - присваивание строкового значения переменной не может само по себе вызвать ошибку базы данных. – CBroe
Что значит «когда я редактирую таблицу»? Кроме того, я предлагаю вам исследовать индексацию и поиск FULLTEXT. 'WHERE LIKE '% match%'' известен тем, что является самым медленным способом поиска в базе данных. Кроме того, не следует смешивать вызовы mysqii_' и вызовы mysql_. –