Marco: MySQL direkter Zugriff auf Elemente

Hi,

ich habe folgende Abfrage:

  
 $abfrage_links = "SELECT nr_komp FROM ops_link ORDER BY nr_rel ASC";  
 $ergebnis_links = mysql_query($abfrage_links);  

In nr_komp stehen IDs einer weiteren Tabelle 'ops_komponenten'

Die tabelle habe ich komplett abgefragt über:

  
$abfrage = "SELECT * FROM ops_komponenten";  
$ergebnis = mysql_query($abfrage);  

Jetzt möchte ich die Werte von ops_komponenten ausgeben, allerdings in der Reihenfolge, in welcher deren IDs über $ergebnis_links ausgegeben wurden.

Normalerweise nutze ich zur Augabe:
while($row = mysql_fetch_object($ergebnis)) {...}

wenn diese eben bereits richtig sortiert sind.

Wie kann ich jetzt auf die Inhalte von $ergebnis einzeln über deren IDs zugreifen? Stelle mir das so vor:

  
while($row = mysql_fetch_object($ergebnis_links)) {  
 echo [$ergebnis where id = $row->nr_komp]  
}  

Wie geht das?
Freue mich über Tipps.

Marco

  1. Hi,

    Jetzt möchte ich die Werte von ops_komponenten ausgeben, allerdings in der Reihenfolge, in welcher deren IDs über $ergebnis_links ausgegeben wurden.

    Beschaeftige dich mit JOINs.
    http://aktuell.de.selfhtml.org/artikel/datenbanken/

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. http://aktuell.de.selfhtml.org/artikel/datenbanken/

      Vielen Dank! Diese Artikel helfen mir sehr, da ich bisher immer auf das Normalisieren verzichtet habe (wegen der Abfrage).

      Habe jetzt folgende Abfrage zusammengebaut:

      $abfrage = "SELECT * FROM ops_link JOIN ops_komponenten WHERE nr_komp = ops_komponenten.id ORDER BY nr_rel ASC";

      Leider kommt keine Ausgabe. Da aber auch ohne WHERE und ORDER BY -Anhang nichts rauskommt nehme ich an, ich hab da noch irgendwas flasch verstanden. Nur was?

      Die Spaltennamen kommen generell nicht doppelt vor (bis auf ID).

      Nochmal zur Verdeutlichung meiner Abfrage.

      ops_link:

      id | nr_rel | nr_komp

      1  | 2      | 5
      2  | 1      | 18
      3  | 3      | 5

      Nach Sortierung nach nr_rel kommt also für nr_komp das Ergebnis [18;5;5].
      Somit soll von ops_komponenten alles abgerufen werden, was bei den IDs 18;5;5 steht. ID 5 soll also in $ergebnis auch doppelt vorkommen.

      Hoffe das ist verständlich.

    2. Sorry, Fehler gefunden. Lag im weiteren Code.

      Funktioniert alles prima!
      Danke nochmal!