[PHP + MYSQL] Tabellen verknüpfen, Newssystem Problem

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

  • [PHP + MYSQL] Tabellen verknüpfen, Newssystem Problem

    Hallo,

    Vorweg: ich bin noch Anfänger
    folgendes Problem:

    ich habe ein kleines Newssystem geschrieben, das die News in Sparten aufteilen soll. Ich habe hier die dates.php, durch die die Datensätze ausgelesen werden sollen und gezeigt werden. In meiner mysql Datenbank habe ich 2 Tabellen erstellt; einmal "dates" und einmal "dates_sparten.
    In "dates" wird ID|Titel|Datum|Inhalt abgerufen und in "dates_sparten" sparte_id(auto_increment)|Sparte ...
    Das Problem ist, dass die Sparte in Zeile 60 nicht angezeigt wird. Ich habe den VErdacht, dass da ein grundsätzliches Problem vorliegt .. vielleicht weiss ja jmd. was:

    PHP-Code:
    <?php
    // dates.php

    ////////////// Alle Konzertdaten /////////////////
    /* Datensätze auslesen */
    if ($show == "current") {
    $sql "SELECT 
              ID,
              Datum,
              Inhalt,
              Titel
              FROM
              dates 
            ORDER BY
              Datum DESC
            LIMIT 
              10"
    ;
    $data mysql_query($sql) or die(mysql_error());

    /* Datensätze anzeigen */
    echo "<img src=\"gfx/arrow.gif\"><b>  Dates:</b><br><br>";
    while (
    $sql mysql_fetch_assoc($data)) {
          echo 
    "<a id=\"schrift\"><img src=\"gfx/dot.gif\">&nbsp;".$sql['Datum']."</a>   -   ";
          
          echo 
    "<b><a>  -  </a></b>";
          echo 
    "<a href=\"index.php?section=dates&show=date&id=".$sql['ID']."\">".$sql['Titel']."</a><br>";
          }
    echo 
    "<br><br><hr>";
    }

    if (
    $show == "date") {
    $sql "SELECT 
              ID,
              date_format(Datum,'%d.%m.%Y') as Datum,
              Inhalt,
              Titel
              FROM
              dates
            WHERE
              ID = 
    $id
            ORDER BY
              Datum DESC"
    ;
    $data mysql_query($sql) or die(mysql_error());
    $sql2 "SELECT
              id,
              Sparte,
              date_id
            FROM
              dates_sparten
            WHERE
              date_id = "
    .$sql['ID']."
            ORDER BY
              date_id DESC"
    ;
    $data2 mysql_query($sql) or die(mysql_error());

    /* Datensätze anzeigen */
    while ($sql mysql_fetch_assoc($data)) {
          echo 
    "<b>".$sql['Datum']."</b>   -   ";
            while (
    $sparten mysql_fetch_assoc($get_sparten)) {
          echo 
    $get_sparten['Sparte'];
            }
          echo 
    "<b><i>".$sql['Titel']."</b></i><br><hr>";
          echo 
    "<a>".nl2br($sql['Inhalt'])."</a><br><br><br><br>";
          echo 
    "<a href=\"index.php?section=dates&show=current\" id=\"text\">Zurück</a>";
          }
    }
    ?>
    Nene, soviel Sand und keine Förmchen!

  • #2
    Zeile 60
    ich fang schon mal an zu zählen:
    1... 2.. 3... 4...

    Kommentar


    • #3
      JOINS benutzen. Damit geht das alles in einer Abfrage...
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar


      • #4
        übrigens, ich tippe darauf, dass $data2 das ergebnis einer falschen query bekommt. nur so von den variablennamen her...

        Kommentar


        • #5
          Danke schonmal ,werd mir das mal anschauen.
          @Penizillin: Einmal Copy und Paste und Du hast Z.60 .

          Gruss
          Nene, soviel Sand und keine Förmchen!

          Kommentar


          • #6
            PHP-Code:
            <?php
            // dates.php

            ////////////// Alle Konzertdaten /////////////////
            /* Datensätze auslesen */
            if ($show == "current") {
            $sql "SELECT 
                      ID,
                      Datum,
                      Inhalt,
                      Titel
                      FROM
                      dates 
                    ORDER BY
                      Datum DESC
                    LIMIT 
                      10"
            ;
            $data mysql_query($sql) or die(mysql_error());

            /* Datensätze anzeigen */
            echo "<img src=\"gfx/arrow.gif\"><b>  Dates:</b><br><br>";
            while (
            $sql mysql_fetch_assoc($data)) {
                  echo 
            "<a id=\"schrift\"><img src=\"gfx/dot.gif\">&nbsp;".$sql['Datum']."</a>   -   ";    
                  echo 
            "<b><a>  -  </a></b>";
                  echo 
            "<a href=\"index.php?section=dates&show=date&id=".$sql['ID']."\">".$sql['Titel']."</a><br>";
                  }
            echo 
            "<br><br><hr>";
            }
            /* Details anzeigen */
            if ($show == "date") {
            $sql "SELECT 
                      dates.ID AS dateID,
                      dates.Datum AS Datum,
                      dates.Inhalt AS dateinhalt,
                      dates.Titel AS datetitel
                    FROM
                      dates
                    LEFT JOIN dates_sparten ON (dates.ID=dates_sparten.id)
                    GROUP BY
                      dates.id;"
            ;
            $data mysql_query($sql) or die(mysql_error());

            /* Datensätze anzeigen */
            while ($sql mysql_fetch_assoc($data)) {
                  echo 
            "<b>".$sql['Datum']."</b>   -   ";
                  echo 
            "<b><i>".$sql['Titel']."</b></i><br><hr>";
                  echo 
            "<a>".nl2br($sql['Inhalt'])."</a><br><br><br><br>";
                  echo 
            "<a href=\"index.php?section=dates&show=current\" id=\"text\">Zurück</a>";
                  }
            }
            ?>
            Das ist was ich jetzt raushabe. Leider wird ab dem Datum nichts mehr angezeigt. Ist das denn vom Ansatz richtig so ?

            Gruss
            Nene, soviel Sand und keine Förmchen!

            Kommentar


            • #7
              Keine 'ne Idee ? :-/

              Gruss
              Nene, soviel Sand und keine Förmchen!

              Kommentar


              • #8
                Doch

                schau mal deine Query an und vergleiche mit deinem Auslesevorgang. Tipp: Index und Spaltenalias prüfen

                Kommentar

                Lädt...
                X