Problem mit Schleife und Link, in den Variablen eingefügt werden sollen

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

  • Problem mit Schleife und Link, in den Variablen eingefügt werden sollen

    Super Board hier!!!
    Ich habe mal wieder ein kleines Problem mit meiner Datenbank. Erstmal zur kurzen Erklärung, ich habe unter anderem die Tabellen Foto(mit FotoNr, Titel, FotografenNr ...) und Bewertet(mit FotoNr, Note....).
    Ich möchte nun eine Liste haben, in der die 10 Fotos mit den besten Durchschnittsnoten aufgeführt sind (jedes Foto kommt in der Tabelle „Foto“ nur einmal vor und wird in der Tabelle „Bewertet“ von mehreren Nutzern bewertet, die FotoNr ist in der Tabelle „Foto“ Primärschlüssel)und der Titel jeweils verlinkt ist zu dem entsprechenden Foto. Die Fotos sollen in einem Standardsystem abgespeichert werden z.B. http://localhost/FotografenNr/FotoNr.jpg, wobei die FotografenNr und die FotoNr direkt aus dem Ergebnis der MYSQL-Abfrage übernommen werden sollen und dann eben noch die „/“ und das „.jpg“ dazwischen-/dazugefügt werden müssen.
    Hier der entsprechende Teil meines Skriptes:

    $query="SELECT Foto.FotoNr, Titel, AVG(Note) AS Durchschnittsnote, FotografenNr FROM Foto, Bewertet WHERE Foto.FotoNr = Bewertet.FotoNr GROUP BY Foto.Titel ORDER BY Durchschnittsnote LIMIT 10";
    $result=mysql_query($query,$connection);
    echo "<table border=1 align=left><tr><td>Fotograf:</td></tr>";
    $spaltenzahl=mysql_num_fields($result);
    for ($i=0;$i<$spaltenzahl;$i++) {
    echo "<th>";
    echo mysql_field_name($result,$i);
    echo"</th>"; }
    while (list($FotoNr, $Titel, $Durchschnitt, $FotografenNr)=mysql_fetch_row($result))
    { echo "<tr>";
    echo "<td>"."<a href='http://localhostFotobewertungssystem/'.$FotografenNr.'/'.$FotoNr.'.jpg'>$Titel</a>"."</td>";
    for ($i=1;$i<$spaltenzahl;$i++)
    {
    echo "<td>".$FotoNr.$Durchschnitt.$FotografenNr."</td>";}
    echo "</tr>";
    }
    echo "</table>";

    Zum einen geht das mit dem Link irgendwie nicht, weil da wohl irgendwas mit den ganzen Hochkommas und Anführungszeichen falsch sortiert ist und zum anderen, wenn ich das mit dem Link weglasse, wird bei jedem Foto der selbe Durchschnitt, die selbe FotografenNr und die selbe FotoNr (jeweils eine sehr seltsame Kommazahl, die ich mir nicht erklären kann) ausgegeben. Daher ist wohl auch irgendwas an der Schleife falsch.
    Wäre super, wenn mir mal wieder jemand helfen könnte.

  • #2
    PHP-Code:
    while (list($FotoNr$Titel$DurchschnittFotografenNr)=mysql_fetch_row($result)) {
      echo 
    "<tr>";
      echo 
    "<td>"."<a href='http://localhostFotobewertungssystem/'.$FotografenNr.'/'.$FotoNr.'.jpg'>$Titel</a>"."</td>";
      for (
    $i=1;$i<$spaltenzahl;$i++)
        echo 
    "<td>".$FotoNr.$Durchschnitt.$FotografenNr."</td>";
      echo 
    "</tr>";

    - syntax highlighting anschauen
    - while und for? was soll der mist? denk nach und du wirst deinen fehler finden.

    sapere aude!

    EDIT:
    aint even sql
    Zuletzt geändert von derHund; 05.06.2004, 14:54.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Saß wohl vorhin aufm Schlauch, also das mit den Schleifen geht jetzt. Ich hatte da ne ziemlich Denkblockade.

      Aber das mit dem Link geht noch nicht.
      Er macht den Link nur zu http://localhostFotobewertungssystem/ und ignoriert die Variablen dahinter.
      Zu diesem Thema mit den Links und Variablen darin, habe ich schon hier im Forum ausführlich gesucht und nichts passendes gefunden.
      Wäre nett, wenn mir da jemand helfen könnte.
      Danke

      Kommentar


      • #4
        - syntax highlighting anschauen
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          hatte noch was vergessen:
          Das sehe ich ja auch am syntax highlighting, dass das mit dem Link nicht funktionieren kann. Hatte die ganzen Anführungszeichen aber auch schon so sitzen, dass es so aussah, als würde es stimmen, hat aber auch dann nicht funktioniert. Diese Fassung fand ich außerdem extrem unlogisch und daher hab ich lieber die hier hingeschrieben, weil sie mir einigermaßen sinnvoll erschein....

          Kommentar


          • #6
            Also, jetzt geht es so halbwegs. Der neue Skriptteil ist jetzt so:
            $query="SELECT Foto.FotoNr, Titel, AVG(Note) AS Durchschnittsnote, FotografenNr FROM Foto, Bewertet WHERE Foto.FotoNr = Bewertet.FotoNr GROUP BY Foto.Titel ORDER BY Durchschnittsnote LIMIT 10";
            $result=mysql_query($query,$connection);
            echo "<table border=1 align=left><tr><td>Top Ten:</td></tr>";
            $spaltenzahl=mysql_num_fields($result);
            for ($i=0;$i<$spaltenzahl;$i++) {
            echo "<th>";
            echo mysql_field_name($result,$i);
            echo"</th>"; }
            while (list($FotoNr, $Titel, $Durchschnitt, $FotografenNr)=mysql_fetch_row($result))
            { echo "<tr>";
            echo "<td>".$FotoNr."</td>";
            echo "<td>"."<a href='http://192.168.120.254/Fotobewertungssystem/".$FotografenNr."/".$FotoNr.".jpg>".$Titel."</a>"."</td>";
            echo "<td>".$Durchschnitt."</td>";
            echo "<td>".$FotografenNr."</td>";
            }
            echo "</table>";

            Allerdings macht er das mit den Link nur beim ersten Bild halbwegs richtig, er stellt zwar den Link auf, aber mit einer falschen FotografenNr und einer falschen FotoNr.
            Bei dem zweiten Bild stimmt nur die FotografenNr.
            Und beim dritten Bild ist gar kein Link,sondern in dem Feld steht nur der Anfang des Quelltextes von dem Link.
            Danach müssten eigentlich noch mehr Bilder in der Liste sein, sind aber nicht.
            Was jetzt?

            Kommentar


            • #7
              Vergesst alles, was ich gesagt habe. Hab selbst entdeckt, dass ich ein Hochkomma vergessen hatte.

              Kommentar

              Lädt...
              X