• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Nummerierte Liste bei Datenbankabfrage

lacido

Mitglied
Hallo zusammen,

ich versuche bereits seit gestern eine Datenbankabfrage zu erstellen und die Abfrage in einer Tabelle darstellen zu lassen.

Beim Abfragen mit html Tags (<ol>) funktioniert das auch ganz gut, nur die Abgrenzung der Spalten gefällt mir nicht.

Code:
<?php
    require_once("Php-include/Daten/DatZugLoc.php");

    $Ipadresse =$_SERVER['REMOTE_ADDR'];
    $Webseite = BASENAME($_SERVER['SCRIPT_NAME']);
    $Dateigroesse = filesize($Webseite);
    $Referer = $_SERVER['HTTP_REFERER'];


    echo ("Größe der Webseite - <b>" . $Webseite . " " . $Dateigroesse . " Byte</b> . $Referer");

    $Verbindung = mysqli_connect($Server, $BenutzerName, $Passwort);

    if ($Verbindung){
            mysqli_select_db($Verbindung, $Datenbank);

        if(mysqli_error($Verbindung)){
             echo 'Fehler: ' . mysqli_error($Verbindung);
             }
            else{
                /*Limit gibt die Anzahl der Datensätze aus die Angezeigt werden sollen.
                 * ohne LIMIT werden alle vorhandenen Datensätze angezeigt*/
                $Sql ="SELECT * FROM seitenaufrufe ORDER BY Aufrufe DESC LIMIT 0,25";
                 /* Abfragevariable erstellen */
                $Abfrage = mysqli_query($Verbindung, $Sql);

                echo "<ol>";

                while ($Seiten = mysqli_fetch_assoc($Abfrage)){
                echo "<li>{$Seiten['Rubrik']}{$Seiten['Aufrufe']}</li>";
                    }
                    echo "</ol>";
                }
    }
    else{
        echo 'Verbindungsfehler: ' . mysqli_connect_error($Verbindung);


    }
?>

Beim erstellen einer Tabelle funktioniert auch alles nur bekomme ich einfach die Nummerierung nicht hin.

Code:
<?php
    require_once("Php-include/Daten/DatZugLoc.php");

    $Ipadresse =$_SERVER['REMOTE_ADDR'];
    $Webseite = BASENAME($_SERVER['SCRIPT_NAME']);
    $Dateigroesse = filesize($Webseite);
    $Referer = $_SERVER['HTTP_REFERER'];



    $Verbindung = mysqli_connect($Server, $BenutzerName, $Passwort);

    if ($Verbindung){
            mysqli_select_db($Verbindung, $Datenbank);

        if(mysqli_error($Verbindung)){
             echo 'Fehler: ' . mysqli_error($Verbindung);
             }
            else{
                /*Limit gibt die Anzahl der Datensätze aus die Angezeigt werden sollen.
                 * ohne LIMIT werden alle vorhandenen Datensätze angezeigt*/
                $Sql ="SELECT * FROM seitenaufrufe ORDER BY Aufrufe DESC LIMIT 0,25";
                 /* Abfragevariable erstellen */
                $Abfrage = mysqli_query($Verbindung, $Sql);
                /*Überschrift Datenausgabe*/
                echo "<h2><center>Sie haben aktuell " . mysqli_num_rows($Abfrage) . "  Webseiten in der Datenbank gelistet.</h2></center>";

                echo "<ol>";

                while ($Seiten = mysqli_fetch_assoc($Abfrage)){
                    echo '<table border="1" cellspacing="1" cellpadding="5" >';

                    echo"<td width=20><li></li></td><td width=350>{$Seiten['Rubrik']}</td><td width=50 align=right>{$Seiten['Aufrufe']}</td>";
                    }
                    echo"</ol>";
                    echo"</table>" ;
                }

    }
    else{
        echo 'Verbindungsfehler: ' . mysqli_connect_error($Verbindung);


    }
?>

Wo liegt der Fehler in der 1. Spalte die Nummerierung darzustellen, bei mir erscheint nur ein kl. Kreis, bzw. welche Möglichkeit der Listendarstellung bevorzugt Ihr ?


Danke für Eure Mühe

Viele Grüße Lacido
 
Hast du dir den erzeugten Code mal angesehen? Mir schein, da ist zum einen eine unnötige List <ol>, dann beginnst in der Loop für jede Zeile eine neue Tabelle und bei der fehlt die <tr>.
 
Hallo NetAktiv,

vielen Dank für Deine Antwort.

Hier noch zusätzlich die Bildschirmausgabe in der Reihenfolge des oben angeführten codes.

Ich hatte es bereits mit und ohne <ol> Tagsprobiert auch mit <tr> es funktioniert so auch nicht.

Normale Listen ausgabe mit <ol> und <li> Tags
Screenshot - 28.08.2011 , 14_43_23.jpg

Tabellenausgabe ebenfalls nur mit <ol> und <li> Tags
Screenshot - 28.jpg

mein Wunsch wäre es einzig und allein die Nummerierung ebenfalls in der Tabellendarstellung einzubringen.


Viele Grüße

Lacido
 
Für die Nummerierung gibt es in MySql einen speziellen Feldnamen (vergessen wie der war) den du die beim Select mit holen kannst oder nimm in der Loop einen eigenen $Counter, den du hochzählst und in Spalte 1 ausgibst.
 
Hallo zusammen,

vielen Dank für Eure Hilfe, ich habe das ganze jetzt so gelöst, über die $i - Var.

Code:
    $Verbindung = mysqli_connect($Server, $BenutzerName, $Passwort);

    if ($Verbindung){
            mysqli_select_db($Verbindung, $Datenbank);

        if(mysqli_error($Verbindung)){
             echo 'Fehler: ' . mysqli_error($Verbindung);
             }
            else{
                /*Limit gibt die Anzahl der Datensätze aus die Angezeigt werden sollen.
                 * ohne LIMIT werden alle vorhandenen Datensätze angezeigt*/
              
                  $Sql= "SELECT Rubrik, Aufrufe  FROM seitenaufrufe WHERE Rubrik NOT IN ('index.php')ORDER BY Aufrufe  DESC LIMIT 0,25";
                  /* Abfragevariable erstellen */
                $Abfrage = mysqli_query($Verbindung, $Sql);
                /*Überschrift Datenausgabe*/
                echo "<h2>Die Top - " . mysqli_num_rows($Abfrage) . " -  aufgerufenen Webseiten:</h2>";

                $i = 0;

                while ($Seiten = mysqli_fetch_assoc($Abfrage)){
                    $i++;
                    echo '<table border="0" cellspacing="10" cellpadding="5" align="center">';

                    echo"<td width=30 align=right>$i.</td><td width=350>{$Seiten['Rubrik']}</td><td width=50 align=right>{$Seiten['Aufrufe']}</td>";
                    }
                    echo"</table>" ;
                }
    }
    else{
        echo 'Verbindungsfehler: ' . mysqli_connect_error($Verbindung);
    }
?>


Die Tabellen darstellung ist zwar nicht die sauberste Lösung, aber es reicht für den Moment.

Die Lösung mit CSS wäre mir zwar Lieber, allerdings habe ich keine möglichkeit gefunden die Datensätze nebeneinander einigermaßen lesbar darzustellen. Es funktioniert einfach nicht das ganze mit <ol><li> darzustellen und eine gleiche Darstellung wie in der Tabellenansicht zu erhalten.

Anhang anzeigen 2170

Ich kriege die Anzahl der Aufrufe einfach nicht sauber dahinter. Sollte noch jemand eine anderen Vorschlag haben, bin ich sehr interessiert.

Nochmals Danke für Eure Mühe.
 
Zuletzt bearbeitet:
hallo lacido

wenn du Deine Ergebnisse mit <ol><li> ausgibst, könntest du die Anzahl der Aufrufe in einem <span> Tag ausgeben und das dann per CSS abweichend Positionieren/Gestalten.

so in der Art:
Code:
<ol>
    <li>Rubrik 1<span class="anzahl">Anzahl</span></li>
    <li>Rubrik 2<span class="anzahl">Anzahl</span></li>
  u.s.w....
</ol>
 
Zurück
Oben