Vraag & Antwoord

Webprogrammeren & scripting

php,rows per 4 uitlezen

Anoniem
None
9 antwoorden
  • Ik heb onderstaande code om een menu op een site te zetten.
    maar dit geeft 10 knoppen naast elkaar, en ik wil er 4 naast elkaar, daaronder weer 4 en daaronder de overige 2.

    Hoe geef je zoiets aan?

    [code:1:5793bb28f5]$q=mysql_query("select * from gildemenu order by gildemenu_id");
    while ($record=mysql_fetch_row($q))
    {
    echo "<td><a href=\"$record[5]\" onclick=\"MM_nbGroup('down','group1','$record[4]','$record[2]',1)\" onmouseover=\"MM_nbGroup('over','$record[4]','$record[2]','',1)\" onmouseout=\"MM_nbGroup('out')\" target=\"$record[6]\" onFocus=\"if(this.blur)this.blur()\"><img src=\"$record[1]\" height=38 width=150 onLoad='' border=0 alt='$record[3]' name='$record[4]'></a>\n";
    }
    echo "</td></tr></table>";
    }
    [/code:1:5793bb28f5]

    :( tuurlijk kijk ik op de php.net pagina, maar hoe formuleer je zo'n vraag ?
  • Iets als dit:
    [code:1:9e59025195]$i = 1;
    while ( $i <= 10 )
    {
    echo "*$i* ";
    if ( $i%4 == 0 )
    {
    echo "<BR>";
    }
    $i++;
    }
    [/code:1:9e59025195]
    M.a.w. de modulo-functie kijkt of je bij het 4e record bent en plaats een BR.
    Denk dat je het idee wel op je code kunt toepassen :)
  • [quote:4f74844f2e="Financial"]de modulo-functie[/quote:4f74844f2e]
    Heet dat niet gewoon de modulus operator :-? ??
  • [quote:3e754dfbcb="Annie"]Heet dat niet gewoon de modulus operator :-? ??[/quote:3e754dfbcb]Jawel.

    - Bas
  • [offtopic :)]Tjonge jonge,

    'k geef nog eens een idee.
    [/offtopic]
  • ghehe, ik houd je gewoon scherp ;)
  • jammer , ik krijg het toch niet voor elkaar…
    krijg nu dit:

    knop knop knop knop
    knop, drie legen cellen
    knop knop knop knop
    knop, drie legen cellen
    knop knop knop knop
    knop, knop, 2 legen cellen

    dus ik kom al in de buurt maar nog niet dat wat ik hebben wil


    [code:1:fdc01d3231] $q=mysql_query("select * from gildemenu order by gildemenu_id");
    while ($record=mysql_fetch_row($q))
    $i = 1;
    while ( $i <= 10 )
    {

    echo "<td><a href=\"$record[5]\" onclick=\"MM_nbGroup('down','group1','$record[4]','$record[2]',1)\" onmouseover=\"MM_nbGroup('over','$record[4]','$record[2]','',1)\" onmouseout=\"MM_nbGroup('out')\" target=\"$record[6]\" onFocus=\"if(this.blur)this.blur()\"><img src=\"$record[1]\" height=38 width=150 onLoad='' border=0 alt='$record

    [3]' name='$record[4]'></a></td>";

    if ( $i%4 == 0 )
    {
    echo "<tr><td><a href=\"$record[5]\" onclick=\"MM_nbGroup('down','group1','$record[4]','$record[2]',1)\" onmouseover=\"MM_nbGroup('over','$record[4]','$record[2]','',1)\" onmouseout=\"MM_nbGroup('out')\" target=\"$record[6]\" onFocus=\"if(this.blur)this.blur()\"><img src=\"$record[1]\" height=38 width=150 onLoad='' border=0 alt='$record[3]' name='$record[4]'></a></td><td> </td><td> </td><td> </td></tr>";

    }
    $i++;
    }
    {

    }
    echo "</td></tr></table>";
    }

    [/code:1:fdc01d3231]

    :-?

  • Ik doe dit even zonder te testen, er kunnen dus nog fouten inzitten, maar het idee moet duidelijk zijn.

    (Omwille van de layout heb ik sommige regels wat afgekort)
    [code:1:fc4815e76d]
    $q = mysql_query("select * from gildemenu order by gildemenu_id");

    $i = 0;

    echo "<table><tr>";

    while ($record = mysql_fetch_row($q))
    {
    $i++;
    echo "
    <td>
    <a href=\"", $record[5], "\"
    onclick=\"MM_nbGroup('down')\"
    onmouseover=\"MM_nbGroup('over')\"
    onmouseout=\"MM_nbGroup('out')\"
    target=\"", $record[6], "\"
    onfocus=\"if(this.blur)this.blur()\">
    <img src=\"", $record[1], "\" height='38' width='150' onload=''
    border='0' alt='", $record[3], "' name='", $record[4], "' />
    </a>
    </td>";

    if (($i % 4) == 0)
    {
    echo "</tr><tr>";
    }
    }

    echo "</tr></table>";
    [/code:1:fc4815e76d]

    Je kan dit nog "verbeteren" door lege tablecells toe te voegen om de laatste tablerow op te vullen (bijv. bij 4-4-2). Of door er voor te zorgen dat er geen laatste lege regel ontstaat bij bijv. 4-4-4.

    Overigens is het niet nodig om hiervoor een table te gebruiken. Je kan ook alles "float"-en in een <div>. Voor meer informatie hierover moet je maar eens op internet rondzoeken of hier op het forum.
  • dat is wat ik zocht, Merci Beaucoup !

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.