Avatar billede alta Nybegynder
30. marts 2003 - 12:04 Der er 14 kommentarer og
2 løsninger

Kan man lave en side for/while-løkke?

Jeg har et antal poster som jeg gerne vil have stillet op i to kolonner. Der er aldrig mere end 10 poster - oftest 7-8 stykker.

Er der nogen der har en idé til, hvordan jeg kan køre disse poster igennem en eller anden løkke så de listes med de 5 første poster i kolonne 1 og resten i kolonne 2, altså:

1 | 6
2 | 7
3 | 8
4 |
5 |

Jeg har prøvet med den samme teknik som oftest bruges til at skifte farver på rows, men øhhh.

Nogle bud?
Avatar billede alta Nybegynder
30. marts 2003 - 12:05 #1
Der skulle så have stået sidelæns, men meningen er vel klar?
Avatar billede ahv Nybegynder
30. marts 2003 - 12:14 #2
<?php
$antal = 7;

echo "<table><tr>";
for($start=1; $antal >= $start; $start++){
echo "<td>$start</td>";
if($start == 5){
echo "</tr><tr>";
}}
echo "</tr></table>";

?>
Avatar billede alta Nybegynder
30. marts 2003 - 12:26 #3
Det virker perfekt, men jeg har formuleret mig forkert. Det jeg er ude efter er en tabel som den jeg har skitseret ovenfor.

Jeg smider gerne lidt ekstra oveni for ulejligheden.
Avatar billede schaefner Juniormester
30. marts 2003 - 12:38 #4
Så er det vel bare sådan her:

<table border="1"><tr>
<td>
<?php
for($i=1; $i <= 10; $i++){
    echo "$i<br>";
    if($i == 5){
        echo "</td><td>";
    }
}
?>
</td>
</tr></table>
Avatar billede ahv Nybegynder
30. marts 2003 - 12:40 #5
schaefner tror vist spørger ønsker det i hver sin række altså ikke adskilt med <br>, men hvert fald sådan her:

<?php
$antal = 4;

echo "<table>";
for($start=1; $antal >= $start; $start++){
if($start <= 5){
echo "<tr><td>$start</td>";
if($antal >5){
$str = $start + 5;
    echo "<td>$str</td>";
}
echo "</tr>";
}}
echo "</table>";

?>
Avatar billede ahv Nybegynder
30. marts 2003 - 12:41 #6
undskyld, min er ikke helt optimal.
Avatar billede alta Nybegynder
30. marts 2003 - 12:47 #7
>> ahv: din virker som sagt perfekt - på sin egen måde - den kan jeg bruge en anden gang.
>> schaefner; smider du lige et svar. Din løsning var den jeg ledte efter.

I får 30 hver.

Tak for hjælpen :-)
Avatar billede ahv Nybegynder
30. marts 2003 - 12:47 #8
2 sek. jeg har den anden nu.
Avatar billede ahv Nybegynder
30. marts 2003 - 12:48 #9
Sådan her:

<?php
$antal = 5;

echo "<table>";
for($start=1; $antal >= $start; $start++){
if($start <= 5){
echo "<tr><td>$start</td>";
if($antal > 5 && $antal >= $start*2){
$str = $start + 5;
    echo "<td>$str</td>";
}
echo "</tr>";
}}
echo "</table>";

?>
Avatar billede ahv Nybegynder
30. marts 2003 - 12:49 #10
som jeg dog tåger idag, den er heller ikke helt god, sorry.
Avatar billede ahv Nybegynder
30. marts 2003 - 12:57 #11
Okey, nu håber jeg på den er der ;o)

<?php
$antal = 4;

echo "<table>";
for($start=1; $antal >= $start; $start++){
if($start <= 5){
echo "<tr><td>$start</td>";
if($antal > 5 && $antal >= $start+5){
$str = $start + 5;
    echo "<td>$str</td>";
}
echo "</tr>";
}}
echo "</table>";

?>
Avatar billede ahv Nybegynder
30. marts 2003 - 12:58 #12
:o) en lille forkortelse:

<?php
$antal = 7;

echo "<table>";
for($start=1; $antal >= $start; $start++){
if($start <= 5){
echo "<tr><td>$start</td>";
if($antal >= $start+5){
$str = $start + 5;
    echo "<td>$str</td>";
}
echo "</tr>";
}}
echo "</table>";

?>
Avatar billede alta Nybegynder
30. marts 2003 - 13:04 #13
>> ahv: din sidste er lige i øjet fordi den udskriver opdelt i celler. Tak for det :-)

Jeg venter lige og ser, om schaefner smider et svar, ellers er pointene dine.

Tak for udvidet hjælp :)
Avatar billede ahv Nybegynder
30. marts 2003 - 13:05 #14
alta >> det var så lidt.
Avatar billede schaefner Juniormester
30. marts 2003 - 14:09 #15
svar herfra :)
Avatar billede alta Nybegynder
30. marts 2003 - 14:22 #16
Takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester