Daten zusammen suchen... | Filtern

Sebigf

Erfahrenes Mitglied
Hallo zusammen!

Ich habe eine tabelle mit kategorien mit ids etc.
Genau so habe ich eine tabelle mit news in der ebenfalls die kategorie ID gespeichert ist als array (erstellt mit serialize(); (PHP)).

Diese wollte ich nun auslesen und zusammen ziehen....

also kategorie A (5 einträge)

Ich hatte es bisher immer so gelöst:

PHP:
$count = mysql_numrows(mysql_query("SELECT id FROM news WHERE (kategorie = '$kategorien[id]')"));

Aber ich weis nun nicht, wie ich das array (wert) überprüfen soll. Bitte um hilfe!

Danke
 
Anscheinend hat leider keiner eine Antwort....

Gut, dann frage ich mal etwas anders....

Wie kann bei SQL in einer spalte ein array durchsuchen? (PHP: in_array();)
Ich frage deshalb, weil ich mit php serialize($value); den sql wert ermittelt habe, nur die frage, wie ich diese abfragen kann nach den werten. danke!
 
Meinst Du sowas?
PHP:
$einArrayMitIds=array(1,5,17,23);
$inString=implode(',',$einArrayMitIds);
$query="SELECT * FROM Tabelle WHERE `EinFeld` IN (".$inString.")";
Gruß hpvw
 
Hi und danke für die Antwort !

Ich glaube, das ganze sieht gut aus, nur brauche ich das genau anders herum. Das Array, befindet sich in einer SQL spalte siehe

hier: (a:7:{i:0;s:3:"109";i:1;s:2:"30";i:2;s:2:"67";i:3;s:2:"78";i:4;s:2:"98";i:5;s:2:"44";i:6;s:2:"56";})

Das ist der wert. Und wenn ich jetzt die dazugehörigen sql tabellen auslese, möchte ich diese ergebnisse mit dem des arrays vergleichen. Also möchte ich, den obigen Wert durchsuchen.....

Ich hoffe, das zeigt dir mehr, was ich meine....

PHP:
// Prüfen, ob Kategorie vorhanden
 $count = mysql_numrows(mysql_query("SELECT id FROM news WHERE `kategorie` IN ('$kategorien[id]')"));
 
Du speicherst ein serialisiertes Array als Char in die Datenbank?
Das wirst Du nur mit regulären Ausdrücken durchsuchen können.

Viel sinvoller ist allerdings, eine Datenstruktur zu nehmen, in der Du die Werte des Arrays in eine eigene Tabelle schreibst (jeder Wert eine Zeile) und über einen Fremdschlüssel mit der Tabelle, in der das serialisierte Array jetzt steht verknüpfst.

Beispiel:
Tabelle Kategorie
  • id
  • name
  • etc.

Tabelle News
  • id
  • Titel
  • Text
  • etc.

Tabelle KategorieHatNews
  • KategorieId
  • NewsId
Gruß hpvw
 
Zurück