$sql = "SELECT * FROM table order by navn"; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { $i = $i+1; if ($i % 3 == 0) echo "</tr><tr>"; echo "<td><input type='checkbox' name='checkbox[]' value='".$row['navn']."'>".$row['navn']."</td>"; }
Du tæller en værdi $i op med 1 for hver gennemløb. if ($i % 3 == 0) echo "</tr><tr>";[/b] indsætter et </tr><tr> hvis værdien $i er delbart med 3 uden rest.
Husk <TR> i start og </TR> i bund efter det fulde run
Det er ikke helt tydeligt hvad du mener med 123 456 789
Jeg testede din kode med en tabel der indeholdt tre navne, navn1, navn2, og navn3. Outputtet jeg fik (jeg erstatter checkboxen med *) var saaledes: *navn1*navn2*navn3
Hvis det du er ude efter er saadan noget: *navn1 *navn2 *navn3 saa indsaet <tabel> foer og </tabel> efter din while loekke. Altsaa:
$sql = "SELECT * FROM table order by navn"; $result = mysql_query($sql); echo "<table>"; while ($row = mysql_fetch_array($result)) { echo "<tr><td><input type='checkbox' name='checkbox[]' value='".$row['navn']."'>".$row['navn']."</td></tr>"; } echo "</table>";
The_Buzz, jeg er ikke uenig med princippet i dit forslag hvis spoergeren vil have tre check bokse paa hver linie. Og det har du vel forstaaet korrekt (DonTorro?) men jeg havde ikke fattet det.
Men testede du din kode? Naar jeg afproevede din kode paa mit system fik jeg to problemer:
(a) Jeg faar alle checkboxene paa en linie. Det kan jeg afhjaelpe ved at placere while loekken indenfor <table></table> (som jeg foreslog i mit svar).
(b) Naar det er paa plads saa faar jeg i den foerste raekke kun to checkboxe. Det afhjaelper jeg ved at aendre "if ($i % 3 == 0)" til "if ($i % 3 == 1)". Den tredje tekstbox, med $i%3==0 skal jo blive staaende og det er foerst den fjerde textbox, som har $i%3==1, der skal staa i en ny raekke.
Saa hvis din opfattelse af behovet er korrekt vil jeg foreslaa at aendre din foreslaaede kode til dette:
$sql = "SELECT * FROM table order by navn"; $result = mysql_query($sql); echo "<table>"; while ($row = mysql_fetch_array($result)) { $i = $i+1; if ($i % 3 == 1) echo "</tr><tr>"; echo "<td><input type='checkbox' name='checkbox[]' value='".$row['navn']."'>".$row['navn']."</td>"; } echo "</table>";
undskyld for den dårlige formulering :) Men ja , jeg mente 3 på hver linje ligesom the_buzz's forslag.
Da jeg testede det fik jeg de samme fejl som Christian_Belgien, og rettede ($i % 3 == 0) Men det er lidt underligt, har 3 sql forespørgsler i samme tabel og alle skal have hver deres if($i % 3 == 0)
Det underlige er at: Nr1 skal det være 3 == 1, og Nr2 skal det være 3 == 2, og Nr3 skal det være 3 == 0.. Kan godt være det ikke er underligt, men det virker .. skide godt :D
Vi har begge smidt et svar, de indlaeg der er markeret med gult. Du lukker traaden ved at acceptere et eller begge svar ved flueben i den lille firkant i svaret/svarene og derefter i den nye box der fremkommer for at acceptere svar og afgive points.
Du kan ikke I DENNE TRAAD afgive mere end 60 points. De muligheder du har, hvis du vil fordele points ligeligt, er at give os hver 30 points eller at give en af os de 60 points og saa oprette et nyt spoergsmaal "Points til (den der ikke fik under denne traad.) Jeg vedlaegger dette udsnit af FAQ:
"Hvordan giver jeg en anden bruger flere point?
Først skal vi have på plads at du ikke må udlove mere end 200 point for et spørgsmål, heller ikke fordelt over flere spørgsmål.
Metoden er forholdsvis simpel. Opret et nyt spørgsmål i samme kategori som det oprindelige spørgsmål og kald det "Point til [brugernavn]" hvor du erstatter [brugernavn] med navnet på den bruger du ønsker skal have point. Husk at skrive et link til spørgsmålet hvor du normalt skriver en længere beskrivelse af dit problem.
"
Synes godt om
Ny brugerNybegynder
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.