Wählen Sie Mehrere Ids aus einer Tabelle
Will ich wählen-id basiert auf der url-string, aber mit meinem code, er zeigt nur die erste.
Wenn ich Schreibe, Handbuch der id ' s, es funktioniert Super.
Habe ich eine url wie diese http://www.mydomain.com/myfile.php?theurl=1,2,3,4,5 (ids)
Nun in der myfile.php ich habe meine sql Verbindung und:
$ids = $_GET['theurl']; (and i am getting 1,2,3,4,5)
wenn ich dieses verwenden:
$sql = "select * from info WHERE `id` IN (1,2,3,4,5)";
$slqtwo = mysql_query($sql);
while ($tc = mysql_fetch_assoc($slqtwo)) {
echo $tc['a_name'];
echo " - ";
}
Ich erhalte die richtigen Ergebnisse. Nun, wenn ich den code Balg es nicht funktioniert:
$sql = "select * from info WHERE `id` IN ('$ids')";
$slqtwo = mysql_query($sql);
while ($tc = mysql_fetch_assoc($slqtwo)) {
echo $tc['a_name'];
echo " - ";
}
Irgendwelche Vorschläge?
- Was ist
$ids
? Beachten Sie, dass, weil Sie noch eingeschlossen in Anführungszeichen, MySQL, behandeln es als ein einziges Element, so'1, 2'
zurück Elemente mit einer ID von1, 2
. - Sie Mai wollen die Forschung, SQL-injection und PDO. Diese wird erheblich verbessern Sie Ihre code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie interpolieren
mit Ihren IDs, die Sie erhalten:
...die behandelt Ihre Satz-IDs als eine einzelne Zeichenfolge anstelle einer Reihe von zahlen.
Loszuwerden, die single-Angebote in der
IN
- Klausel, etwa so:Auch, vergessen Sie nicht, dass Sie brauchen, um zu überprüfen, für SQL-Injection-Angriffe. Dein code ist derzeit sehr gefährlich und die Gefahr von schwerwiegenden Datenverlust oder Zugriff haben. Was würde geschehen, wenn jemand fordert Ihre web-Seite mit der folgenden URL und der code erlaubt Ihnen das ausführen mehrerer Anweisungen in eine einzelne Abfrage:
$ids = $_GET['theurl']
direktKönnen Sie auch versuchen, FIND_IN_SET() Funktion
ODER