Ik wil graag dat er een lijst van nieuwsartikelen wordt weergegeven.
Ik heb nu deze query
$result = mysqli_query($db, "SELECT id, title, image, date FROM articles ORDER BY DATE LIMIT 3");
if($result) {
// de query is gelukt, nu gaan we fetchen...
while($data = mysqli_fetch_assoc($result)) {
Alleen nu wil ik graag dat het eerste artikel uit deze lijst een andere weergave krijgt in dit overzicht.
Dus: je zet een variabele die aangeeft of je voor het eerst door de lus heen gaat of niet en overeenkomstig te handelen. Je kan ook proberen het met alleen CSS op te lossen.
Maar hoe kan ik dat doen? De opmaak in css veranderen is niet moeilijk, maar hoe andere div geven bijvoorbeeld?
$result = mysqli_query($db, "SELECT id, title, image, date FROM articles ORDER BY DATE LIMIT 3");
if($result) {
// de query is gelukt, nu gaan we fetchen...
while($data = mysqli_fetch_assoc($result)) {
{;?>
<div class="normal"><?php echo $data['title'] ?></div> <?;}
}
<?php
// initialisatie
$first = true;
while (...whatever...) {
if ($first) {
// ... afhandeling eerste record ...
// je bent klaar met het eerste record, dus:
$first = false;
} else {
// ... afhandeling overige records ...
} // einde if
} // einde while
?>
Als de opmaak verder niet wezenlijk verschilt en je dit verschil kunt overbruggen met simpelweg een andere klasse aan je div toekennen (of een andere simpele ingreep) dan heeft de oplossing van Ben uiteraard de voorkeur.
Indien de opmaak erg afwijkt wordt het met Ben zijn opzet waarschijnlijk toch een beetje een zootje en kun je de opmaak beter splitsen.
Waarom zal je moeilijk doen als je in je CSS gewoon div:first-child kan gebruiken?
Dan heb je heel die keuzes in je PHP niet nodig.
En als je om de 3 <div>s iets wilt doen: div:nth-child(3) ?
Scheelt je een hoop code-aanpassingen en je houdt je code veel schoner (=beter).
Toevoeging op 10/08/2015 08:31:05:
Waarom zal je moeilijk doen als je in je CSS gewoon div:first-child kan gebruiken?
Dan heb je heel die keuzes in je PHP niet nodig.
En als je om de 3 <div>s iets wilt doen: div:nth-child(3) ?
Scheelt je een hoop code-aanpassingen en je houdt je code veel schoner (=beter).