Nieuwsartikelen weergeven in overzicht

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niels Rietveld

Niels Rietveld

09/08/2015 20:42:45
Quote Anchor link
Hallo,

Ik wil graag dat er een lijst van nieuwsartikelen wordt weergegeven.
Ik heb nu deze query
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$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.
 
PHP hulp

PHP hulp

25/11/2024 12:32:47
 
Ben van Velzen

Ben van Velzen

09/08/2015 20:48:37
Quote Anchor link
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.
 
Niels Rietveld

Niels Rietveld

09/08/2015 20:52:27
Quote Anchor link
Maar hoe kan ik dat doen? De opmaak in css veranderen is niet moeilijk, maar hoe andere div geven bijvoorbeeld?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$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">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $data['title'] ?>
</div>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?;}
}


En dan het eerste artikel de class="new"
Gewijzigd op 09/08/2015 20:55:38 door Niels Rietveld
 
Thomas van den Heuvel

Thomas van den Heuvel

09/08/2015 21:01:04
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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
?>
 
Ben van Velzen

Ben van Velzen

09/08/2015 21:04:13
Quote Anchor link
Uit de losse pols (zie hierboven ook):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$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...
  $first = true;
  while($data = mysqli_fetch_assoc($result)) {
?>

<div class="<?php echo $first ? 'new' : 'normal'; ?>">
<?php echo $data['title'] ?>
</div>
<?php
  $first
= false;
  }
}

?>
Gewijzigd op 09/08/2015 21:05:33 door Ben van Velzen
 
Niels Rietveld

Niels Rietveld

09/08/2015 21:09:35
Quote Anchor link
Oke en als ik nu ook wil dat de artikelen die na de 3 nieuwste komen ook een andere weergave hebben, hoe los ik dat op?
 
Thomas van den Heuvel

Thomas van den Heuvel

09/08/2015 21:12:18
Quote Anchor link
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.
 
Ben van Velzen

Ben van Velzen

09/08/2015 21:13:13
Quote Anchor link
Elke 3 kun je in dat geval doen met een tellertje en modulo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($counter++ % 3 == 0) {
...
}

?>
Gewijzigd op 09/08/2015 21:14:01 door Ben van Velzen
 
Thomas van den Heuvel

Thomas van den Heuvel

09/08/2015 21:13:32
Quote Anchor link
Niels Rietveld op 09/08/2015 21:09:35:
Oke en als ik nu ook wil dat de artikelen die na de 3 nieuwste komen ook een andere weergave hebben, hoe los ik dat op?

Op dezelfde wijze: kwestie van bijhouden hoeveel berichten je hebt gehad.
 
Eddy E

Eddy E

10/08/2015 08:30:57
Quote Anchor link
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).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.