Auswahl von Mysql Datensatz mitels Array eingrenzen ?
Chris
- php
0 Andreas Görtz0 Chris
0 Vinzenz
Hi Ihr,
ich hab wiedereinmal nen ziemliches Problem. Und zwar greife ich auf eine Mysql datenbank zu indem ich bestimmte sachen ausschließen will beispielsweise so:
$result_gid = mysql_query("SELECT * FROM meinedb WHERE artikel='$jetztartikel' AND artikelnr!='$jetztartikelnr");
Wie mache ich dies jetzt, wenn ich diesen Ausschluss über ein Array definieren will ?
Also sprich ich habe ein Array welches aus Artikelnummer und Artikel besteht und so an die zwanzig Einträge hat. Jetzt könnte ich dies über ne Schleife oder so, bestimmen lassen, damit kein Datensatz gewählt wird in dem Artikel und Artikelnr übereinstimmen, bzw. jeden Datensatz der gewählt wird einfach wieder verwerfen und einen neuen ermitteln. Doch dies ist recht umständliche. Geht dass nicht irgendwie genialer, indem ich direkt die Werte des Arrays ausschließen kann ?
danke und Gruß Chris
Hi,
$result_gid = mysql_query("SELECT * FROM meinedb WHERE artikel='$jetztartikel' AND artikelnr!='$jetztartikelnr");
Wie mache ich dies jetzt, wenn ich diesen Ausschluss über ein Array definieren will ?
wenn ich dich richtig verstehe, hast du ein Array in dieser Art:
Array(
ArtNr => Artikel
)
Um in MySQL auf mehrere Vorkommen zu prüfen (bzw. auszuschließen), gibt es die IN-Syntax, sieht dann z.B. so aus:
SELECT
*
FROM
tabelle
WHERE
feldname (NOT) IN (1,2,3,4)
Nun kannst du diese Werte mittels implode() (http://de.php.net/manual/de/function.implode.php) kommagetrennt aus dem Array zusammenbauen. Wenn meine obige Vermutung mit dem Aufbau des Arrays korrekt ist, benötigst du evtl. noch array_keys() (http://de.php.net/manual/de/function.array-keys.php), um an die Artikelnummern zu kommen.
Gruß,
Andreas.
Hi
danke an Euch !!!
Hat funktioniert...
einfach klasse und nochma danke
Gruß Chris
Hallo Chris,
ich hab wiedereinmal nen ziemliches Problem. Und zwar greife ich auf eine Mysql datenbank zu indem ich bestimmte sachen ausschließen will beispielsweise so:
$result_gid = mysql_query("SELECT * FROM meinedb WHERE artikel='$jetztartikel' AND artikelnr!='$jetztartikelnr");
Wie mache ich dies jetzt, wenn ich diesen Ausschluss über ein Array definieren will ?
Da MySQL kein PHP versteht, musst Du Deine Abfrage vorher mit PHP zusammenstellen.
Was Dir dabei helfen kann, ist IN, siehe http://dev.mysql.com/doc/mysql/en/Comparison_Operators.html
WHERE artikel IN (wert1, wert2, ...)
Baue Deine Wertliste mit implode http://de.php.net/manual/de/function.implode.php zusammen. So hast Du blitzschnell Deine SQL-Anweisung zusammengebaut.
Es ist empfehlenswert, in mehreren Schritten vorzugehen:
// Baue Abfrage zusammen
$strSQL = "SELECT * FROM meinedb ...
// Wenn es zu Fehlern kommt, entferne die Kommentare vor der nächsten Zeile
// echo $strSQL;
// Führe Abfrage aus
$result_gid = mysql_query($strSQL);
Freundliche Grüsse,
Vinzenz