Gå til innhold

Forme nyheter: 1 på toppen og 2 under? Løst =)


Anbefalte innlegg

Tror kanskje tittelen ble litt merkelig i forhold til hva jeg er ute etter, men det er vanskelig å forklare.

 

Jeg vil forme nyhetene mine slik:

|      NYESTE NYHET HER       |

| Nest nyeste  | Tredje nyhet |

| Fjerde nyhet | Femte nyhet |

 

 

Skjønner? Slik som mange andre sider har...

 

 

Bilde av hva jeg mener:

post-111209-1174488791_thumb.jpg

Endret av Andy-Pandy
Lenke til kommentar
Videoannonse
Annonse
bruk LIMIT og tables

8203575[/snapback]

Hvorfor LIMIT og hvorfor <table>?

 

Hvis det er brukt database, så er det lett match å sjekke om det er første nyhet. Å kjøre flere spørringer er ikke annet enn unødvendig.

Dessuten kan man få det der til uten <table>, nemlig med CSS.

Lenke til kommentar

Ståle: Jeg kan selvfølgelig bruke LIMIT 1 på toppen, men hvordan får jeg til nest nyeste og tredje nyeste osv nedover...how to?

 

 

Jeg får til å lage slik at nyhetene kommer ut 2 og 2, men ikke sånn at jeg får den nyeste alene på toppen og så blir de 2 og 2..

Endret av Andy-Pandy
Lenke til kommentar

Siden du postet dette under PHP, så regner jeg ikke med at det var div´s du trengte hjelp på. - Jeg tenkte mer på koden som henter og skriver nyhetene - det er jo den som må endres for å få den første nheten til å stå alene.

Lenke til kommentar
LIMIT 0,1

LIMIT 1,99

8204029[/snapback]

Det der innebærer to spørringer, noe som er totalt unødvendig.

$first_news = TRUE;
$get_news = mysql_query('SELECT * FROM news');
while ($news = mysql_fetch_assoc)) {
 if ($first_news == TRUE) {
   // Print ut én stor førstenyhet
   $first_news = FALSE;
 } elseif ($first_news == FALSE) {
   // Print ut ved siden av hverandre
 }
}

Lenke til kommentar

Hm, skjønte ikke helt hvordan jeg skal putte inn den koden din endrebjorsvik her:

 

<?php
include "config.php"; // koble til databasen osv

if (!mysql_num_rows(mysql_query("SELECT * FROM $tbl_news ORDER BY id DESC"))) {
die('

No news yet.

</body>
</html>
');
}

$result = mysql_query("SELECT * FROM $tbl_news ORDER BY id DESC");

while($row = mysql_fetch_array($result)) {

echo '<a href="news.php?id=" . $row['id'] . "" class="title">';
echo htmlentities(stripslashes($row['title']));
echo '</a>';
echo '<br />';
echo $row['image'];
echo '<br />';
echo htmlentities(stripslashes($row['intro']));
echo '<br />';
echo '<a href="news.php?id=" . $row['id'] . "">Read more</a>';
echo ' / <a href="news.php?id=" . $row['id'] . "#comments">" . $row['comments'] . " comment(s)</a>';
echo '<br />';
echo '<br />';

}
mysql_close($con);
?>

 

Husker ikke om htmlentities eller stripslashes må først, eller om det noen betydning på rekkefølgen av de, men det finner jeg ut selv snart.

Endret av Andy-Pandy
Lenke til kommentar

Du kan vel eventuelt bare printe ut samme diven flere ganger, men på den første så legger du til class="first" på tingene og styler det med CSS

.first h2 { font-size:200%; }

.first div { width: 600px; }

og ha alle de små divene i en stoor #alle_nyheter_div

Lenke til kommentar

Får ikke til...

 

Hvis koden er vanskelig å lese, les på pastebin hos Norsk Webforum i stedet for ;)

 

Bare prøvde med den her:

<div id="content">

<?php
include "config/db.php";

$result = mysql_query("SELECT * FROM $tbl_name ORDER BY id DESC LIMIT 1");

