Simon: Warum Wiederholung?

Hi,

warum wieder holt der das immer sieben Mal? Wo liegt da der Fehler?

<?php

echo "<font color='green'>In Bearbeitung!</font><br><br>";

$thema_id = "7";

$result = mysql_query('SELECT yim_forum.ID, yim_forum.PID, yim_forum.TID, yim_forum.Thema_ID, DATE_FORMAT(yim_forum.Zeitpunkt,"%T") AS Uhrzeit,
         DATE_FORMAT(yim_forum.Zeitpunkt,"%e.%m.%Y") AS Datum, yim_forum.AutorName, yim_forum.Betreff FROM yim_forum, yim_forum_thema
         WHERE yim_forum.Thema_ID = '.$thema_id.'');
      if(!$result) die("Die Datenbank konnte nicht abgefragt werden.");

// Ergebnisse einlesen
      while($tmp = mysql_fetch_array($result)) {  // Ergebnis holen
         $test_kindarray[ $tmp["PID"] ][] =  $tmp["ID"]; // Vorwärtsbezüge konstruieren
      }

echo "<ul>";

foreach($test_kindarray[0] as $thread) {
      echo "<br>";
        zeichneBaum($thread);
     }
   ?>

Gruß ... Simon

  1. Huhu Simon

    warum wieder holt der das immer sieben Mal? Wo liegt da der Fehler?

    vielleicht weil in der Tabelle yim_forum ein Datensatz für Thema_ID
     den Wert 7 hat und in der Tabelle yim_forum_thema 7 Datensätze stehen. Oder auch andersrum.
    Das Stichwort dazu wäre "kartesisches Produkt".

    Das hier sieht ganz nett aus, kannst ja mal feedback geben ob es Dir weiterhilft:

    http://www.tbee.de/mysql/t3_tabellenverknuepfungen_joinstart.php

    btw. versuche Dein SQL etwas übersichtlicher zu schreiben, z.B. mit
    heredoc-Syntax

    vorher:

    $result = mysql_query('SELECT yim_forum.ID, yim_forum.PID, yim_forum.TID, yim_forum.Thema_ID, DATE_FORMAT(yim_forum.Zeitpunkt,"%T") AS Uhrzeit,
             DATE_FORMAT(yim_forum.Zeitpunkt,"%e.%m.%Y") AS Datum, yim_forum.AutorName, yim_forum.Betreff FROM yim_forum, yim_forum_thema
             WHERE yim_forum.Thema_ID = '.$thema_id.'');

    nachher:
    $sql_query = <<<EOT

    SELECT
     yim_forum.ID,
     yim_forum.PID,
     yim_forum.TID,
     yim_forum.Thema_ID,
     DATE_FORMAT(yim_forum.Zeitpunkt,"%T") AS Uhrzeit,
     DATE_FORMAT(yim_forum.Zeitpunkt,"%e.%m.%Y") AS Datum,
     yim_forum.AutorName,
     yim_forum.Betreff
    FROM
     yim_forum,
     yim_forum_thema
    WHERE
     yim_forum.Thema_ID = $thema_id

    EOT;

    $result = mysql_query($sql_query) OR die (mysql_error());

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Hi,

      vielleicht weil in der Tabelle yim_forum ein Datensatz für Thema_ID
       den Wert 7 hat und in der Tabelle yim_forum_thema 7 Datensätze stehen.

      Stimmt ist der fall ... wie kann ich das umgehen?

      Das hier sieht ganz nett aus, kannst ja mal feedback geben ob es Dir weiterhilft:

      naja sieht ganz nett aus aber ich kann die tabelle jetzt nicht mehr verändern. :(

      Gruß ... Simon

      1. Huhu

        Das hier sieht ganz nett aus, kannst ja mal feedback geben ob es Dir weiterhilft:

        naja sieht ganz nett aus aber ich kann die tabelle jetzt nicht mehr verändern. :(

        Ups, vielleicht habe ich mich nicht deutlich ausgedrückt , ich schrieb
        "das hier sieht ganz nett aus" und meinte eigentlich "lies Dir das mal durch, ich glaube es hilft Dir das Problem zu verstehen und zu lösen".

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
  2. Hallo Simon!

    warum wieder holt der das immer sieben Mal? Wo liegt da der Fehler?

    Aha. Der Fehler liegt vermutlich am Script.
    (diese antwort ist genau so aussagekraeftig, wie Deine Frage ;)

    Was genau wiederholt sich denn sieben mal?

    Hast Du mal Deine SQL-Abfrage geprueft, ob die auch wirklich das zurueckliefert, was Du haben willst?

    MfG
    Götz

    --
    Losung und Lehrtext für Mittwoch, 10. Dezember 2003
    Du sollst nicht töten. (2.Mose 20,13)
    Liebt eure Feinde und bittet für die, die euch verfolgen. (Matthäus 5,44)
    (http://www.losungen.de/heute.php3)