SQL JOIN Befehl

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

  • #16
    Original geschrieben von jazzdee
    das fettgedruckte ist immer noch nicht richtig.
    dann lasse es doch mal weg.

    Original geschrieben von jazzdee
    kannst du mir nicht die eine zeile eben sagen?
    wieso? ich weiss ja nicht was du machen willst...

    Original geschrieben von jazzdee
    ich möchte php lernen und nicht probieren.
    dafür gibt es bücher und nicht das forum.
    das forum dient einem anderen zweck.
    aber nicht zum erlernen von php.
    schaue auch mal z.b. bei www.schattenbaum.net/php vorbei.

    Original geschrieben von jazzdee
    wenn ich es einmal gemacht habe, werde ich es auch ein zweitesmal schaffen.
    glaube ich dir gerne. aber s.o.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #17
      du hast mir doch tipps gegeben, wie es seien muss und jetzt sagst du, du hast garkeine ahnung was ich überhaupt machen will ?!?!

      es sollen einfach alle artist mit den dazugehörigen alben angezeigt werden

      also z.b.

      eminem - the eminem show
      50 cent - get rich or die trying
      2pac - all eyez on me


      und all die informationen werden nunmal durch die ganzen IDs in den 3 tabellen geholt.
      ich habe auch schon eine lösung die klappt, nur habe ich dort nicht die möglichkeit zu sortieren.
      jetzt ist die übersicht komplett durcheinander. und der übersicht wegen soll es sortiert sein.

      ich lese übrigens bücher über php und schattenbaum habe ich auch besucht, nur finde ich da keine lösung für dieses problem (das scheint ziemlich kompliziert zu sein, wenn man erst seit 1 monat proggt)

      und ich dachte, dass forum sei zum helfen ! andauernd wird gesagt lern das mal. meiner meinung nach ist diese plattform dazu da leuten die probleme bei ihren versuchen haben zu helfen !!!

      Kommentar


      • #18
        du hast mir doch tipps gegeben, wie es seien muss und jetzt sagst du, du hast garkeine ahnung was ich überhaupt machen will ?!?!
        ich kann auch helfen, wenn ich genau weiss, was jemand vor hat. es ist eine reine syntax-frage....

        ich habe auch schon eine lösung die klappt, nur habe ich dort nicht die möglichkeit zu sortieren.
        zeige mal diese lösung. ein ORDER BY ist schnell eingefügt.

        meiner meinung nach ist diese plattform dazu da leuten die probleme bei ihren versuchen haben zu helfen !!!
        das stimmt auch. aber es ist nicht zum lernen oder zum 'mach mal' gedacht, sondern um zu helfen...
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #19
          hier, das ist meine erste lösung:

          PHP-Code:
          <?php
          include ("include/db_connect.php");
          $cd_test_SQL="SELECT * FROM cd_test_$dbPraefix WHERE kategorie='$kategorie'";
          $cd_test_result=mysql_query($cd_test_SQL);
          while(
          $cd_test mysql_fetch_array($cd_test_result)){

          $album_id $cd_test['album_id'];
          $album_SQL "SELECT * FROM album_$dbPraefix WHERE album_id='$album_id'";
          $album_result mysql_query($album_SQL);

          ?>
                            
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <?php 
            
          while($album=mysql_fetch_array($album_result)){
            
          $artist_id $album['artist_id'];
            
          $artist_SQL "SELECT * FROM artist_$dbPraefix WHERE artist_id='$artist_id'";
            
          $artist_result mysql_query($artist_SQL);
            
          $artist mysql_fetch_array($artist_result);
            
            
          ?>
            <tr> 
              <td class="strichUnten">
                <?php
          //Hier werden die Datensätze ausgegeben (in diesem Fall sind es die verschiedenen Genre

          echo "<a href=index.php?cd_test_id=" $cd_test['cd_test_id'] ."&action=cd_test_artist"">" .$artist['artist_name']."&nbsp;-&nbsp;".$album['album_name']. "</a>";

          ?>
              </td>
              <?php
          }}
          mysql_close();
          ?>
            </tr>
          </table>
          aber ich glaube nicht, dass es so einfach ist, dort ein order by einzubauen

          Kommentar


          • #20
            doch klar....

            bei $album_SQL machst du das ORDER BY album hinten mit in den string.
            und bei $artist_SQL machst du das ORDER BY artist.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #21
              poste auch mal deine tabellenstrukturen.

              denn das muss ja auch in einer abfrage sauber gehen. nur wenn ich die genau struktur nicht kenne ....
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #22
                du meinst also:
                $album_SQL = "SELECT * FROM album_$dbPraefix WHERE album_id='$album_id' ORDER BY album_name";

                und:
                $artist_SQL = "SELECT * FROM artist_$dbPraefix WHERE artist_id='$artist_id' ORDER BY artist_name";


                tabellenstruktur:
                # Tabellenstruktur für Tabelle `album_1`
                #

                CREATE TABLE album_1 (
                album_id int(11) NOT NULL auto_increment,
                album_name varchar(50) NOT NULL default '',
                artist_id int(11) NOT NULL default '0',
                release_datum varchar(20) NOT NULL default '',
                cover varchar(250) NOT NULL default '',
                bemerkung longtext NOT NULL,
                PRIMARY KEY (album_id),
                UNIQUE KEY album_name (album_name),
                KEY album_id (album_id)
                ) TYPE=MyISAM;
                # --------------------------------------------------------

                #
                # Tabellenstruktur für Tabelle `artist_1`
                #

                CREATE TABLE artist_1 (
                artist_id int(11) NOT NULL auto_increment,
                artist_name varchar(50) NOT NULL default '',
                genre_id int(11) NOT NULL default '0',
                coast_id int(11) NOT NULL default '0',
                bemerkung longtext NOT NULL,
                bild varchar(250) NOT NULL default '',
                name varchar(150) NOT NULL default '',
                geburtsdatum varchar(150) NOT NULL default '',
                geburtsort varchar(150) NOT NULL default '',
                PRIMARY KEY (artist_id),
                KEY artist_id (artist_id)
                ) TYPE=MyISAM;
                # --------------------------------------------------------

                #
                # Tabellenstruktur für Tabelle `cd_test_1`
                #

                CREATE TABLE cd_test_1 (
                cd_test_id int(11) NOT NULL auto_increment,
                album_id int(11) NOT NULL default '0',
                artist_id int(11) NOT NULL default '0',
                bemerkung longtext NOT NULL,
                zeit varchar(50) NOT NULL default '',
                bewertung int(1) NOT NULL default '0',
                kategorie varchar(200) NOT NULL default '',
                PRIMARY KEY (cd_test_id)
                ) TYPE=MyISAM;

                Kommentar


                • #23
                  du meinst also: [...]
                  ja. aber das kannst du auch mal testen, bevor du postest...


                  hier mal einen einfach abfrage für artist/album

                  Code:
                  SELECT
                      artist_name,
                      album_name
                  FROM
                      artist_1 AR
                          LEFT JOIN album_1 AL USING(artist_id)
                  
                  ORDER BY
                      AR.artist_name,
                      AL.album_name

                  - was machst du mit cd_test?
                  - was machst du mit dem geburtsdatum , wenn es sich um eine band mit 4 mitgliedern handelt?

                  irgendwie scheint mit deinen DB nicht sauber strukturiert zu sein.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #24
                    ja. aber das kannst du auch mal testen, bevor du postest...
                    tja...nicht so voreilig.....hab ich als aller aller erstes ausprobiert. funktioniert nämlich nicht.

                    was machst du mit dem geburtsdatum , wenn es sich um eine band mit 4 mitgliedern handelt?
                    es wird keine bands geben. es gibt so gut wie keine hip hop gruppe (und wenn, dann haben sie alle ihre solo lps)
                    das ist schon so beabsichtigt

                    Kommentar


                    • #25
                      ok.
                      klappt denn jetzt die neue abfrage von mir bei dir?
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #26
                        jo die klappt.
                        nur die bringt mir nix

                        so werden alle alben angezeigt mit den dazugehörigen artists.

                        aber ich möchte nur die alben anzeigen, über die auch ein preview geschrieben wurde.
                        also muss man da irgendwie noch cd_test_1 einbauen

                        Kommentar


                        • #27
                          Original geschrieben von jazzdee
                          also muss man da irgendwie noch cd_test_1 einbauen
                          kein problem.

                          ist das jetzt so gut?


                          Code:
                          SELECT
                              artist_name,
                              album_name,
                              CD.bemerkung
                          
                          FROM
                              artist_1 AR
                                  LEFT JOIN album_1 AL USING(artist_id)
                                      LEFT JOIN cd_test_1 CD USING(album_id)
                          
                          WHERE
                              CD.bemerkung != ''
                              
                          ORDER BY
                              AR.artist_name,
                              AL.album_name
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #28
                            vielen dank
                            du warst meine rettung.
                            thx

                            Kommentar


                            • #29
                              Original geschrieben von jazzdee
                              du warst meine rettung.
                              wenn du schon vorher die tabs gepostet hättest und gesagt hättest, was du willst, hättest du es bestimmt schon eher so haben können..
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar


                              • #30
                                ähmm sorry, aber ich habe das alles schon im startthread geschrieben

                                aber ein klitzekleines problem besteht noch:

                                PHP-Code:
                                echo "<a href=index.php?cd_test_id=" $data['cd_test_id'] ."&action=cd_test_artist"">" .$data['artist_name']."&nbsp;-&nbsp;".$data['album_name']. "</a>"
                                artist_name und album_name werden korrekt angezeigt, aber warum bekomme ich die cd_test_id nicht?
                                diese ist zwingend notwendig

                                Kommentar

                                Lädt...
                                X