[opgelost] Volgende/vorige record tonen
waarbij te zien is welke pagina het is (dus: pagina 4/5). En dus niet met nummers in een rij zoals ik ze in veel voorbeelden tegenkom.
Ik laat maar record tegelijk zien op het scherm..
Mijn vraag is, moet ik toch van zo'n script/opbouw uitgaan om het zelfde resultaat te ehalen uiteindenlijk?..
Lastige is dat ik of binnen cagegorien wil bladeren (als dat aangeklikt is) of in alle records (opdrachten via ID).
MIjn code is:
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
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
<?
$query = "
SELECT
id,
name,
label,
tekst,
category,
klant,
DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
FROM
upload
";
if(isset($_GET['id']))
{
$query .= " WHERE id = '".mysql_real_escape_string($_GET['id'])."'";
}
elseif(isset($_GET['category']))
{
$query .= " WHERE category = '".mysql_real_escape_string($_GET['category'])."'";
}
else
{
echo 'Geen id of categorie opgegeven';
}
$result = mysql_query($query) or die('Error : ' . mysql_error());
$myrow = mysql_fetch_assoc($result);
?>
<!-- ### WERK TONEN ######-->
<div >
<div>
<h3> <? echo $myrow['klant'] ?></h3>
<p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
<p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
<p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>
<? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
<p class="newstext"> <? echo ($myrow['tekst']) ?> </p>
</div>
</div> ?>
$query = "
SELECT
id,
name,
label,
tekst,
category,
klant,
DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
FROM
upload
";
if(isset($_GET['id']))
{
$query .= " WHERE id = '".mysql_real_escape_string($_GET['id'])."'";
}
elseif(isset($_GET['category']))
{
$query .= " WHERE category = '".mysql_real_escape_string($_GET['category'])."'";
}
else
{
echo 'Geen id of categorie opgegeven';
}
$result = mysql_query($query) or die('Error : ' . mysql_error());
$myrow = mysql_fetch_assoc($result);
?>
<!-- ### WERK TONEN ######-->
<div >
<div>
<h3> <? echo $myrow['klant'] ?></h3>
<p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
<p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
<p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>
<? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
<p class="newstext"> <? echo ($myrow['tekst']) ?> </p>
</div>
</div> ?>
Gewijzigd op 01/01/1970 01:00:00 door David david
dan krijg je (vorige 1 volgende) klik je op volgende krijg je dit
(vorige 2 volgende)
geen idee overigens hoe ik met die twee querys moet omgaan..
dus als jij op 1 pagina 10resultaten wilt laten zien word het limit 1,10
als jij meer wilt tonen maak je van 10 20 of meer..
en dit zou ik doen via een for functie
Zoek eens op 'Pagination' (google) of hier bij de tutorials, daar staat wel iets wat je zoekt.
ja maar niet met twee verschillende query's.. maar goed ik ga wel wat proberen..
Moet ik die in mijn geval niet vervangen door ID (of category). Want er wordt altijd al een record getoond aan de hand van category of meegekregen id.
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
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
<?
if(!isset($_GET['page'])){
$page = 1;
} else {
$page = $_GET['page'];
}
$max_results = 1;
$from = (($page * $max_results) - $max_results);
// Perform MySQL query on only the current page number's results
$sql = mysql_query("SELECT * FROM pages LIMIT $from,
$max_results");
while($row = mysql_fetch_array($sql)){
// Build your formatted results here.
echo $row['title']."<br />";
}
// Figure out the total number of results in DB:
$total_results = mysql_result(mysql_query("SELECT COUNT(*)
as Num FROM pages"),0);
// Figure out the total number of pages. Always round up using ceil()
$total_pages = ceil($total_results / $max_results);
// DAN de Pagina links..?>
if(!isset($_GET['page'])){
$page = 1;
} else {
$page = $_GET['page'];
}
$max_results = 1;
$from = (($page * $max_results) - $max_results);
// Perform MySQL query on only the current page number's results
$sql = mysql_query("SELECT * FROM pages LIMIT $from,
$max_results");
while($row = mysql_fetch_array($sql)){
// Build your formatted results here.
echo $row['title']."<br />";
}
// Figure out the total number of results in DB:
$total_results = mysql_result(mysql_query("SELECT COUNT(*)
as Num FROM pages"),0);
// Figure out the total number of pages. Always round up using ceil()
$total_pages = ceil($total_results / $max_results);
// DAN de Pagina links..?>
Gewijzigd op 01/01/1970 01:00:00 door david david
bijv: pagina.php?page=1&tot=10
dan word je aanroep dus $_GET['page']
en die $_GET['page'] is dus het getal die mee gegeven word
dan krijg je ook bij deze url deze er bij
$_GET['tot'] en die geeft het het getal 10 aan
en dan kan je dus een pagina nummering maken
die if(!isset($_GET['page'])) { } is om te kijken of hij wel geadd is bij de url zeg maar..
Gewijzigd op 01/01/1970 01:00:00 door Robert dat ben ik
(zie code..)
die kijkt of het wel of niet gezet is
zie deze code met uitleg
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
if(!isset($_GET['page'])){ //als de pagina nummer niet is gezet
$page = 1; //set de nummer pagina 1 omdat er niks is ingevult
} else { //in dit geval wil dit zeggen als hij wel geplaatst is
$page = $_GET['page']; //heej verrek hij is toch geplaatst
}
echo"{$page}"; //nu kunnen we het tonen laten zien omdat ie nu zeker gezet is
?>
if(!isset($_GET['page'])){ //als de pagina nummer niet is gezet
$page = 1; //set de nummer pagina 1 omdat er niks is ingevult
} else { //in dit geval wil dit zeggen als hij wel geplaatst is
$page = $_GET['page']; //heej verrek hij is toch geplaatst
}
echo"{$page}"; //nu kunnen we het tonen laten zien omdat ie nu zeker gezet is
?>
Gewijzigd op 01/01/1970 01:00:00 door Robert dat ben ik
grouped by category:
Code (php)
1
2
2
<?
<a href="index.php?pagina=portfolio&category=<?php echo $category;?>">[code]<? echo $category ?></a> ?>
<a href="index.php?pagina=portfolio&category=<?php echo $category;?>">[code]<? echo $category ?></a> ?>
grouped by klant:
Code (php)
1
2
2
<?
<a href="index.php?pagina=portfolio&id=<?php echo $id;?>">[code]<? echo $klant ?></a> ?>
<a href="index.php?pagina=portfolio&id=<?php echo $id;?>">[code]<? echo $klant ?></a> ?>
en deze haal ik op in php bestand met deze code:
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
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
<?
$query = "
SELECT
id,
name,
label,
tekst,
category,
klant,
DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
FROM
upload
";
if(isset($_GET['id']))
{
$query .= " WHERE id = '".mysql_real_escape_string($_GET['id'])."'";
}
elseif(isset($_GET['category']))
{
$query .= " WHERE category = '".mysql_real_escape_string($_GET['category'])."'";
}
else
{
echo 'Geen id of categorie opgegeven';
}
$result = mysql_query($query) or die('Error : ' . mysql_error());
$myrow = mysql_fetch_assoc($result);
?>
<!-- ### WERK TONEN ######-->
<div >
<div>
<h3> <? echo $myrow['klant'] ?></h3>
<p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
<p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
<p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>
<? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
<p class="newstext"> <? echo ($myrow['tekst']) ?> </p>
</div>
</div> ?>
$query = "
SELECT
id,
name,
label,
tekst,
category,
klant,
DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
FROM
upload
";
if(isset($_GET['id']))
{
$query .= " WHERE id = '".mysql_real_escape_string($_GET['id'])."'";
}
elseif(isset($_GET['category']))
{
$query .= " WHERE category = '".mysql_real_escape_string($_GET['category'])."'";
}
else
{
echo 'Geen id of categorie opgegeven';
}
$result = mysql_query($query) or die('Error : ' . mysql_error());
$myrow = mysql_fetch_assoc($result);
?>
<!-- ### WERK TONEN ######-->
<div >
<div>
<h3> <? echo $myrow['klant'] ?></h3>
<p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
<p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
<p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>
<? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
<p class="newstext"> <? echo ($myrow['tekst']) ?> </p>
</div>
</div> ?>
en nou wil ik OF binnen categorien bladeren. OF binnen alle "id's". Dit op basis van gemaakte keuze in eerdere pagina (zie eerste codes).
Maar ik snap niet hoe ik dit moet bepalen in qua pagination.. die gaat uit van 1 keuze zeg maar..
Wat je precies wil laten zien kan je specificeren met je query, dus in het WHERE cat = 2 gedeelte. Zorg dus dat je de twee query's (de een waar je gaat tellen en de ander waar je gaat selecteren) uiteindelijk dezelfde WHERE-clausule hebben. Dan komt alles goed.
Volgens mij moet je nu een heel stuk verder kunnen komen...
"detail" pagina is altijd 1 record. Maar die hebben dan toch juist niet dezelfde WHERE clausule..? ivm OF category of opdrachten (id) waarbinnen gebladert wordt.?
Je where clausule blijft hetzelfde, je LIMIT veranderd alleen in dit geval.
Ik heb de vorige code omgegooid naar verschillende pagina's (houd ik enigzins nog overzicht).
maar toch blijf ik steeds met de "page" vraag in de url..
mijn code nu: voor een van de pagina's: (klanten.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
<?
if (!isset($_GET['klant'])) {
// kijken of klant is verkregen
echo "klant niet gedefineerd";
} else {
// category pakken
$query = "
SELECT
id,
name,
label,
tekst,
category,
klant,
DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
FROM
upload
WHERE
klant = '".mysql_real_escape_string($_GET['klant'])."'
ORDER BY datum DESC
";
$result = mysql_query($query) or die('Error : ' . mysql_error());
while ($myrow = mysql_fetch_assoc($result))
{
?>
<!-- ### WERK TONEN ######-->
<div style="width:500px;background-color:#0CF; float:right">
<div >
<div>
<h3> <? echo $myrow['klant'] ?></h3>
<p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
<p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
<p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>
<? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
<p class="newstext"> <? echo ($myrow['tekst']) ?> </p>
</div>
</div>
</div>
<?php
} // while afsluiten.
} // (else..) aflsuiten..
?>
if (!isset($_GET['klant'])) {
// kijken of klant is verkregen
echo "klant niet gedefineerd";
} else {
// category pakken
$query = "
SELECT
id,
name,
label,
tekst,
category,
klant,
DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
FROM
upload
WHERE
klant = '".mysql_real_escape_string($_GET['klant'])."'
ORDER BY datum DESC
";
$result = mysql_query($query) or die('Error : ' . mysql_error());
while ($myrow = mysql_fetch_assoc($result))
{
?>
<!-- ### WERK TONEN ######-->
<div style="width:500px;background-color:#0CF; float:right">
<div >
<div>
<h3> <? echo $myrow['klant'] ?></h3>
<p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
<p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
<p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>
<? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
<p class="newstext"> <? echo ($myrow['tekst']) ?> </p>
</div>
</div>
</div>
<?php
} // while afsluiten.
} // (else..) aflsuiten..
?>
En nou heb ik al diverse voorbeelden qua pagination proberen om te zetten.
maar loop vast op dit stuk:
want ik stuur al een variabele mee (if (!isset($_GET['klant']))... )
in de pagina ervoor: begrijp niet hoe ik dit moet inpassen:
zie voorbeeld op: http://blikvoer.com/temp/samtest/index.php?pagina=klanten&klant=Anwb
Gewijzigd op 01/01/1970 01:00:00 door david david
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<? if (isset($_GET['selectie'])) {
$selectie = $_GET['selectie'];
} else {
$selectie = 1;
}
$query = "SELECT
count(*)
FROM
upload
WHERE
klant = '".mysql_real_escape_string($_GET['klant'])."'
";
$result = mysql_query($query) or trigger_error("SQL", E_USER_ERROR);
$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];
$rows_per_page = 1;
$lastpage = ceil($numrows/$rows_per_page);
$selectie = (int)$selectie;
if ($selectie > $lastpage) {
$selectie = $lastpage;
}
if ($selectie < 1) {
$selectie = 1;
}
$limit = 'LIMIT ' .($selectie - 1) * $rows_per_page .',' .$rows_per_page;
$query = "
SELECT
id,
name,
label,
tekst,
category,
klant,
DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
FROM
upload
WHERE
klant = '".mysql_real_escape_string($_GET['klant'])."'
$limit
";
$result = mysql_query($query) or trigger_error("SQL", E_USER_ERROR);
while ($myrow = mysql_fetch_assoc($result))
{
?>
<!-- ### WERK TONEN ######-->
<div style="width:500px;background-color:#0CF; float:right">
<div >
<div>
<h3> <? echo $myrow['klant'] ?></h3>
<p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
<p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
<p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>
<? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
<p class="newstext"> <? echo ($myrow['tekst']) ?> </p>
</div>
</div>
</div>
<!-- ### PAGINERING: volgende/totaal/volgende ######-->
<div style="background-color:yellow">
<?
if ($selectie == 1) {
echo "<FONT color=grey size=1>VORIGE</FONT>"; //tekst als er geen vorige of eerste is
} else {
// echo " <a href='index.php?pagina=klanten&klant={$_GET['klant']}&selectie=1'> <FONT size=1>EERSTE</FONT></a> "; //eerste optie
$prevpage = $selectie-1;
echo " <a href='index.php?pagina=klanten&klant={$_GET['klant']}&selectie=$prevpage'><FONT size=1>VORIGE</FONT></a> "; //vorige optie
}
echo " <FONT size=1> || OPDRACHT <strong> $selectie </strong> / $lastpage || </FONT> ";
if ($selectie == $lastpage) {
echo "<FONT color=grey size=1>VOLGENDE</FONT>"; //tekst als er geen volgende of laatste is
} else {
$nextpage = $selectie+1;
echo " <a href='index.php?pagina=klanten&klant={$_GET['klant']}&selectie=$nextpage'><FONT size=1>VOLGENDE</FONT></a> "; //volgende optie
// echo " <a href='index.php?pagina=klanten&klant={$_GET['klant']}&selectie=$lastpage'><FONT size=1>LAATSTE</FONT></a> "; //laatste optie
}
?></br>KLANTEN
</div>
<!-- ### PAGINERING EINDE ####-->
<?php
} // (while..) aflsuiten..
?>
$selectie = $_GET['selectie'];
} else {
$selectie = 1;
}
$query = "SELECT
count(*)
FROM
upload
WHERE
klant = '".mysql_real_escape_string($_GET['klant'])."'
";
$result = mysql_query($query) or trigger_error("SQL", E_USER_ERROR);
$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];
$rows_per_page = 1;
$lastpage = ceil($numrows/$rows_per_page);
$selectie = (int)$selectie;
if ($selectie > $lastpage) {
$selectie = $lastpage;
}
if ($selectie < 1) {
$selectie = 1;
}
$limit = 'LIMIT ' .($selectie - 1) * $rows_per_page .',' .$rows_per_page;
$query = "
SELECT
id,
name,
label,
tekst,
category,
klant,
DATE_FORMAT(datum, '%d-%m-%Y') AS nl_datum
FROM
upload
WHERE
klant = '".mysql_real_escape_string($_GET['klant'])."'
$limit
";
$result = mysql_query($query) or trigger_error("SQL", E_USER_ERROR);
while ($myrow = mysql_fetch_assoc($result))
{
?>
<!-- ### WERK TONEN ######-->
<div style="width:500px;background-color:#0CF; float:right">
<div >
<div>
<h3> <? echo $myrow['klant'] ?></h3>
<p class="newsdate">Geplaatst op: <? echo $myrow['nl_datum'] ?></p>
<p class="newsdate">Middel: <? echo $myrow['category'] ?></p>
<p class="newsdate">Opdracht: <? echo $myrow['label'] ?></p>
<? echo '<img class=plaatje src="image/' . $myrow['name'] . '" />' ; ?>
<p class="newstext"> <? echo ($myrow['tekst']) ?> </p>
</div>
</div>
</div>
<!-- ### PAGINERING: volgende/totaal/volgende ######-->
<div style="background-color:yellow">
<?
if ($selectie == 1) {
echo "<FONT color=grey size=1>VORIGE</FONT>"; //tekst als er geen vorige of eerste is
} else {
// echo " <a href='index.php?pagina=klanten&klant={$_GET['klant']}&selectie=1'> <FONT size=1>EERSTE</FONT></a> "; //eerste optie
$prevpage = $selectie-1;
echo " <a href='index.php?pagina=klanten&klant={$_GET['klant']}&selectie=$prevpage'><FONT size=1>VORIGE</FONT></a> "; //vorige optie
}
echo " <FONT size=1> || OPDRACHT <strong> $selectie </strong> / $lastpage || </FONT> ";
if ($selectie == $lastpage) {
echo "<FONT color=grey size=1>VOLGENDE</FONT>"; //tekst als er geen volgende of laatste is
} else {
$nextpage = $selectie+1;
echo " <a href='index.php?pagina=klanten&klant={$_GET['klant']}&selectie=$nextpage'><FONT size=1>VOLGENDE</FONT></a> "; //volgende optie
// echo " <a href='index.php?pagina=klanten&klant={$_GET['klant']}&selectie=$lastpage'><FONT size=1>LAATSTE</FONT></a> "; //laatste optie
}
?></br>KLANTEN
</div>
<!-- ### PAGINERING EINDE ####-->
<?php
} // (while..) aflsuiten..
?>
Gewijzigd op 01/01/1970 01:00:00 door david david