Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  9 619
Jeg har nå trålet nettet over etter en løsning som kan hjelpe meg, men har ikke funnet NOE.. begynner å bli mer eller mindre irritert.

Jeg leter etter:

Noe som kan gi et slikt resultat

Produkt 1 Produkt 2
Produkt 3 Produkt 4

osv..

Det som skjer hver gang jeg prøver så skjer enten

Produkt 1 Produkt 2 Produkt 3 etc..

Eller

Produkt 1 Produkt 1
Produkt 2 Produkt 2

Noen som har en god løsning?
utenfor ditt vindu
larsforstyrret's Avatar
altså du har en loop eller noe right?
da kan du jo bare legge inn en if i loopen, så kan du endre på table sakene.
altså:
if ($i=0;$i <= 10; $i++) {
if ( $antloop > 2 ) {
// vanlig output
$antloop++;
}
else {
echo "</tr><tr>";
//vanlig output
$antloop = "";
}
Vis hele sitatet...
Var ihvertfall sånn jeg ordnet det en gang jeg hadde samme problem.
improbable
Gusto's Avatar
DonorAdministrator
For det første må du deklarere og instansiere $antloop før for-løkken slik at den lever lenger enn kun en runde igjennom løkken.

$antloop = ""; // Er det verste jeg har sett.

Husk at $antloop er en integer. Hvorfor gjør du den da om til en string?

$antloop = 0; // Ja takk.

Du har også en logisk feil i den ifsetningen, og det er unødvenlig å skrive vanlig output to ganger.

Kode

$antloop = 0;

if ($i=0; $i<10; $i++) {

  if ( $antloop < 2 ) {

    $antloop++;
  
  } else {

    echo "</tr><tr>";
    $antloop = 0;
  }

  // vanlig output

}
Ikke for å kritisere gusto, men er ikke denne enklere å lese?

Kode

$antloop = 0;
$i = 0;
while( $i < 10 ){
	if( $antloop < 2 ) {
		$antloop++;
	} else {
		echo '</tr><tr>';
		$antloop = 0;
	}
	// vanlig output
	$i++;
}
improbable
Gusto's Avatar
DonorAdministrator
Så lenge du må øke $i med +1 inni løkken, deklarere og instansiere $i utenfor løkken synes jeg at en for-løkke tar mindre plass i koden og dermed gjør det enklere å lese.

Men i denne kodesnutten spiller det ingen rolle hva man bruker, så alt i alt ender det opp med hva man har som preferanse.
Ahh, oki, jeg ser nå hva du har gjort og jeg har lest feil:

Kode

if ($i=0; $i<10; $i++) {
utenfor ditt vindu
larsforstyrret's Avatar
Prøvde bare å hjelpe.

Tenkte ikke over at $ant...= ""; er teit å skrive, noe som det selvfølgelig er. Skal ta med den videre.

Ser også hva du mener med logisk feil nå.
ex-crew uten solbriller
SharQ's Avatar
Om du vil nullstille den, er det verd å vurdere

Kode

unset($ant);
.. Når man leiter gjennom kildekode senere - i alle fall slik jeg gjør det - så leser jeg nøyere overalt hvor variabler blir tildelt kode. $ant = 0 tar derfor mer tid å prosessere for feil enn unset($ant);, siden sistneførstnevnte må jeg prøve å finne ut hvorfor den blir satt til null, sistnevnte trenger man ikke se på to ganger engang.

... Men nå beveger vi oss vel om programmeringspreferanser, heller enn noe annet

h
HpX
HpX's Avatar
Trådstarter
24 0
Oi, takker for svar Ble litt mer komplisert enn jeg hadde trodd, jeg hadde håpet det fantes en veldig enkel slags

next() funksjon eller noe lignende som det finnes i ASP, en funksjon som gjør at man kan manuelt sette inn først en record, så skrive next () og så neste gang man setter inn en record som bruker samme database / query så blar den automatisk til neste.

Altså en funksjon som gjør:

$record.id


next()

$record.id

så blir resultatet noe slikt

1

2

Vet at det går å sette en loop rundt den første av de to selvsagt, men det er ikke det jeg vil, jeg vil rett og slett ha en mulighet for at den skal hoppe over de allerede viste records :-/

Da vil jeg tro man har enda større mulighet for å kontrollere loop funksjonen.
▼ ... mange måneder senere ... ▼
ser det er gammel post men dog:

Kode

for($i=1;$i<=10;$i++){
        echo ($i%2) ? " Produkt$i" : " Produkt$i<br />";
}
en rest divisjon er enkleste måte å få til det du søker...