Slechts enkele waarden uit de database echo'en
mogelijks kom ik met een stomme vraag, maar stomme vragen bestaan niet en ik wil echt wel iets bijleren. Aangezien ik het antwoord niet echt ken, stel ik mn vraag hier.
Ik heb een database met 117 gegevens. Nu ik wil deze kunnen bewerken via een PHP pagina. Tot hiertoe geen problemen met scripten.
Gezien de hoeveelheid aan gegevens wil ik slechts 20 regels (gegevens) per pagina weergeven. Dus zouden er in totaal 6 pagina's moeten komen.
Hoe laat ik alle gegevens uit de database komen, verspreid over de juiste pagina's.
Hopelijk verstaan jullie mij?
Kan iemand uitleggen hoe jullie dit doen?
Groeten,
Olivier
en dan op de volgende pagina
SELECT ...... LIMIT 20, 20
SELECT ...... LIMIT 40, 20
etc.
En hoe weet ik hoe ver ik moet gaan?
Bv. als ik nu 4 gegevens bijvoeg (dan zijn er 121 gegevens in totaal) zou er automatisch een pagina bij moeten komen...
Bedankt voor de hulp!
Groeten,
Olivier
Zoek eens op pagination al dan niet in combinatie met php
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
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
<?php
##instellingen van pagina
if(isset($_GET['pagina'])) {
$replay = $_GET['pagina'];
} else {
$replay = "0";
}
##sql
$req = "select id FROM gebruiker WHERE id='?' ORDER BY id DESC LIMIT ".$replay.",25";
#dit zal 25 gegevens weergeven pagina kan leeg zijn en dan zijn het de eerste gegevens
#voor vanonder de pagina nummers
# de vorige
if($_GET['pagina'] !== "0") {
if($_GET['pagina'] >= "0") {
$vorige_replay = $_GET['pagina'] - "25";
echo '<a href="?&pagina='.$vorige_replay.'"><-- Vorige |</a>';
}
}
##huidige
if(isset($_GET['pagina'])) {
echo $_GET['pagina'] / "25";
}
#volgende
if((mysql_num_rows($res) >= "25")) {
$volgende_replay = $_GET['replay'] + "25";
echo '<a href="?pagina='.$volgende_replay.'">| Volgende --></a>';
}
?>
##instellingen van pagina
if(isset($_GET['pagina'])) {
$replay = $_GET['pagina'];
} else {
$replay = "0";
}
##sql
$req = "select id FROM gebruiker WHERE id='?' ORDER BY id DESC LIMIT ".$replay.",25";
#dit zal 25 gegevens weergeven pagina kan leeg zijn en dan zijn het de eerste gegevens
#voor vanonder de pagina nummers
# de vorige
if($_GET['pagina'] !== "0") {
if($_GET['pagina'] >= "0") {
$vorige_replay = $_GET['pagina'] - "25";
echo '<a href="?&pagina='.$vorige_replay.'"><-- Vorige |</a>';
}
}
##huidige
if(isset($_GET['pagina'])) {
echo $_GET['pagina'] / "25";
}
#volgende
if((mysql_num_rows($res) >= "25")) {
$volgende_replay = $_GET['replay'] + "25";
echo '<a href="?pagina='.$volgende_replay.'">| Volgende --></a>';
}
?>
je kan (voor meer nummers onderaan) ophalen hoeveel het er zijn en delen door 25 en plus 1 indien comma getal )
Gewijzigd op 13/04/2012 20:41:30 door php knipper
met het pagination-script van deze site => http://www.phphulp.nl/php/script/php-algemeen/pagination-script/1763/paginationscript/1270/ is het gelukt! Bedankt voor de zoektip!
@php knipper, u code werkt niet echt, heb al liggen kijken (inlog en connection toegevoegd, $req aangepast), maar het lukt echt niet...
(Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /Bewerken/index.php on line 55)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
#Error-reporting aan!
error_reporting(E_ALL);
/* Database instellingen */
// Hostnaam
$hostname = "mysql3.000webhost.com";
// Gebruikersnaam
$username = "a5852590_1";
// Wachtwoord
$password = "*******";
// Database
$database = "a5852590_1";
# Database connectie maken
mysql_connect($hostname,$username,$password) or die(mysql_error());
# Database selecteren
mysql_select_db($database);
/* Einde database instellingen */
if(isset($_GET['pagina'])) {
$replay = $_GET['pagina'];
} else {
$replay = "0";
}
##sql
$res = "SELECT *
FROM `a5852590_1`.`Atleten`
ORDER BY `Atleten`.`id` ASC
LIMIT ".$replay.",25";
#dit zal 25 gegevens weergeven pagina kan leeg zijn en dan zijn het de eerste gegevens
#voor vanonder de pagina nummers
# de vorige
if($_GET['pagina'] !== "0") {
if($_GET['pagina'] >= "0") {
$vorige_replay = $_GET['pagina'] - "25";
echo '<a href="?&pagina='.$vorige_replay.'"><-- Vorige |</a>';
}
}
##huidige
if(isset($_GET['pagina'])) {
echo $_GET['pagina'] / "25";
}
#volgende
if((mysql_num_rows($res) >= "25")) {
$volgende_replay = $_GET['replay'] + "25";
echo '<a href="?pagina='.$volgende_replay.'">| Volgende --></a>';
}
?>
#Error-reporting aan!
error_reporting(E_ALL);
/* Database instellingen */
// Hostnaam
$hostname = "mysql3.000webhost.com";
// Gebruikersnaam
$username = "a5852590_1";
// Wachtwoord
$password = "*******";
// Database
$database = "a5852590_1";
# Database connectie maken
mysql_connect($hostname,$username,$password) or die(mysql_error());
# Database selecteren
mysql_select_db($database);
/* Einde database instellingen */
if(isset($_GET['pagina'])) {
$replay = $_GET['pagina'];
} else {
$replay = "0";
}
##sql
$res = "SELECT *
FROM `a5852590_1`.`Atleten`
ORDER BY `Atleten`.`id` ASC
LIMIT ".$replay.",25";
#dit zal 25 gegevens weergeven pagina kan leeg zijn en dan zijn het de eerste gegevens
#voor vanonder de pagina nummers
# de vorige
if($_GET['pagina'] !== "0") {
if($_GET['pagina'] >= "0") {
$vorige_replay = $_GET['pagina'] - "25";
echo '<a href="?&pagina='.$vorige_replay.'"><-- Vorige |</a>';
}
}
##huidige
if(isset($_GET['pagina'])) {
echo $_GET['pagina'] / "25";
}
#volgende
if((mysql_num_rows($res) >= "25")) {
$volgende_replay = $_GET['replay'] + "25";
echo '<a href="?pagina='.$volgende_replay.'">| Volgende --></a>';
}
?>
Groeten,
Olivier
Gewijzigd op 13/04/2012 21:20:06 door Olivier Peeters
ik gaf een sql en ging verder ( dus heb ik geen mysql gebruikt in mijn voorbeeld dat moet je zelf inplanne )
Je voert de query niet uit. Je stopt de query alleen in een string, maar daarmee krijg je nog geen resultaten uit de database. Ergens tussen regels 37 en 55 zal je dus nog een mysql_query() call moeten uitvoeren (en dan regel 55 waarschijnlijk ook nog even aanpassen).
Hey. Ik kom bijna nooit online maar toen ik dit zag moest ik wel. Ik wil even duidelijk melden dat de bovenstaande scripts NIET beveiligd zijn tegen SQL injection!
hier maar eens.
En als je lekker in de OOP-sfeer wilt blijven heb ik dit voor je: OO Paginanummering
Waarom zelf functies schrijven wanneer een ander het al gedaan heeft voor je?
Succes! :-)
Ik heb ook een paginanummeringscript gescreven. Kijk En als je lekker in de OOP-sfeer wilt blijven heb ik dit voor je: OO Paginanummering
Waarom zelf functies schrijven wanneer een ander het al gedaan heeft voor je?
Succes! :-)
Probleem is dus opgelost...
Groeten,
Olivier