Frank Hübner: Treffer in beliebiger Spalte

Ich habe folgendes Problem:

Ich will mittels einer Schleife in verschiedenen Tabellen nach Begriffen suchen. Die Tabellen haben unterschiedliche Spaltenzahl und -namen.

Tabelle 1

id  position text
1     1       hallo
1     2       sicher
2     1       wer
2     2       bist du

Tabelle 2

id   position   name    datei
1      3         test   test.gif
2      3         hallo  hallo.gif

Wie kriege ich das raus, das der Begriff "hallo" sowohl bei id 1 (Tabelle1) als auch 2 (Tabelle 2) ist.

SELECT id FROM $table WHERE text LIKE 'hallo'

geht ja nicht, weil es die spalte "text" ja nicht in Tabelle 2 gibt.

Wie kriege ich eine Abfrage hin, die eine Übereinstimmung in einer beliebigen! Spalte liefert?

Frank

  1. Hallo

    SELECT id FROM $table WHERE text LIKE 'hallo'

    geht nicht aber dafür

    select t1.id, t2.id from $table1 t1, $table2 t2 where t1.text like 'hallo' and t2.name like 'hallo';

    Ich hoffe, das ist das was du brauchst

    MFG Irxn

    1. Hallo

      SELECT id FROM $table WHERE text LIKE 'hallo'

      geht nicht aber dafür

      select t1.id, t2.id from $table1 t1, $table2 t2 where t1.text like 'hallo' and t2.name like 'hallo';

      Ich hoffe, das ist das was du brauchst

      Nicht ganz. Leider kenne ich (das script) die aktuellen Spaltennamen nicht.

      Aber mir fällt gerade was ein.

      Ich habe ein ja Array mit allen Spaltennamen und muß den SQL-Query dynamisch zusammensetzten in jeder Schleife.

      $objecttables=array("headline","text","bild");
      $elementspalte[$objecttables[0]]=array("pageid","position","inhalt","status");
      $elementspalte[$objecttables[1]]=array("pageid","position","inhalt","align","status");
      $elementspalte[$objecttables[2]]=array("pageid","position","dateiname","alttext","align","status");

      Danke für den Denkanstoß ;-)

      Frank