PHP Newsfeed
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ahnung
ausgeben
auslese
aussehen
autor
code
datenbank
datum
eigenschaft
fehler
fehlermeldung
inhalt
limit
performance
posten
setzen
spalten
tabelle
url
zeile
-
Hallo Leute!
Für meine Webseite will ich auf der Startseite einen Newsfeed.
Dieser soll natürlich dynamisch sein, also benutze ich PHP und die mysql Datenbank von lima. Ich habe mir vorgestellt, eine Tabelle mit id, titel, inhalt und autor mit einer Schleife zu schreiben, habe jedoch noch wenig Ahnung von PHP und fast keine von Sql
Könnte mir irgendwer beim Code weiterhelfen?
Danke schon mal im Voraus! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
So würde z.B. eine Auslese von einer Tabelle aussehen:
<?php $con = new mysqli('mysql.lima-city.de', 'username', 'password', 'dbname'); if ($con->conect_error){ die("conection failed: " . $con->conect_error); } $sql = "SELECT * FROM news"; $result = $con->query($sql); if($result->num_rows > 0){ while($row = $result->fetch_assoc()){ echo $row["id"]; echo $row["titel"]; echo $row["inhalt"]; echo $row["autor"]; } }else{ echo "0 results"; } $con->close(); ?>
Dies kannst du natürlich auch direkt mit HTML ausgeben:
echo '<div id="'.$row["id"].'"><div class="titel">'.$row["titel"].' from '.$row["autor"].'</div><div class="inhalt">'.$row["inhalt"].'</div>';
Und die Posts erstellst du entweder direkt in der Datenbank, oder musst dann eben auch das schreiben ermöglichen, was das ganze kompliziert machen kann. Wenn du auch Logins für die Autoren usw braucht. Ein Limit kannst du im Query übrigends auch setzen. Sonst lädt es halt wirklich alle Posts auf einmal.
$sql = "SELECT * FROM news LIMIT 10";
Alles ungetestet. Kann also Fehler enthalten, dann aber bitte auch gleich die Fehlermeldung posten. Bei der Datenbankverbindung musst du natürlich noch deine Daten eingeben. Und Beim Query deine Tabelle.
Beitrag zuletzt geändert: 10.1.2015 0:22:01 von c143 -
c143 schrieb:
So würde z.B. eine Auslese von einer Tabelle aussehen:
<?php $con = new mysqli('mysql.lima-city.de', 'username', 'password', 'dbname'); if ($con->conect_error){ die("conection failed: " . $con->conect_error); } $sql = "SELECT * FROM news"; $result = $con->query($sql); if($result->num_rows > 0){ while($row = $result->fetch_assoc()){ echo $row["id"]; echo $row["titel"]; echo $row["inhalt"]; echo $row["autor"]; } }else{ echo "0 results"; } $con->close(); ?>
Dies kannst du natürlich auch direkt mit HTML ausgeben:
echo '<div id="'.$row["id"].'"><div class="titel">'.$row["titel"].' from '.$row["autor"].'</div><div class="inhalt">'.$row["inhalt"].'</div>';
Und die Posts erstellst du entweder direkt in der Datenbank, oder musst dann eben auch das schreiben ermöglichen, was das ganze kompliziert machen kann. Wenn du auch Logins für die Autoren usw braucht. Ein Limit kannst du im Query übrigends auch setzen. Sonst lädt es halt wirklich alle Posts auf einmal.
$sql = "SELECT * FROM news LIMIT 10";
Alles ungetestet. Kann also Fehler enthalten, dann aber bitte auch gleich die Fehlermeldung posten. Bei der Datenbankverbindung musst du natürlich noch deine Daten eingeben. Und Beim Query deine Tabelle.
Hallo Community,
ich habe noch folgende Vorschläge für das vorgeschlagene Skript:
Die Eigenschaft des mysqli-Objekts in Zeile 3 und 4 heißt connect_error.
In Zeile 7 würde ich nicht alle Spalten sondern nur die explizit benötigten Spalten auswählen.
Das spart etwas Traffic und Performance falls die Tabelle später um Spalten erweitert wird, die aber in dieser Abfrage nicht benötigt werden.
Die Ausgabe der Datenbankfelder sollte mit der PHP-Funktion htmlspecialchars() maskiert werden.
Sonst finde ich das Skript ganz gut für den Anfang.
Grüße
Beitrag zuletzt geändert: 19.5.2015 9:34:21 von makobi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage