Ich habe versucht, eine Antwort auf dieses Problem zu finden, aber ich kann nicht.MYSQL gibt nicht mehr als 1 Kategorie zurück
Ich habe eine mqsql-Datenbank mit 3 Tabellen. Ich verwende 1 Tabelle, um alle Produktinformationen hinzuzufügen, CarpetInfo, 1 Tabelle, um meine Kategorien, CarpetCategories, und 1 Tabelle auf Kategorien zu den Produkten hinzuzufügen, CarpetCategorySort.
Meine CarpetCategorySort-Tabelle hat 3 Spalten, Hersteller, Stil, CategoryID. Beispiel wäre Hersteller = Aladdin, Stil = Alma Mater, KategorieID = 14/15/18/19/20/21/67/
Meine CarpetCategories Tabelle hat 2 Spalten CategoryID und Kategorie. 2 Beispiele wären & CategoryID = 15, Kategorie = Gewerbe Schleife
Ich kann nur erhalten, den Code zu arbeiten, wenn ich in Gewerbe in die $ Kategorie Variable geben Sie unten CategoryId = 14, Kategorie = Gewerbe werden. Der Code wird nicht funktionieren, wenn ich Commercial Loop in die Variable $ category eintippe. Es ist so, als ob es nur die erste Zahl 14 einholt und alle anderen ignoriert werden. Die Preisangabe und alles andere funktioniert richtig, nur nicht der CategoryID-Teil.
Hier ist mein Code.
<?php $mill = "Aladdin"; $category = "Commercial Loop";
$order = mysqli_query($con, "
SELECT * FROM CarpetInfo JOIN CarpetCategorySort USING (Manufacturer, Style)
JOIN CarpetCategories USING (CategoryID)
WHERE Manufacturer='$mill' AND Category LIKE '%$category%'
order by Price = 0, Price asc,
Style asc");
include($_SERVER['DOCUMENT_ROOT'].'/includes/pricing/carpet-order-test.htm');?>
Jede Hilfe ist sehr zu schätzen!
** WARNUNG **: Wenn Sie 'mysqli' verwenden, sollten Sie [parametrisierte Abfragen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [' bind_param' verwenden ] (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 ',' $ _GET' oder ** irgendwelche ** Benutzerdaten direkt in eine Abfrage einfügen, es kann sehr schädlich sein, wenn jemand versucht, Ihren Fehler auszunutzen. – tadman
Es ist eine gute Idee, das ein bisschen besser zu machen. Das Stören von Dingen auf einer Zeile beeinträchtigt die Lesbarkeit erheblich. – tadman