if (!mysql_num_rows(mysql_query("SELECT * FROM $tbl_name ORDER BY id DESC LIMIT 1"))) {
die('

No news have been added yet.

</div>
</div>

</body>
</html>
');
}

while($row = mysql_fetch_array($result))
{
echo "<div style=\"width: 100%;\">";
echo "<a href=\"news.php?id=" . $row['id'] . "\" class=\"no\"><span class=\"n_title\">" . $row['title'] . "</span></a> (ID: " . $row['id'] . ")";
echo "<br />";
echo stripslashes(bbcode($row['intro']));
echo "<br />";
echo "<a href=\"news.php?id=" . $row['id'] . "\" class=\"read_more\">Read more</a> / <a href=\"news.php?id=" . $row['id'] . "#comments\" class=\"read_more\">" . $row['comments'] . "</a> <span 

class=\"comments\">comment(s)</span>";
echo "</div>";
}
mysql_close($con);

?>



<?php

include "config/db.php";

$result = mysql_query("SELECT * FROM $tbl_name ORDER BY id DESC LIMIT 1, 6");


while($row = mysql_fetch_array($result))
{
echo "<div style=\"width: 100%;\">";
echo "<div style=\"width: 50%;\">";

echo "<a href=\"news.php?id=" . $row['id'] . "\" class=\"no\"><span class=\"n_title\">" . $row['title'] . "</span></a> (ID: " . $row['id'] . ")";
echo "<br />";
echo stripslashes(bbcode($row['intro']));
echo "<br />";
echo "<a href=\"news.php?id=" . $row['id'] . "\" class=\"read_more\">Read more</a> / <a href=\"news.php?id=" . $row['id'] . "#comments\" class=\"read_more\">" . $row['comments'] . "</a> <span 

class=\"comments\">comment(s)</span>";

echo "</div>";

echo "<div style=\"width: 50%;\">";

echo "<a href=\"news.php?id=" . $row['id'] . "\" class=\"no\"><span class=\"n_title\">" . $row['title'] . "</span></a> (ID: " . $row['id'] . ")";
echo "<br />";
echo stripslashes(bbcode($row['intro']));
echo "<br />";
echo "<a href=\"news.php?id=" . $row['id'] . "\" class=\"read_more\">Read more</a> / <a href=\"news.php?id=" . $row['id'] . "#comments\" class=\"read_more\">" . $row['comments'] . "</a> <span 

class=\"comments\">comment(s)</span>";

echo "</div>";
echo "</div>";
}
mysql_close($con);

?>



</div>

 

Resultatet her

 

config/db.php er fila med host, brukernavn, passord osv.

 

Edit: sorry for dobbelposting...

Endret av Andy-Pandy
Lenke til kommentar

Jeg kom på en annen måte å gjøre det på. Veldig enkel og grei.

$get_news = mysql_query('SELECT * FROM news blablalba...');
$first_news = mysql_fetch_assoc($get_news);
// Print ut første nyheten.

while ($news = mysql_fetch_array($get_news)) {
 // Print ut resten av nyhetene
}

 

Hvis trådstarter har problemer med lay-outen på siden (plassere divs osv.), så spør i dette forumet.

Lenke til kommentar
Warning: mysql_connect() [function.mysql-connect]: User '16592' has exceeded the 'max_connections_per_hour' resource (current value: 1500) in /var/www/hotserv.dk/users/andersmoen/cms/config/db.php on line 2

Could not connect: User '16592' has exceeded the 'max_connections_per_hour' resource (current value: 1500)

:D

 

 

Jeg har lett etter noe lignende selv, men trodde det var greit å bruke to spørringer med forskjellig LIMIT.

Endret av Runar
Lenke til kommentar
...og selvfølgelig finnes det noen som sitter og oppdatérer sida på pure f.

8206245[/snapback]

Du sikter vel ikke til meg nå? Hvis du mener meg, så kan jeg fortelle deg at jeg trykket på linken én gang, så feilmeldingen, kopierte den og lukket siden din.

Lenke til kommentar

Hehe, nei, som jeg sa: forresten...sa det visst ikke helt som jeg skulle. Mente at jeg spurte om kritikk hos Norsk Webforum og der har man sikkert noen folk som gjør det ;(

 

 

Edit:

endrebjorsvik Kan du forklare litt mer om hvordan jeg skal gjøre det med den koden din? Skjønner den bare ikke =/

Endret av Andy-Pandy
Lenke til kommentar
endrebjorsvik: Jeg skjønner bare ikke hvordan jeg setter opp det der =/

8206245[/snapback]

Hva er det du ikke skjønner?

Hvilken del av dette greiene her skjønner du ikke?

<?php
$get_news = mysql_query('SELECT * FROM news blablalba...');

$first_news = mysql_fetch_assoc($get_news);
   echo "<div class='first_news'>
           <h3><a href='news.php?id={$first_news['id']}'>{$first_news['title']}</a></h3>
           <p class='date'>{$first_news['dato']}</p>
           <p>{$first_news['body']}</p>
           <p class='read_more'><a href='news.php?id={$first_news['id']}'>Read more</a></p>
       </div>";

while ($news = mysql_fetch_assoc($get_news)) {
   echo  "
       <div class='newswrapper'>
           <div class='news'>
               <h3><a href='news.php?id={$news['id']}'>{$news['title']}</a></h3>
               <p class='date'>{$news['dato']}</p>
               <p>{$news['body']}</p>
               <p class='read_more'><a href='news.php?id={$news['id']}'>Read more</a></p>
           </div>";
   
   $news = mysql_fetch_assoc($get_news);
   echo  "
           <div class='news'>
               <h3><a href='news.php?id={$news['id']}'>{$news['title']}</a></h3>
               <p class='date'>{$news['dato']}</p>
               <p>{$news['body']}</p>
               <p class='read_more'><a href='news.php?id={$news['id']}'>Read more</a></p>
           </div>
       </div>";
}
?>

Jeg vet ikke helt hva CMS'et ditt innebærer, så du får tilpasse det selv. Jeg har bare laget et fort-og-gæli-utkast.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...