Nieuw lid |
|
Hallo,
Ik ben nog niet zo heel lang bezig met PHP maar tot nu toe lukt alles aardig.
Ik ben bezig met het maken van een script waarmee een HTML tabel wordt gemaakt, dit gaat goed.
Inhoud toevoegen aan de tabel vanuit een database gaat ook goed en alle resultaten worden naast elkaar in het tabel getoont.
Daarnaast heb ik er een navigatiefunctie bij gemaakt, die overigens ook werkt.
Dit alles heb ik gedaan aan de hand van 2 tutorials die hier bij Sitemasters te vinden zijn.
Nu het probleem, de tabel werkt perfect. Er moet een tabel gemaakt worden van 3 bij 3 (3 kolommen en 3 rijen). In totaal komen daar 9 items (afbeeldingen) in te staan en die moeten netjes naast elkaar worden getoont. Daaronder komt een rij waarin de navigatie staat.
Voorbeeld:
------------
| 1 | 2 | 3 |
------------
| 4 | 5 | 6 |
------------
| 7 | 8 | 9 |
------------
| Nav |
------------
Wanneer er telkens 3 afbeeldingen zijn die in een rij geplaatst kunnen worden, is er niets aan de hand en wordt de tabel netjes getoont met daar direct onder de navigatie.
Wanneer er een X aantal afbeeldingen zijn die niet te vermenigvuldigen zijn met 3, wordt de tabel niet netjes afgemaakt.
Voorbeeld:
Er zijn 11 afbeeldingen
Pag 1
------------
| 1 | 2 | 3 |
------------
| 4 | 5 | 6 |
------------
| 7 | 8 | 9 |
------------
| Nav |
------------
Pag 2
------------
| 1 | 2 |
------------
| Nav |
------------
Het gevolg is dat de 2de pagina een verkeerd tabel toont.
Nu moest er volgens de tutorial een extra stukje code bij wat de tabel netjes zou afsluiten. Maar het enige wat dit veroorzaakt is dat de tabel inderdaad netjes wordt afgesloten maar dat alle 9 items per pagina onder elkaar worden getoont.
Dan verschijnen er dus 3 kolommen en 9 rijen in plaats van 3 rijen.
De tutorials die ik heb gebruikt:
1. Tutorial voor de navigatie
2. Tutorial voor het maken van de tabel
De code die ik op dit moment op de pagina gebruik:
<?php
// Dit script is bedoeld om de kleurplaten te laten zien en pagina's te genereren
$user = "XXXX";
$pass = "XXXX";
$host = "XXXX";
$db_1 = "XXXX";
@mysql_connect ($host, $user, $pass) or die ("Error connecting!");
@mysql_select_db ($db_1) or die ("Error connecting database!");
$res1 = mysql_query("SELECT COUNT(plaat_id) FROM kleur_platen") or die ("res1:". mysql_error());
$totaal_items = mysql_result($res1, 0);
$items_per_pagina = 9;
$aantal_paginas = ceil($totaal_items / $items_per_pagina);
$huidige_pagina = 0;
if( isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
$huidige_pagina = $_GET['p'];
}
$offset = $huidige_pagina * $items_per_pagina;
$res2 = mysql_query("SELECT * FROM kleur_platen WHERE plaat_cato LIKE '". $_GET['subcato'] ."%' ORDER BY plaat_titel ASC LIMIT ". $offset.",".$items_per_pagina) or die("res2:". mysql_error());
$aantal_cols = 3;
$huidige_col = 0;
$num = mysql_num_rows($res2);
if ($num > 0){
while ($kleur = mysql_fetch_assoc($res2)){
if( $huidige_col == 0){
echo "<tr>\n";
}
echo "<td align=\"left\" width=\"195\" height=\"270\" background=\"../kleurplaat_vak.jpg\" valign=\"top\">\n";
echo "<div class=\"div_kleurplaat\">\n";
echo "<a href=\"http://kleurpret.lobsteranimatie.nl/printpagina.php?plaat=". $kleur["plaat_printcato"] ."\" target=\"_blank\" class=\"a_menu_link\">\n";
echo "<img src=\"http://kleurpret.lobsteranimatie.nl/". $kleur["plaat_link_map"] ."/thumb/". $kleur["plaat_kleur_extensie"] ."\" alt=\"". $kleur["plaat_alt"] ."\" width=\"150\" height=\"200\" border=\"0\" />\n";
/*echo "<span class=\"spanblock\">". $kleur["plaat_titel"] ."</span>";*/
echo "</a></div></td>\n";
$huidige_col++;
if ($huidige_col == $aantal_cols){
echo "</tr>\n";
$huidige_col = 0;
}
}
}
echo "<tr><td align=\"center\" colspan=\"3\" background=\"../next_balk.jpg\" valign=\"top\" height=\"50\" class=\"td_advert\">";
echo "<div class=\"div_next\">";
for($a = 0; $a < $aantal_paginas; $a++) {
if($huidige_pagina == $a) {
// huidige pagina is niet klikbaar
echo "<b>".($a+1)."</b>";
} else {
// een andere pagina
echo "<a href=\"http://kleurpret.lobsteranimatie.nl/kleurplaat.php?subcato=". $_GET["subcato"] ."&p=".$a."\" target=\"_parent\" class=\"a_menu_link\">".($a+1)."</a>";
}
// teken tussen alle items
if($a < $aantal_paginas - 1) {
echo " | ";
}
}
echo "</div></td></tr>";
?>
<?php // Dit script is bedoeld om de kleurplaten te laten zien en pagina's te genereren $user = "XXXX"; $pass = "XXXX"; $host = "XXXX"; $db_1 = "XXXX"; $items_per_pagina = 9; $aantal_paginas = ceil($totaal_items / $items_per_pagina); $huidige_pagina = 0; if( isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) { $huidige_pagina = $_GET['p']; } $offset = $huidige_pagina * $items_per_pagina; $res2 = mysql_query("SELECT * FROM kleur_platen WHERE plaat_cato LIKE '". $_GET['subcato'] ."%' ORDER BY plaat_titel ASC LIMIT ". $offset.",".$items_per_pagina) or die("res2:". mysql_error()); $aantal_cols = 3; $huidige_col = 0; if ($num > 0){ if( $huidige_col == 0){ } echo "<td align=\"left\" width=\"195\" height=\"270\" background=\"../kleurplaat_vak.jpg\" valign=\"top\">\n"; echo "<div class=\"div_kleurplaat\">\n"; echo "<a href=\"http://kleurpret.lobsteranimatie.nl/printpagina.php?plaat=". $kleur["plaat_printcato"] ."\" target=\"_blank\" class=\"a_menu_link\">\n"; echo "<img src=\"http://kleurpret.lobsteranimatie.nl/". $kleur["plaat_link_map"] ."/thumb/". $kleur["plaat_kleur_extensie"] ."\" alt=\"". $kleur["plaat_alt"] ."\" width=\"150\" height=\"200\" border=\"0\" />\n"; /*echo "<span class=\"spanblock\">". $kleur["plaat_titel"] ."</span>";*/ echo "</a></div></td>\n"; $huidige_col++; if ($huidige_col == $aantal_cols){ $huidige_col = 0; } } } echo "<tr><td align=\"center\" colspan=\"3\" background=\"../next_balk.jpg\" valign=\"top\" height=\"50\" class=\"td_advert\">"; echo "<div class=\"div_next\">"; for($a = 0; $a < $aantal_paginas; $a++) { if($huidige_pagina == $a) { // huidige pagina is niet klikbaar echo "<b>".($a+1)."</b>"; } else { // een andere pagina echo "<a href=\"http://kleurpret.lobsteranimatie.nl/kleurplaat.php?subcato=". $_GET["subcato"] ."&p=".$a."\" target=\"_parent\" class=\"a_menu_link\">".($a+1)."</a>"; } // teken tussen alle items if($a < $aantal_paginas - 1) { } } ?>
Bovenstaande code werkt goed, maar de tabel wordt niet netjes afgemaakt.
Onderstaande code zou de tabel af moeten ronden en de rij moeten vullen met cellen.
if ($huidige_col != $aantal_cols){
for($i = $huidige_col; $i < $aantal_cols; $i++) {
echo "<td align=\"left\" width=\"195\" height=\"270\" background=\"../kleurplaat_vak.jpg\" valign=\"top\"> </td>\n";
}
echo "</tr>\n";
}
if ($huidige_col != $aantal_cols){ for($i = $huidige_col; $i < $aantal_cols; $i++) { echo "<td align=\"left\" width=\"195\" height=\"270\" background=\"../kleurplaat_vak.jpg\" valign=\"top\"> </td>\n"; } }
Kan iemand mij vertellen wat er fout gaat?
|