Na 50 records een nieuw kolom
Mijn probleempje dus. Ik heb een pagina waar ik mijn links weergeef deze worden automatisch toegevoegd via een formuliertje. Nu wil ik als ik meer dan 50 links heb dat na 50 records, record 51 tot 100 wordt weergeven etc.
Ik had een vermoeden dat je eerst in je query limit 50 moet aangeven verder snap ik dat je daarna iets van 51, 100 moet doen ofzo kan iemand mij hiermee helpen
http://dev.mysql.com/doc/refman/4.1/en/select.html en ga je verdiepen in LIMIT.
Wat heb je zelf al geprobeerd? Zie verder Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if ($_GET['categorie'] == "zalen"){
$query = "SELECT * FROM links WHERE catogorie='".$_GET['categorie']."' ";
$result = mysql_query($query) or die(mysql_error());
while( $data = mysql_fetch_assoc($result)){
echo "<a href=\"".$data['URL']."\" target=\"blank\">".$data['naam']."</A><BR>";
}
}
if (mysql_num_rows($result) > 5){
echo "<TD>aq</TD>";
}
?>
if ($_GET['categorie'] == "zalen"){
$query = "SELECT * FROM links WHERE catogorie='".$_GET['categorie']."' ";
$result = mysql_query($query) or die(mysql_error());
while( $data = mysql_fetch_assoc($result)){
echo "<a href=\"".$data['URL']."\" target=\"blank\">".$data['naam']."</A><BR>";
}
}
if (mysql_num_rows($result) > 5){
echo "<TD>aq</TD>";
}
?>
btw.. die aq is niks dit is gwoon ff zodat ik geen dunne border krijg
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
Leuk en aardig, maar waar is de LIMIT? Probeer eens wat, daar leer je het meeste van. En omdat je bezig bent met een SELECT-query, weet je zeker dat je onmogelijk de database kunt verknallen, er kan dus onmogelijk iets ernstigs fout gaan.
Ik snap het niet ik kom er niet uit.. ik wil gewoon na 50 records een nieuwe column hoe moet ik die dan weergeven? 2 queries lijkt me niet echt de oplossing
Code (php)
Bedoel je zoiets?
jah dat werkt idd redelijk goed, ik ben aant editten, ik laat jullie het zo weten
Ok, mijn uitkomst.. het scriptje werkt goed mijn dank daarvoor enkel als ik nu bij %50 een ander getal invul bijv 3 (ik heb 6 records) dus zal er na 3 records keurig een nieuwe kolom komen. Wat dus ook gebeurt. enkel maakt hij er 4 kolommen van waarvan de 1e en de laatste 1 record bevat en de middelste 2 allebei 2 records. Dit is erg vreemd.
pagina.php?p=1 --> limit = 1, 50
pagina.php?p=2 --> limit = 51, 100
pagina.php?p=3 --> limit = 101, 150
het eerste getal is $_GET['p'] * 50 - 49
het tweede getal is $_GET['p'] * 50
Dan nog een leuk scriptje er omheen dat als er maar 90 records zijn, en iemand vraagt pagina 3 op, dat je dan eerst even met mysql_num_rows() telt of er wel records bestaan.
Succes!
Edit:
Ik zie dat je geen pagina's wilt maar tabellen.
Dan moet je niks met je limit doen, maar gewoon na iedere 50 records je td afsluiten en opnieuw openen.
Ik zie dat je geen pagina's wilt maar tabellen.
Dan moet je niks met je limit doen, maar gewoon na iedere 50 records je td afsluiten en opnieuw openen.
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
error_reporting(E_ALL);
// even een voorbeeld-array aanmaken...
$aArray = array();
$count = 100;
$i = 1;
while ($i <= $count) {
$aArray[] = $i;
$i++;
}
$rijen = 7; // maximaal aantal rijen
$aantal = count($aArray); // aantal elementen in de array, vaak weet je dit al!
$kolom = ceil($aantal/$rijen); // aantal benodigde kolommen berekenen
echo '<table border="0">'.PHP_EOL; // 'hoofdtabel'
echo '<tr>'.PHP_EOL;
$xKolom = 1; // kolomnummer
$key = 0; // rijnummer
$rijnr = $rijen;
while ($xKolom <= $kolom) {
// maak nieuwe kolom aan:
echo '<td>'.PHP_EOL;
echo '<table border="0">'.PHP_EOL; // tabel in een <td>, dus binnen de hoofdtabel
while ($key < $rijnr) {
if (isset($aArray[$key])) {
echo '<tr><td>'.$aArray[$key].'</td></tr>'.PHP_EOL;
}
else {
echo '<tr><td> </td></tr>'.PHP_EOL; // lege <td>'s netjes opvullen met een
}
$key++;
}
echo '</table>'.PHP_EOL;
echo '</td>'.PHP_EOL;
$xKolom++;
$rijnr = $rijnr + $rijen;
}
echo '</tr>'.PHP_EOL;
echo '</table>'.PHP_EOL;
?>
error_reporting(E_ALL);
// even een voorbeeld-array aanmaken...
$aArray = array();
$count = 100;
$i = 1;
while ($i <= $count) {
$aArray[] = $i;
$i++;
}
$rijen = 7; // maximaal aantal rijen
$aantal = count($aArray); // aantal elementen in de array, vaak weet je dit al!
$kolom = ceil($aantal/$rijen); // aantal benodigde kolommen berekenen
echo '<table border="0">'.PHP_EOL; // 'hoofdtabel'
echo '<tr>'.PHP_EOL;
$xKolom = 1; // kolomnummer
$key = 0; // rijnummer
$rijnr = $rijen;
while ($xKolom <= $kolom) {
// maak nieuwe kolom aan:
echo '<td>'.PHP_EOL;
echo '<table border="0">'.PHP_EOL; // tabel in een <td>, dus binnen de hoofdtabel
while ($key < $rijnr) {
if (isset($aArray[$key])) {
echo '<tr><td>'.$aArray[$key].'</td></tr>'.PHP_EOL;
}
else {
echo '<tr><td> </td></tr>'.PHP_EOL; // lege <td>'s netjes opvullen met een
}
$key++;
}
echo '</table>'.PHP_EOL;
echo '</td>'.PHP_EOL;
$xKolom++;
$rijnr = $rijnr + $rijen;
}
echo '</tr>'.PHP_EOL;
echo '</table>'.PHP_EOL;
?>
Het is eigenlijk netter om een for-lus te gebruiken i.p.v. een while, maar ik houd meer van een while... Moet ik nodig eens wat aan gaan doen!
Hopelijk kun je er wat mee.
Bedankt mensen ik heb blanche zijn post aangepast en alles werkt nu goed:)
Even voor de zekerheid: stel dat je 170 records hebt. Dan bevat je laatste kolom dus 20 records en 30 lege <td>'s. Houdt je script daar ook rekening mee?