Probleem met pagina nummering en query
Ik heb een probleempje met een zoekfunctie in combinatie met pagina nummering. Vanuit een formulier :
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
<form name="zoek" method="post" action="product_kies_verwerk2.php">
<table>
<tr>
<td>Zoek op Merk</td>
<td>
<select name="zoek">
<option value="%Quick%">QuickStep</option>
<option value="Balterio">Balterio</option>
<option value="egger">Egger</option>
</select>
</td>
<td>
<input type="submit" value="zoek">
</td>
</tr>
</table>
<table>
<tr>
<td>Zoek op Merk</td>
<td>
<select name="zoek">
<option value="%Quick%">QuickStep</option>
<option value="Balterio">Balterio</option>
<option value="egger">Egger</option>
</select>
</td>
<td>
<input type="submit" value="zoek">
</td>
</tr>
</table>
Wordt de verwerk pagina aangeroepen, de variabele "zoek" bevat dus het zoekwoord uit het formulier. Zodra de verwerk pagina wordt aangeroepen gaat alles goed, alleen wanner ik naar de volgende pagina wil krijg ik geen resultaten. Dit komt volgens mij doordat de variabele "zoek" vanuit het formulier leeg is.... alleen hoe ben ik dit voor? Dit is het verwerk script:
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Product show</title>
<link rel="stylesheet" type="text/css" href="../../scripts/show_style.css">
</head>
<p></p>
<div align="left">
<img src="../../images/header_zoekresultaten.gif" width="250" height="29">
</div>
<p>Hier onder treft U de producten aan die aan uw zoek opdracht voldoen. Om meer informatie over een product te krijgen zoals afmeting, verpakkings eenheid, interieur foto's of om een offerte op te stellen klik dan op <em>Details bekijken</em>. Wanneer U direct een bestelling wil plaatsen klik dan op <em>Bestel direct</em>. </p>
<?php
echo("Zoe;<br /> Aantal resultaten: $count");
?>
<?php echo $_POST['zoek']; ?>
<hr>
<br>
<table border="0" align="center">
<?php
error_reporting(E_ALL);
include('connect.php');
$mysql['search'] = $_POST["zoek"];
// Variables
if(is_numeric($_GET['max'])) $max = $_GET['max'];
if(is_numeric($_GET['start'])) $start = $_GET['start'];
if (empty($max)) $max = 15; // $max is the maximum number of results per page
if (empty($start)) $start = 0; // This is the number to start the query at the right location [DO NOT EDIT]
// Calculate some stuff
$end = $start + $max; // This is for the query, gives the number for the LIMIT
$prev = $start - $max; // This number is for $start in the Previous-hyperlink
$next = $end; // This number is for $start in the Next-hyperlink
// Select everything from the table
$result = "SELECT * FROM producten WHERE merk LIKE '".$mysql['search']."' ORDER BY id DESC LIMIT $start, $max" or die ('FOUT' .mysql_error());
// Number of rows from $query
$num = mysql_num_rows($result);
if (empty($num))
{
echo "<p>There are no results.</p>";
}
else
{
while (list($id, $soort, $merk, $serie, $kleurcode, $kleur, $lengte, $breedte, $hoogte, $verpakking, $prijs, $afbeelding, $sfeer) = mysql_fetch_row($result))
{
// Show the results
echo ("
<tr>
<td><b>$kleur</b></td>
<td rowspan=\"8\" height=\"166\"><img src=\"../../images/parket/$afbeelding.jpg\"></td>
<td></td>
</tr>
<tr>
<td>$merk $serie</td></tr>
<tr>
<tr>
<td>$kleurcode</td>
<td> </td>
</tr>
<tr>
<td>$prijs euro per m2</td>
<td><a href=\"../details.php?id=$id\">Details bekijken</a></td>
</tr>
<tr>
<td> </td>
<td><a href=\"#\" onClick=\"window.open('../../images/sfeer/$afbeelding.jpg', 'Sfeer_impressie', 'width=400,height=500,scrollbars=no,toolbar=no,location=no,status=no,resizable=no'); return false\">Sfeer impressie</a></td>
</tr>
<tr>
<td> </td>
<td><a href=\"../offerte.php?id=$id\">Offerte opstellen</a></td>
</tr>
<tr>
<td valign=top> </td>
<td valign=top><a href=\"../bestel.php?id=$id\">Bestel direct</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
");}
// Check if $prev is higher than or equal to 0, if so add the Previous-hyperlink
if ($prev >= '0')
{
echo "[<a href=\"product_kies_verwerk2.php?start=$prev&max=$max\">Vorige</a>]\n";
} else {
echo "[Vorige]\n";
}
// Count how many rows there are in the table
$count = mysql_fetch_row(mysql_query("SELECT count(*) FROM producten WHERE merk LIKE '".$mysql['search']."' "));
// Calculate on which page we are
$thispage = ceil($start/$max+1);
// If $count[0] is higher than $max, show the pagenumbers
if ($count[0] > $max)
{
// Calculate the amount of pages
$total = ceil($count[0]/$max);
for($i=0;$i<$total;$i++)
{
// The number to show has to be $1+1 (because $i starts with 0)
$number = $i+1;
// $start has to be $i * $max
$start = $i*$max;
// If thispage is equal to the number, the link has to be bold
if ($thispage == $number)
{
echo "<strong>[<a href=\"product_kies_verwerk2.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>]</strong>\n";
} else {
echo "<a href=\"product_kies_verwerk2.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>\n";
}
}
}
// If $count[0] is higher than $next, show the hyperlink
if ($count[0] > $next)
{
echo "[<a href=\"product_kies_verwerk2.php?start=$next&max=$max\">Volgende</a>]\n";
} else {
echo "[Volgende]\n";
}
echo "</p>\n";
}
?>
</table>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Product show</title>
<link rel="stylesheet" type="text/css" href="../../scripts/show_style.css">
</head>
<p></p>
<div align="left">
<img src="../../images/header_zoekresultaten.gif" width="250" height="29">
</div>
<p>Hier onder treft U de producten aan die aan uw zoek opdracht voldoen. Om meer informatie over een product te krijgen zoals afmeting, verpakkings eenheid, interieur foto's of om een offerte op te stellen klik dan op <em>Details bekijken</em>. Wanneer U direct een bestelling wil plaatsen klik dan op <em>Bestel direct</em>. </p>
<?php
echo("Zoe;<br /> Aantal resultaten: $count");
?>
<?php echo $_POST['zoek']; ?>
<hr>
<br>
<table border="0" align="center">
<?php
error_reporting(E_ALL);
include('connect.php');
$mysql['search'] = $_POST["zoek"];
// Variables
if(is_numeric($_GET['max'])) $max = $_GET['max'];
if(is_numeric($_GET['start'])) $start = $_GET['start'];
if (empty($max)) $max = 15; // $max is the maximum number of results per page
if (empty($start)) $start = 0; // This is the number to start the query at the right location [DO NOT EDIT]
// Calculate some stuff
$end = $start + $max; // This is for the query, gives the number for the LIMIT
$prev = $start - $max; // This number is for $start in the Previous-hyperlink
$next = $end; // This number is for $start in the Next-hyperlink
// Select everything from the table
$result = "SELECT * FROM producten WHERE merk LIKE '".$mysql['search']."' ORDER BY id DESC LIMIT $start, $max" or die ('FOUT' .mysql_error());
// Number of rows from $query
$num = mysql_num_rows($result);
if (empty($num))
{
echo "<p>There are no results.</p>";
}
else
{
while (list($id, $soort, $merk, $serie, $kleurcode, $kleur, $lengte, $breedte, $hoogte, $verpakking, $prijs, $afbeelding, $sfeer) = mysql_fetch_row($result))
{
// Show the results
echo ("
<tr>
<td><b>$kleur</b></td>
<td rowspan=\"8\" height=\"166\"><img src=\"../../images/parket/$afbeelding.jpg\"></td>
<td></td>
</tr>
<tr>
<td>$merk $serie</td></tr>
<tr>
<tr>
<td>$kleurcode</td>
<td> </td>
</tr>
<tr>
<td>$prijs euro per m2</td>
<td><a href=\"../details.php?id=$id\">Details bekijken</a></td>
</tr>
<tr>
<td> </td>
<td><a href=\"#\" onClick=\"window.open('../../images/sfeer/$afbeelding.jpg', 'Sfeer_impressie', 'width=400,height=500,scrollbars=no,toolbar=no,location=no,status=no,resizable=no'); return false\">Sfeer impressie</a></td>
</tr>
<tr>
<td> </td>
<td><a href=\"../offerte.php?id=$id\">Offerte opstellen</a></td>
</tr>
<tr>
<td valign=top> </td>
<td valign=top><a href=\"../bestel.php?id=$id\">Bestel direct</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
");}
// Check if $prev is higher than or equal to 0, if so add the Previous-hyperlink
if ($prev >= '0')
{
echo "[<a href=\"product_kies_verwerk2.php?start=$prev&max=$max\">Vorige</a>]\n";
} else {
echo "[Vorige]\n";
}
// Count how many rows there are in the table
$count = mysql_fetch_row(mysql_query("SELECT count(*) FROM producten WHERE merk LIKE '".$mysql['search']."' "));
// Calculate on which page we are
$thispage = ceil($start/$max+1);
// If $count[0] is higher than $max, show the pagenumbers
if ($count[0] > $max)
{
// Calculate the amount of pages
$total = ceil($count[0]/$max);
for($i=0;$i<$total;$i++)
{
// The number to show has to be $1+1 (because $i starts with 0)
$number = $i+1;
// $start has to be $i * $max
$start = $i*$max;
// If thispage is equal to the number, the link has to be bold
if ($thispage == $number)
{
echo "<strong>[<a href=\"product_kies_verwerk2.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>]</strong>\n";
} else {
echo "<a href=\"product_kies_verwerk2.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>\n";
}
}
}
// If $count[0] is higher than $next, show the hyperlink
if ($count[0] > $next)
{
echo "[<a href=\"product_kies_verwerk2.php?start=$next&max=$max\">Volgende</a>]\n";
} else {
echo "[Volgende]\n";
}
echo "</p>\n";
}
?>
</table>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Basz
Tip: Variabelen buiten de quotes
@basz , zet even om je code
Quote:
Zodra de verwerk pagina wordt aangeroepen gaat alles goed, alleen wanner ik naar de volgende pagina wil krijg ik geen resultaten. Dit komt volgens mij doordat de variabele "zoek" vanuit het formulier leeg is.... alleen hoe ben ik dit voor?
hij krijgt dus geen foutmeldingen maar geen results doordat zn zoekopdracht verloren raakt
Mijn excuses dan. Dacht dat dat stukje tekst bij de code hoorde en dat stukje tekst dus niet gelezen.
maar probleem is dus dat de geposte variabele vanuit het formulier verdwijnt wanneer ik de volgende pagina met resultaten wil zien.... verder geen foutmeldingen
okay het lijkt nu ff wat duidelijker door de Gewijzigd op 01/01/1970 01:00:00 door Basz
Geef de zoekopdrachten door via GET naar de volgende pagina. Daar vraagje ze weer op. Dat kun je ook doen in je zoek-formulier
aha ik ben daar al even mee aan het klooien geweest, maar dit lukte niet helemaal doordat de volgende pagina's laden ook al via get gaat...
maar ik ging ervan uit dat er wel iets simpelers was om de variabele gewoon te laten onthouden!
ben ik vanop de hoogte dit gebeurd nu ook al