Skapa inlägg på sidan från databas, php.

Permalänk
Medlem

Skapa inlägg på sidan från databas, php.

Tja, jag har skapat en blogg som uppgift i skolan men nu när läraren inte är tillgänglig vänder jag mig till er.

Grejen är att jag ska skapa en blogg som jag kan skriva inlägg som läggs in i databasen sedan ska jag hämta från databasen och skrivas ut på sidan. Jag skickar iväg informationen fint och det lagras och allt på databasen och jag lyckas även att hämta det igen och skriva ut det, problemet är det att jag vill "spara" de gammla inläggen på sidan, just nu byts bara det senaste inlägget jag skrev in mot det nya.

<!doctype html> <html> <head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" href="style.css" /> </head><body> <aside id="nav"> </aside> <div id="container"> <h1>SVG Grafik</h1> <div id="mysvg"> </div> <h5>Välkommen</h5> <p>Hej i denna blogg ska jag visa hur jag skapade den här <abbr title="Scalable Vector Graphics">SVG</abbr> grafiken</p> </div> <?php $mysqli = new mysqli("server", "root", "", "blogdata"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; } if (!($stmt = $mysqli->prepare("SELECT * FROM blogposts ORDER BY id DESC"))) { echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error; } if (!$stmt->execute()) { echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error; } $res = $stmt->get_result(); $row = $res->fetch_assoc(); $title = $row['title']; $message = $row['message']; $time = $row['time']; echo '<div id="post"> <h3>'.$title.'</h3> <p>'.$message.'</p> <p id="time">'.$time.'</p> </div>' ?> <fieldset> <legend>Skriv nytt inlägg</legend> <form action="post.php" method="POST"> <input type="text" name="title" placeholder="Rubrik" /><br /> <textarea name="message" rows="15" cols="80" placeholder="Skriv inlägg här."></textarea><br /> <input type="submit" name="submit" value="Posta" /> </form> </fieldset> </body> </html>

Kanske är ganska logiskt men jag ser det inte, är ganska säker på att vi inte har läst något om det heller. Några ideer?

sedan på min skicka fil till databasen så har jag

$time = date('l jS \of F Y h:i:s A');

för att skriva in tiden, men det vill inte fungera det heller. den bara sparar tiden till massa nollor, även något som jag inte minns att vi har läst på.

Permalänk
Medlem

Om du kollar i databasen, lagras alla inlägg där?
Hur ser post.php ut?

Permalänk
Inaktiv

while($rows = mysql_fetch_array($res)){
...
}

Permalänk
Medlem
Skrivet av anon176726:

while($rows = mysql_fetch_array($res)){
...
}

Var skulle de kunna sättas någonstans då?

Permalänk
Medlem
Skrivet av swennor:

sedan på min skicka fil till databasen så har jag

$time = date('l jS \of F Y h:i:s A');

för att skriva in tiden, men det vill inte fungera det heller. den bara sparar tiden till massa nollor, även något som jag inte minns att vi har läst på.

Om du menar att det blir nollor när du lagrar i databasen så beror det troligen på att du har datetime i mysql och då matchar inte datumsträngen du genererar men jag bjuder på rätt sträng $time = date("Y-m-d H:i:s"); hämtade direkt från php.net

Permalänk
Medlem
Skrivet av swennor:

Var skulle de kunna sättas någonstans då?

Hela din kod verkar vara baserad på att det bara ska visas _en_ post.
Du har satt id på två av div:arna som inte är dynamiska samt ingen loop görs.

$row = $res->fetch_assoc(); är det som ska bytas ut till en loop.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Hela din kod verkar vara baserad på att det bara ska visas _en_ post.
Du har satt id på två av div:arna som inte är dynamiska samt ingen loop görs.

$row = $res->fetch_assoc(); är det som ska bytas ut till en loop.

Tack löste sig, fick ändra till mysqli_fetch_array istället för mysql_fetch_array bara.