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

Schleifen !

skype90

Mitglied
hallo ,

Ich habe da mal paar fragen die ich mal loswerden will es geht um ein Newskript der wie folgst aussieht :

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// die MySQL-Daten entsprechend anpassen
$db = @new MySQLi('localhost', 'username', 'pass', 'dbname');
if (mysqli_connect_errno()) {
    die('Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error());
    // ist zwar keine saubere Fehlermeldung aber ist ja auch nur ne einfache Inplementierung
}

include 'header.html'; // DOCTYPE, <html>, <head>, und was dazugehört
                       // inclusive den <body>-Tag
$sql = 'SELECT
    Titel,
    Datum,
    Inhalt
FROM
    News
ORDER BY
    Datum DESC';
// "ORDER BY" damit die Datensätze nach der Datumsspalte sortiert werden, absteigend

$result = $db->query($sql);
if (!$result) {
    die ('Konnte den Folgenden Query nicht senden: '.$sql."<br />\nFehlermeldung: ".$db->error);
}
if (!$result->num_rows) {
    echo '<p class="info">Es sind keine Newsbeiträge vorhanden</p>';
} else {
    while ($row = $result->fetch_assoc()) {
        echo '<h1>'.$row['Titel']."</h1>\n";
        echo '<h2>'.$row['Datum']."</h2>\n";
        echo '<p>'.$row['Inhalt']."</p>\n";
    }
}
include 'footer.html'; // </body>, </html> und vielleicht noch irgendwelche copyright notes
?>
Ich habe soweit das Skript verstanden jetzt qäult mich jetzt eine Frage warum muss ich eine Schleife bilden um den Inhalt der gespeicherten Daten in einer Datenbank anzeigen zu lassen ? warum kann ich es einfach nicht so anzeigen sprich ohne Schleife wozu eine Schleife ? Und so eine art Schleife kenne ich nicht ich kenne nur so eine wo eine bedingung erst erfüllt werden muss um die Schleife abzubrechen.



mfg

skype90
 
Alsoo. In einer Datenbank hast du ja mehrere Datensätze.
Du machst einen neuen Eintrag und da steht drin: Titel, Datum und Inhalt.
$result->fetch_assoc() gibt bei jeder neuen Ausführung einen Datensatz zurück.
Wenn keine datensätze mehr da sind wird false zurück gegeben.
Wenn die schleife als Ergebnis false kriegt wird sie beendet. Das ist aber bei keiner schleife anders.
Du kannst ja mal folgendes machen

echo 8>7;
Das sollte 1 zurückgeben also true
und:
echo 2>14;
Das wird wohl garkeine Ausgabe machen und ist somit false.
und wenn du sagst:
for($i=0; $i<3; $i++)
dann ist eine schleife ja auch nichts anderes als sich eine dauerhaft wiederholende Abfrage
0<3 => true
1<3 => true
2<3 => true
3<3 => false => abbrechen

Und die Schleife in den Script wird halt so lang ausgeführt bis sie ein false kriegt, also in diesem Falle keine Datensätze mehr da sind.
Und meine Frage an dich wäre nun. Wie würdest du es denn machen wollen, mehrere Datensätze anzuzeigen ohne eine Schleife? :)
 
hmm ich hätte echt kein plan wie ich das machen würde bin ja sozusagen ein php-Neuling ... vllt. würde ich es so machen das jeder Datensatz also sprich Titel,inhalt,datum ne id hättte und ich dann die dann anhand der Id anzeigen lasse..:S
 
Zurück
Oben