Avatar billede mjl Nybegynder
21. november 2008 - 07:57 Der er 17 kommentarer og
1 løsning

Bestemme antal rækker og kolonner

Hej der ...

Jeg har nogle reg. i MySQL, som jeg liner op i en <table> hele min <table> er på 10 kolonner, men hvis der kun er 4 reg. i DB'en, hvordan får jeg så PHP, til at lave de sidste 6, så der hele tider er 10 kolonner i min <table> ???

hilsen Conrad
Avatar billede mjl Nybegynder
21. november 2008 - 08:11 #1
|reg|reg|reg|reg|?|?|?|?|?|?|
Avatar billede mjl Nybegynder
21. november 2008 - 09:14 #2
Nogen hjælp?
Avatar billede jakobdo Ekspert
21. november 2008 - 09:30 #3
Du kunne kigge på modulus.

$rest = $antal % 10;
Avatar billede mjl Nybegynder
21. november 2008 - 09:54 #4
Hmmm ... du kan vel ikke beskrive lidt mere detaljeret, hvordan jeg bruger det ?
Avatar billede mjl Nybegynder
21. november 2008 - 10:48 #5
Ok ... jeg prøver lige, om jeg kan finde noget om "modulus" på PHP-net ... er ikke helt med !
Avatar billede mjl Nybegynder
21. november 2008 - 10:59 #6
Nå, jeg må hjem og gøre nogle forsøg, fatter nemlig
ikke helt dit svar ! Men tak indtil videre!
Avatar billede jakobdo Ekspert
21. november 2008 - 12:54 #7
2 muligheder:

<?php
//http://www.eksperten.dk/spm/853604

$antal = 14;
$kolonner = 10;

if($antal > 0){
    echo '<table border="1"><tr>';
   
    for($i = 0; $i < $antal; $i++){
        if(!($i % $kolonner)){
            echo '</tr><tr>';
        }
        echo '<td>' . $i . '</td>';
    }
   
    for($i = 0; $i < ($kolonner - ($antal % $kolonner)); $i++){
        echo '<td>&nbsp;</td>';
    }
   
    echo '</tr></table>';
}

if($antal > 0){
    echo '<table border="1"><tr>';
   
    for($i = 0; $i < $antal; $i++){
        if(!($i % $kolonner)){
            echo '</tr><tr>';
        }
        echo '<td>' . $i . '</td>';
    }
   
    echo '<td colspan="'.($kolonner - ($antal % $kolonner)).'">&nbsp;</td>';
   
    echo '</tr></table>';
}

?>

og du kan se det live her: http://www.codebreaker.dk/leg/853604.php
Avatar billede mjl Nybegynder
21. november 2008 - 14:13 #8
Aaaahhh ... ok - nu tror jeg, at jeg er med ! Prøver lige ...
Avatar billede mjl Nybegynder
21. november 2008 - 14:30 #9
Jeg bruger jo en "while" - der henter de antal reg. fra DB'en der svarer til kaldet. Hvis den returnerer 4 svar, skal de listes i en table, der skal bestå af 10 kolonner ...

|reg|reg|reg|reg|?|?|?|?|?|?|

... altså skal jeg efter PHP har lavet 4 <td>'er, bruge 6 blanke, så der hele tiden er 10 i alt !
Avatar billede sw_red_6 Nybegynder
21. november 2008 - 14:39 #10
Det er da også nøjagtig hvad jakobdo's kode gør..
Måske du kunne vise din kode hvis du ikke kan få det til at virke...
Avatar billede mjl Nybegynder
21. november 2008 - 14:50 #11
Indholdet i de 4 første, er 0,1,2,3 ($i) ... hvordan for jeg mine svar fra DB'en der ind i stedet ... !?
Avatar billede mjl Nybegynder
21. november 2008 - 14:59 #12
<table><tr>
<?
$hent_noget = mysql_query("SELECT * FROM databasen ORDER BY dato");
while ($hent_noget_print = mysql_fetch_array($hent_noget)) {
echo "
<td>".$hent_noget_print["resultat"]."</td>
";
}
?>
</tr></table>

Denne resulterer i øjeblikket i 4 <td>'er ...

|1|2|3|4|

De skal efterfølges af 6 <td>'er

|1|2|3|4|x|x|x|x|x|x|
Avatar billede sw_red_6 Nybegynder
21. november 2008 - 15:06 #13
du kan ligge resultatet i et array og kører det igennem med som jakobdo's eksempel eller du kan bruge mysql_num_rows og bruge den til at tjekke hvor mange ekstra kolonner der skal skrives..
Avatar billede mjl Nybegynder
21. november 2008 - 15:12 #14
Ok .. tak for hjælpen !
Avatar billede jakobdo Ekspert
21. november 2008 - 15:52 #15
<?php
$kolonner = 10;
$hent_noget = mysql_query("SELECT * FROM databasen ORDER BY dato");
$antal = mysql_num_rows($hent_noget);

if($antal > 0){
    echo '<table border="1"><tr>';
$i = 0;
while ($hent_noget_print = mysql_fetch_array($hent_noget)) {
        if(!($i % $kolonner)){
            echo '</tr><tr>';
        }
        echo '<td>' . $hent_noget_print['resultat'] . '</td>';
$i++;
    }
   
    echo '<td colspan="'.($kolonner - ($antal % $kolonner)).'">&nbsp;</td>';
   
    echo '</tr></table>';
}
?>
Avatar billede jakobdo Ekspert
21. november 2008 - 15:52 #16
Og du får et svar.
Avatar billede mjl Nybegynder
21. november 2008 - 15:54 #17
10.000 tak - super duper hjælp - tak ! Og god weekend, til begge !!!
Avatar billede jakobdo Ekspert
21. november 2008 - 15:59 #18
Takker for point.
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