MySQL-Array-Suche

ronin

Erfahrenes Mitglied
Hallo zusammen.


Angenommen, ich habe ein Array mit bestimmten Werten.
Beispiel:
PHP:
$das_array = array(1, 4, 2, 91, 5);

Ich möchte nun ein Feld in einer MySQL-DB ansprechen, ob der Wert in der DB im Array vorkommt.
Beispiel:
Code:
ID | Wert
1 | 1
2 | 8
3 | 9
4 | 19
5 | 81
6 | 4

Ich möchte nun mittels PHP eine Abfrage starten um die Werte in $das_array mit der Datenbank zu vergleichen, bei der die Spalte Wert der MySQL Tabelle einen Wert innerhalb von $das_array besitzt.
Ich hoffe, das ist verständlich ausgedrückt. ;)

Vielen Dank für die Hilfe.

Grüße, ronin
 
Meinst du so ?

PHP:
$das_array = array(1, 4, 2, 91, 5);
$sql = "SELECT `werte` FROM `tabelle`;";
$erg = mysql_query($sql);
while ($row = mysql_fetch_object($erg))
{
  foreach ($das_array as $value)
  {
    if ($value == $row->werte)
    {
      // Code 
    }
  }
}

mfg
 
Also ich bin auch nicht sicher ob ich genau folgen konnte aber ich würde das mal so angehen:

Code:
$sql = "SELECT id FROM tabelle WHERE wert IN ('" . implode("','", $das_array) . "')";
$erg = mysql_query($sql);
 
Hi

Ich denke er meine es so.

PHP:
$query = 'SELECT id FROM tabelle WHERE wert = ' . implode(' OR wert = ', array_map('intval', $array));
$result = mysql_query($query);
 
Ich umschreibe es mal etwas weiträumiger.

Nehmen wir an, ich lese aus einer Tabelle verschiedene Postleitzahlen aus und schreibe sie in ein Array.
Nun will ich eine andere Tabelle abfragen, welche User aus einer der Postleitzahlen im Array stammen.

Wenn man mein Beispiel von oben heranzieht:
PHP:
$das_array = array(1, 4, 2, 91, 5);
Code:
ID | Wert
1 | 1
2 | 8
3 | 9
4 | 19
5 | 81
6 | 4

Dann sollen die IDs 1 und 6 gefunden werden, weil der "Wert" im Array $das_array vorkommt. Alles klar soweit? ;)

Danke und Grüße, Ronin
 
Zurück