Archief - Om de andere row een blok uitvoeren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Unrach

Legacy Member
Hey allemaal,

Ik zit een beetje vast met mijn PHP scripting :)

De bedoeling is om de rijen uit een database te lezen en ze een voor een op de pagina te plaatsen

Code:
while($row = mysql_fetch_array($query))
	  {

Werkt perfect, maar ik zou bij de eerste uitgelezen willen dat hij een stukje code meeneemt in deze loop en bij de tweede niet, bij de derde weer wel, de vierde weer niet, vijfde wel, enz..

Met andere woorden, er zouden zo 2 blokjes met ingevulde gegevens uit de database langs elkaar moeten staan met daar tussen een scheidings image. En dan de volgende twee op een niewe rij.

Hier is een voorbeeld: Klik
Met even of oneven getal van het ID kan ik niet werken want die volgen niet perfect op elkaar altijd.

Zijn er mogelijke oplossingen voor dit probleem? Is het misschien duidelijker als ik ook even de preciese code even post?

Alvast merci!
Cheers, Jordy ;-)

dJeez

Legacy Member
Werk gewoon met een teller, test of die oneven of even is binnen je ophaallus en voer de extra code enkel uit als de teller oneven is.

Unrach

Legacy Member
dJeez zei:
Werk gewoon met een teller, test of die oneven of even is binnen je ophaallus en voer de extra code enkel uit als de teller oneven is.

Ge moet ter maar opkomen :-) mercikes, ik ga het morge uitproberen :niceone:

Cycloon

Legacy Member
Of om het zonder een if te doen (en dus 50% van de array fetches uit te sparen):

PHP: mysql_data_seek - Manual

Je houdt bij aan welke rij je zit en op het einde van je lus doe je $rij+=2; mysql_data_seek($result, $rij);

passero

Legacy Member
Cycloon zei:
Of om het zonder een if te doen (en dus 50% van de array fetches uit te sparen):

PHP: mysql_data_seek - Manual

Je houdt bij aan welke rij je zit en op het einde van je lus doe je $rij+=2; mysql_data_seek($result, $rij);

Ik zie niet in waarom dit performanter zou zijn. Je hebt toch alle rijen van je query nodig en niet maar 50%? Je gaat wel maar om de 2 rijen iets extra uitvoeren maar voor de rest wordt elke rij gebruikt... Of zie ik iets mis?

Unrach

Legacy Member
ik ga best ook voor het simpele gaan :D .. ben gene PHP expert :p
toch bedank ;-)

killgore

Legacy Member
Cycloon zei:
Of om het zonder een if te doen (en dus 50% van de array fetches uit te sparen):

PHP: mysql_data_seek - Manual

Je houdt bij aan welke rij je zit en op het einde van je lus doe je $rij+=2; mysql_data_seek($result, $rij);

wat een onnozelheid is dit. Als je echt maar om de 2 rijen een result nodig hebt ga je je query reduceren, DAT zal je pas performance opleveren, niet via seek de helft van je resultaten wegsmijten.

Nu, zoals gezegd gok ik ook dat hij wel degelijk alle resultaten en niet maar de helft nodig hebt. Tzal eerder iets zijn als alternerende rijen een ander kleurtje geven :-).

Cycloon

Legacy Member
passero zei:
Ik zie niet in waarom dit performanter zou zijn. Je hebt toch alle rijen van je query nodig en niet maar 50%? Je gaat wel maar om de 2 rijen iets extra uitvoeren maar voor de rest wordt elke rij gebruikt... Of zie ik iets mis?

Ik had het idd niet goed gelezen. Maar het zou hem nog altijd helpen. Eerst start hij van rij 0 met sprongen van 2 voor de eerste kolom, daarna van rij 1 met sprongen van 2 voor de tweede kolom.

En @killgore, natuurlijk zou het performanter geweest zijn om de query te herschrijven, maar ik gaf enkel antwoord op zijn vraag...

passero

Legacy Member
Eigenlijk is da nie goed als ge dit specifiek probleem wilt oplossen in uw db. Normaalgezien moet u datalaag onafhankelijk zijn van uw presentatielaag en als ge uw query gaat optimaliseren in functie van uw presentatie dan zijn ze te afhankelijk van elkaar. Maar da gaat een beetje te ver zeker ;)

Unrach

Legacy Member
tis heel goed gelukt met die teller.
Voor de gene die hier ook naar opzoek zijn, zo heb ik het gedaan:

Code:
while($row = mysql_fetch_array($query))
{
   $teller+=1;
	
	
   if ($teller % 2 == 0) 
   {

      // Blok Code 1

   }else{

      // Blok Code 1
      // Blok Code 2

   }
}


Bedankt ;-)

killgore

Legacy Member
passero zei:
Eigenlijk is da nie goed als ge dit specifiek probleem wilt oplossen in uw db. Normaalgezien moet u datalaag onafhankelijk zijn van uw presentatielaag en als ge uw query gaat optimaliseren in functie van uw presentatie dan zijn ze te afhankelijk van elkaar. Maar da gaat een beetje te ver zeker ;)

wie heeft gezegd het presentatieprobleem op te lossen in de db :s? Zowat iedereen hier heeft client-side (presentatielaag) oplossingen gegeven.

Unrach

Legacy Member
lol.. is gesprek hier over aant gaan naar het OSI 7-lagen model ofwa? :p
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan