Ankündigung

Einklappen
Keine Ankündigung bisher.

MySql - 3 tabellen-verknüpfung - alphabetische ausgabe

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySql - 3 tabellen-verknüpfung - alphabetische ausgabe

    hi. Ich habe händler und dazu waren. diese beiden sollen je nach dem welcher händler welche waren anbietet verknüpft werden. dazu verwende ich 3 tabellen. eine mit den händlern, eine mit den Waren und eine um die IDs dieser beiden zu Verknüpfen. Diese Verknüpfung hab ich auchvon hier bekommen. (also dass man das so macht). Mein problem ist jetzt nur, dass ich die waren der je nach händler ausgewählten IDs alphabetisch soritiert ausgeben möchte. Leider fällt mir dazu jetzt wirklich nichts ein. =/

  • #2
    ...ORDER BY...


    www.google.de
    www.mysql.de

    Kommentar


    • #3
      mom, ich merke jetzt, dass mein einleitungspost totaler schrott war/ist.
      ORDER BY kenne ich natürlich.

      erstmal den quelltext
      PHP-Code:
      <?php
      $index 
      mysql_query("select name from wot_places where id='$id' order by typ, name ASC"$db);
          
      $city_name mysql_fetch_assoc($index);
          
          
      $t_index mysql_query("select * from wot_traders where place='$id' order by sort, name ASC"$db);
          echo 
      "<tr><td align='left' valign='top' colspan='2'><b class='titel'>$city_name[name][/b]</td></tr>";
          while (
      $t_daten mysql_fetch_assoc($t_index))
          {
            echo 
      "<tr><td align='left' valign='top' width=220>
            Name: <font class=titel_small>
      $t_daten[name]</font>
      Beruf: 
      $t_daten[typ]</td>
            <td align='left' valign='top' width=50>Waren:</td><td align='left' valign='top'>"
      ;

            
      $ti_index mysql_query("select * from wot_traders_items where tid='$t_daten[id]' order by iid ASC"$db);
            echo
      "<table width='100%'>";
            while (
      $ti_daten mysql_fetch_assoc($ti_index))
              {
                
      $i_index mysql_query("select * from wot_items where id='$ti_daten[iid]' order by id ASC"$db);
                while (
      $i_daten mysql_fetch_assoc($i_index))
                {
                  echo 
      "<tr>
                  <td align='center' valign='middle'>[img]images/items/
      $i_daten[img][/img]</td>
                  <td align='left' valign='middle'>
      $i_daten[name]</td>
                  <td align='right' valign='middle'>
      $i_daten[preis] $i_daten[einheit]</td>
                  </tr>"
      ;
                }
              }
              echo
      "</table>";
            echo 
      "</td></tr>";
          }
          
          echo 
      "</td></tr></table>";
      ?>
      also wie unschwer zu erkennen ist, frage ich für einen bestimtmen ort die händler ab, mit denen ich dann in der verknüpfungstabelle die IDs der Waren heraushole und dann dafür die jeweilgen daten aus der waren tabelle.
      nur kann ich aus der verknüpfungs tabelle ja nicht alphabetisch sortiert lesen. sondern nur der reihenfolge nach in der die jeweilige id des händlers kommt, oder?

      Kommentar


      • #4
        Wie sieht denn deine Tabellenstruktur aus und warum verwendest du drei statt einer Abfrage?

        Kommentar


        • #5
          Code:
          händler tabelle: (wot_traders)
          id   	bigint(50) //id eben
          name  	varchar(255) //name des händlers
          place  	bigint(50) //der ort wo der ist
          typ  	varchar(255) //typ des händelers: kaufmann, runen, etc
          sort  	varchar(255) //sortierung (a,b,b...)
          
          waren tabelle: (wot_items)
          id   	bigint(50) //id
          name  	varchar(255) //name der ware
          img  	varchar(255) //pfas zu bild
          preis  	varchar(255) //preis
          einheit  varchar(255) //währung
          
          verknüpfungstabelle (wot_traders_items)
          tid   	bigint(50) //id des händlers
          iid  	bigint(50) //id der ware
          warum ich 3 statt einer abfrage verwende? ka . vielleicht weil das hier da anfänger forum ist
          Aber ich lerne gerne, also sag mir wie ich das in eine bekomme und dann auch sortiert.

          danke im voraus und gute nacht

          Kommentar


          • #6
            Versuche es mal hiermit:
            Code:
            SELECT
                wt.name,
                wi.name
            FROM
                wot_traders AS wt
            INNER JOIN
                wot_traders_items AS wti
            ON
                wt.id = wti.tid
            INNER JOIN
                wot_items AS wi
            ON
                wti.iid = wi.id
            ORDER BY
                wi.name

            Kommentar

            Lädt...
            X