Avatar billede morpheus Nybegynder
27. februar 2013 - 11:46 Der er 2 kommentarer og
1 løsning

Udskriv 3 pr. række med mulighed for start fra celle 2

Hej,

Jeg har "lånt" et script her fra, som jeg ønsker at udvide med muligheden for at starte fra en bestemt celle.

Scriptet ser således ud:

$res = $rel->conn->query("SELECT companyName,name,title,barcode FROM VisitorToRegister GROUP BY companyName ORDER BY barcode LIMIT 0,30") or die($fca->conn->error);
$total = $res->num_rows;
$output = "<table border='1'>\n\t<tr>";
for($i=0;$i<$total+$startFrom;$i++) {
    if(!($i%$kolonner) && $i>0 && $i<$total-1) { //problem med tom startrække og potentiel tom slutrække fikset
        $output .= "\t</tr>\n\t<tr>\n";
    }
    $row = $res->fetch_assoc();
    $output .= "\t\t<td width=\"$cellwidth\">".$row['companyName']."<br>".$row['name']."<br>".$row['title']."</td>\n";
}
for($i=0;$i<$kolonner-($total%$kolonner);$i++) {
    if($total%$kolonner != 0)
    $output .= "\t\t<td width=\"$cellwidth\"> </td>\n";
}
$output .= "\t</tr>\n</table>";
print $output;
Avatar billede morpheus Nybegynder
27. februar 2013 - 11:56 #1
Den første for() skal selvfølgelig være uden +$startFrom :)
Avatar billede morpheus Nybegynder
27. februar 2013 - 13:20 #2
Problem solved!

Lavede et lille hack i toppen, hvor jeg hælder min data fra databasen over i et array, som jeg prepender med tomme arrays, for så mange tomme celler jeg ønsker:

$kolonner = 3;
$startFrom = 5;

$res = $rel->conn->query("SELECT companyName,name,title,barcode FROM VisitorToRegister GROUP BY companyName ORDER BY barcode LIMIT 0,30") or die($fca->conn->error);
while($row = $res->fetch_assoc()) {
    $arrOut[] = $row;
}
if($startFrom != 0) {
    for($s=0;$s<$startFrom;$s++) {
        array_unshift($arrOut,array());
    }
}
$total = count($arrOut);
$output = "<table border='1'>\n\t<tr>";
for($i=0;$i<$total;$i++) {
    if(!($i%$kolonner) && $i>0 && $i<$total-1) { //problem med tom startrække og potentiel tom slutrække fikset
        $output .= "\t</tr>\n\t<tr>\n";
    }
    $output .= "\t\t<td width=\"$cellwidth\">";
    if(count($arrOut[$i])>0) {
        $output .= $arrOut[$i]['companyName']."<br>";
        $output .= $arrOut[$i]['name']."<br>";
        $output .= $arrOut[$i]['title']."<br>";
    } else {
        $output .= "&nbsp;";

    }
    $output .= "</td>\n";
}
for($i=0;$i<$kolonner-($total%$kolonner);$i++) {
    if($total%$kolonner != 0)
    $output .= "\t\t<td width=\"$cellwidth\">&nbsp;</td>\n";
}
$output .= "\t</tr>\n</table>";
print $output;
Avatar billede morpheus Nybegynder
27. februar 2013 - 13:20 #3
Svar
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

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