Gå til innhold

Hjelp til if-sjekk for utskriving av artikler


Anbefalte innlegg

Jeg holder på å koder om et publiserings verktøy for å tilpasse det til mitt eget design. Jeg henter ut artikler i en articlelist og jeg vil gjerne ha to og to artikeler ved siden av hverandre. Derfor trenger jeg en <div class="clear"</div> på annenhver utskriving.

 

Jeg prøvde med:

 

if ($i==0 || $i==1)  { //skriver ut artikkel 1 og 2
 echo "<div class=\"clear\"></div>";

   	} elseif ($i==2 || $i==3)  { //skriver ut artikkel 3 og 4
       echo "<div class=\"clear\"></div>";

    } elseif ($i==4 || $i==5)  { //skriver ut artikkel 5 og 6
       echo "<div class=\"clear\"></div>";

}

 

Men det er nok feil bruk av if sjekken, for alle artiklene får en clear etter seg. Noen som skjønte problemet mitt og vet om en løsning?

Lenke til kommentar
Videoannonse
Annonse

Uhhmm ... hva er det du prøver på egentlig? :huh:

Er det ikke en smule bedre med noe ala det her?

$i = 0;
while (hente ut rader)
{
  if (++$i % 2)
  {
     //Artikkel på odetall
  }
  else
  {
     //Artikkel på partall
  }
}

Lenke til kommentar

Jeg har en articlelist som henter ut overskrift, thumbnail, ingress og en "les mer" link. Jeg har 10 slike på en side. Jeg vil gjerne ha to og to vedsiden av hverandre, derfor trenger jeg at det blir skrevet ut en clear etter hver andre artikkel.

 

kort fortalt:

 

artikkel 1 og 2

clear

artikkel 3 og 4

clear

artikkel 4 og 5

osv.

Jeg er ikke sikker på hva jeg skal ha i while i ditt script.

 

Når jeg skriver ut vanligvis bruker jeg:

        echo "\n<div class=\"articlelist_fontpage\">\n";
       
       //code for uthenting
       
       echo "</div>\n\n";
       
       
       echo "<div class=\"clear\"></div>";

 

Setter pris på hjelpen, jeg kan så utrolig lite php.

Endret av Garreth
Lenke til kommentar

hvorfor har du clear egentlig?

mellomrom lages ikke ved å slenge en tom div imellom, du bruker css-margin/padding osv.

 

I Ernies kode vil du ha clear-div'en din i første if og selve artikkel-div'en(e) i andre if.

Koden hans gjør at annenhver gang skrives en clear-div og en artikkel-div. (som betyr at du må ha begge artiklene i artikkel-div'en)

Lenke til kommentar
Problemet da er at jeg må sette en fast høyde på divene, for om det er en artikkel som bare innholder bare noen få ord så vil den stå alene.

6200393[/snapback]

hæ?

kan du gi et eksempel på dette, tror ikke jeg helt fortstår hva du mener?

Lenke til kommentar

$put = "left";
$nr_art = count($articles);
for($i=0;$i<$nr_art;$i++) {

if($put == "left") {
// artikkelen skal være til venstre
echo "<div class='".$put."'>".$articles[$i]."</div>";
$put == "right";
}
else {
// artikkelen skal være til høyre
echo "<div class='".$put."'>".$articles[$i]."</div>\n<div class='clear'></div>";
$put == "left";
};
};
// hvis du slutter på left, legg til en tom right.
if($put == "right") {
echo "<div class='emptyright'></div><div class='clear'></div>";
};

noe sånt?

Lenke til kommentar

if ($i==0 || $i==1)  { //skriver ut artikkel 1 og 2
 echo "<div class=\"clear\"></div>";

   	} elseif ($i==2 || $i==3)  { //skriver ut artikkel 3 og 4
       echo "<div class=\"clear\"></div>";

    } elseif ($i==4 || $i==5)  { //skriver ut artikkel 5 og 6
       echo "<div class=\"clear\"></div>";

}

Bytt ut dette med følgende:

 

         if($i%2==0){
             // kode for utskrift av artikkel, med partall som nr.
        }
        else{
             // kode for utskrift av artikkel, med oddetal som nr.
             <br>
        }

 

Du kan altids bytte ut <br> linjen min med en </div> og sette inn en <div> før koden som skriver ut den første artikkelen.

 

Forklaring av %, hvis du ikke vet det da:

%, eller modulus, deler verdien før tegnet med verdien etter tegnet, og returnerer så restverdien. Dvs. 5%2 = 1 mens 6%2 = 0. (sammenlign det med deling på barneskole-nivå)

Endret av MapSter
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...