Anders Moen Skrevet 9. januar 2007 Del Skrevet 9. januar 2007 (endret) Jeg har lagd et PHP hvor man kan legge inn forskjellige ting, nyheter i dette tilfellet. Den har `id` auto_increment, title og content. Det jeg da vil er at den siste nyheten skal komme automatisk på toppen (altså hente ut den siste ID'en fra databasen), og så nest siste og til slutt den siste. Dette skal da flytte på seg ettersom det kommer flere nyheter. F. eks: id 3' på toppen, id 2 under, og til slutt id 1. Hvis da det kommer en ny nyhet (som vil automatisk få id 4), skal den komme på toppen, id 3 går en ned, id 2 går en ned og id 1 blir borte fra sida. Hvordan i all verden gjør jeg dette? Har et script som henter ut etter id, men da må man skifte tall i PHP koden hver gang det er ny nyhet. Før jeg glemmer det; ikke si at jeg skal bruke noe program som Wordpress eller Cutenews, eller noe annet. Endret 9. januar 2007 av Andy-Pandy Lenke til kommentar
trrunde Skrevet 9. januar 2007 Del Skrevet 9. januar 2007 i spørringen så må du lege på ORDER by ID desc Lenke til kommentar
kidden Skrevet 9. januar 2007 Del Skrevet 9. januar 2007 Og siden han bare vil ha ut de siste 3 nyhetene: PHP ORDER BY `id` DESC LIMIT 0, 3 Lenke til kommentar
Anders Moen Skrevet 9. januar 2007 Forfatter Del Skrevet 9. januar 2007 (endret) Da bytter jeg ut denne (ORDER BY `id` DESC LIMIT 0, 3), med den WHERE id = 'tall' ? Men...kommer ikke id'ene 1, 2 og 3 nå da? Eller blir det de tre siste? Endret 9. januar 2007 av Andy-Pandy Lenke til kommentar
trrunde Skrevet 9. januar 2007 Del Skrevet 9. januar 2007 hvis du skriver ORDER by `id` DESC LIMIT 0,3 vil du bare få de 3 siste nyhetene, hvis du tar vekk LIMIT 0,3 vil du få alle nyhetene Lenke til kommentar
Anders Moen Skrevet 9. januar 2007 Forfatter Del Skrevet 9. januar 2007 (endret) Det jeg mente i første posten min (som ikke kom med helt), er at den nyeste nyheten skal komme på toppen. Forresten, lager et bilde i Paint Edit; har fått alle 3 inn nå, men den tredje repeterer seg 2 ganger så sida blir litt ødelagt. Hvis dere går til: http://www.nettsporten.hotserv.dk/index3.php så ser dere selv, at den tredje repeterer seg én gang :S Koden hvis dere trenger å se: <?php $con = mysql_connect("***","***","***"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("***", $con); $result = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 1, 1"); while($row = mysql_fetch_array($result)) { echo " " . $row['title']; echo "<br />"; echo "<br />"; echo " " . $row['content']; echo "<br />"; echo "<br />"; echo "<br />"; } mysql_close($con); ?> </div> <br /> <br /> <div style="width: 300px; float: left;"> <?php $con = mysql_connect("***","***","***"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("***", $con); $result = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 2, 2"); while($row = mysql_fetch_array($result)) { echo " " . $row['title']; echo "<br />"; echo "<br />"; echo " " . $row['content']; echo "<br />"; echo "<br />"; echo "<br />"; } mysql_close($con); ?> </div> <div style="width: 30px; height: 100%; float: left;"> </div> <div style="width: 300px; float: left;"> <?php $con = mysql_connect("***","***","***"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("***", $con); $result = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 3, 3"); while($row = mysql_fetch_array($result)) { echo " " . $row['title']; echo "<br />"; echo "<br />"; echo " " . $row['content']; echo "<br />"; echo "<br />"; echo "<br />"; } mysql_close($con); ?> Hvis jeg ikke husker feil, så fungerte ikke dette helt bra. Designet må være: | en på toppen1 | | nyhet2 | nyhet3 | last ned bildet nedenfor for å se bedre nyheter.bmp Endret 9. januar 2007 av Andy-Pandy Lenke til kommentar
ZoRaC Skrevet 10. januar 2007 Del Skrevet 10. januar 2007 Tror du har misforstått litt... Prøv denne: <div style="width: 30px; height: 100%; float: left;"> </div> <div style="width: 300px; float: left;"> <?php $con = mysql_connect("***","***","***"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("***", $con); $result = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 0, 3"); echo "<table>"; $first = true; while($row = mysql_fetch_array($result)) { echo "<tr>"; if ($first) { echo "<td colspan=2>"; $first=false; } else { echo "<td>"; } echo " " . $row['title']; echo "<br />"; echo "<br />"; echo " " . $row['content']; echo "<br />"; echo "<br />"; echo "<br />"; echo "</td></tr>"; } echo "</table>"; mysql_close($con); ?> Litt usikker på om det vises helt riktig, men det er bare å rette opp med HTML-koden. Lenke til kommentar
Anders Moen Skrevet 10. januar 2007 Forfatter Del Skrevet 10. januar 2007 Ah, ok. Men de kodene har ingen store sikkerhetshull, eller? Lenke til kommentar
ZoRaC Skrevet 10. januar 2007 Del Skrevet 10. januar 2007 Nei, man henter bare data fra databasen og tar ikke imot input fra brukeren i heletatt Lenke til kommentar
Anders Moen Skrevet 10. januar 2007 Forfatter Del Skrevet 10. januar 2007 Men sånn egentlig trenger jeg den koden 3 ganger, har prøvd meg fram men får ikke helt til. Det som er, er at designet skal være sånn design: | 1 | | 2 | 3 | 1 = nyeste nyhet 2 = nest siste 3 = tredje siste Har prøvd den koden du ga (bare at jeg forandret litt på tallene, sånn som nyhet 1 er sånn: $result = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 0, 1); Nr 2: $result = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 1, 2); Nr 3: $result = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 2, 3"); Men det funker ikke helt som det skal :S Lenke til kommentar
ZoRaC Skrevet 10. januar 2007 Del Skrevet 10. januar 2007 (endret) Det blir ikke "lettere" av å kjøre 3 spørringer... Liten feil i koden min, bytt ut det nederste med dette: echo "<table>"; $i=1; while($row = mysql_fetch_array($result)) { echo "<tr>"; if ($i == 1) { echo "<td colspan=2>"; } else { echo "<td>"; } echo " " . $row['title']; echo "<br />"; echo "<br />"; echo " " . $row['content']; echo "<br />"; echo "<br />"; echo "<br />"; echo "</td>"; if ($i == 1 || $i == 3) { echo "</tr>"; } $i++; } echo "</table>"; Den da? Endret 10. januar 2007 av ZoRaC Lenke til kommentar
Anders Moen Skrevet 10. januar 2007 Forfatter Del Skrevet 10. januar 2007 Hmm...hva forandrer jeg på her? Er det det tallet som står nesten helt på toppen, altså linje 2. $i = 1 i den første div'en? $i = 2 i den andre div'en? $i = 3 i den tredje div'en? Lenke til kommentar
ZoRaC Skrevet 10. januar 2007 Del Skrevet 10. januar 2007 Hva mener du? Scriptet i sin helhet skal se slik ut: <div style="width: 30px; height: 100%; float: left;"> </div> <div style="width: 300px; float: left;"> <?php $con = mysql_connect("***","***","***"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("***", $con); $result = mysql_query("SELECT * FROM news ORDER BY `id` DESC LIMIT 0, 3"); echo "<table>"; $i=1; while($row = mysql_fetch_array($result)) { echo "<tr>"; if ($i == 1) { echo "<td colspan=2>"; } else { echo "<td>"; } echo " " . $row['title']; echo "<br />"; echo "<br />"; echo " " . $row['content']; echo "<br />"; echo "<br />"; echo "<br />"; echo "</td>"; if ($i == 1 || $i == 3) { echo "</tr>"; } $i++; } echo "</table>"; mysql_close($con); ?> Lenke til kommentar
Anders Moen Skrevet 11. januar 2007 Forfatter Del Skrevet 11. januar 2007 Men åssen blir koden på <form> når man skal kunne laste opp et bilde (som blir 300px i bredde, og auto etter 300px? Har funnet noen tutorials på det, men noe av det skjønner jeg ikke så litt vanskelig akkurat da. Vet at dere er flinke til å forklare Og så var det bare én ting til: Når man legger inn en nyhet, skal det komme litt på forside, men en link til "Les hele saken". Men åssen "stopper" jeg for eksempel teksten etter 20 linjer? Og jeg vil også at det automatisk blir lagd en side, kalt f. eks 1.php (ettersom åssen ID'en er). Med hele designet på vær side. Nesten litt sånn som et forum. Noen som kan hjelpe meg videre med dette? Lenke til kommentar
trrunde Skrevet 11. januar 2007 Del Skrevet 11. januar 2007 Du bruker en form for å laste opp bildet på serveren, så bruker du GD til å resize bilde til 300px Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå