Ich frage mich, wie/wenn ich die beiden Select-Anweisungen kombinieren kann.MySQL kombiniert mehrere Select-Anweisungen
$searchCat = $mysqli->query("SELECT category_id, category.name FROM category WHERE category.name = '$searchTerm'");
while ($r=$searchCat->fetch_assoc()) {
$category_id=$r["category_id"];
$searchBus = $mysqli->query("SELECT business.name, business.street FROM business WHERE business.category_id = '$category_id'");
while ($r=$searchBus->fetch_assoc()) {
$name=$r["name"];
$street=$r["street"];
echo "$name, $street<br>";
}
} // end of while
Für die Ausgabe Ich brauche nur die Daten aus der Business-Tabelle, die erste Auswahl findet die Korrelation ID des gesuchten Begriffs, dass Id auch in der Business-Tabelle untergebracht ist.
Also kann ich eine Verbindung oder Vereinigung machen, wo die 1. Auswahl die ID bekommt und dann wird sie an die 2. Auswahl weitergegeben, so dass ich die 1. While überspringe?
** WARNUNG **: Bei der Verwendung von 'mysqli' Sie [parametrisierte Abfragen] verwenden sollten (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Anfrage hinzuzufügen. ** Verwenden Sie NICHT ** String-Interpolation oder Verkettung, um dies zu erreichen, weil Sie einen schwerwiegenden [SQL injection bug] erstellt haben (http://bobby-tables.com/). ** NIEMALS ** $ _POST 'oder' $ _GET' Daten direkt in eine Abfrage einfügen, es kann sehr schädlich sein, wenn jemand versucht, Ihren Fehler auszunutzen. – tadman