Ich habe eine Abfrage funktioniert gut für eine Twitter-Typahead-Suche. Sie enthält mehrere Felder, so dass der Suchbegriff customer_name, address, bis zu 4 Telefonnummern enthält, nach denen gesucht werden soll. Ich habe zur Zeit den Adressbereich der Kundentabelle in [Adresse] für die Hausnummer und [Straße] für den Straßennamen unterteilt. Ich möchte jedoch die Verwendung einer Straßentabelle implementieren und die Straßenspalte durch [steeet_id] ersetzen. Ich bin völlig verloren, um die Abfrage neu zu strukturieren, um die [street_id] zu verwenden und den Namen der Straße noch anzuzeigen. Im Folgenden finden Sie die Seite, auf der die Abfrage ausgeführt wird und das JSON-Array zurückgibt. Jede Hilfe wird sehr geschätzt.brauche Hilfe bei der Umstrukturierung einer Abfrage
<?php
if(isset($_POST['query'])) {
//connect to database
include 'connect.php';
//retrieve the query
$query = $_POST['query'];
//search database for all similar items
$sql = mysql_query("SELECT * FROM (
SELECT customer_id, customer_name, address, street, phone_1, phone_2, phone_3, phone_4, CONCAT(customer_name, ' ', address, ' ', street, ' ', phone_1, ' ', phone_2, ' ', phone_3, ' ', phone_4) as `mysearch`
FROM customers) base
WHERE `mysearch` LIKE '%{$query}%'
ORDER BY customer_name ASC, street ASC, address ASC
");
$array = array();
while ($row = mysql_fetch_assoc($sql)) {
$array[] = $row['customer_name'] . " " . $row['address'] . " " . $row['street'] . " " . $row['phone_1']. " " . $row['phone_2']. " " . $row['phone_4']. " " . $row['phone_3']." id#" . $row['customer_id'];
}
//return JSON array
echo json_encode($array);
}
?>
Wir machen PHPs mysql_ API nicht mehr. – Strawberry
Es sieht so aus, als ob Sie eine MySQL-Suche in natürlicher Sprache verwenden sollten. http://dev.mysql.com/doc/refman/5.7/en/fulltext-natural-language.html –
BTW, sollten Sie lernen, CONCAT_WS() ', so müssen Sie nicht wiederholt die Leerzeichen zwischen alle Spalten, die Sie verketten. – Barmar