query traag
Toevoeging op 07/12/2011 12:07:30:
Ik gebruik de query op een listingpagina waar alle resultaten worden weergegeven met 10 resultaten per pagina. Het zijn dan ook 833 pagina's.
Ik neem aan dat je niet elke keer alle resultaten ophaalt maar LIMIT gebruikt?
Zie onderstaand het volledige 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
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
<?php
$sql = "SELECT u.name, u.country, p.productID, p.categoryID, p.subcategoryID, p.productNAME, p.productPRICE, p.createDATUM, p.createTIJD, p.businessprotection, p.VAT, p. VATclass, p.currency, p.totalMinimum, p.pricePer, p.pricePerOne, p.moreInStock, p.remarks, p.what, p.fotoProduct1, p.unitSet
FROM useraccount AS u JOIN product AS p
ON u.PIDID = p.PIDID
";
$query = mysql_query($sql,$db);
$total_results = mysql_num_rows($query); //mysql_num_rows($result) = Geef het aantal rijen in een resultaat
//limit verhogen
if(isset($_POST['limit']))
{
$limit = $_POST['limit'];
$limit = strip_tags($limit); // Tags en code verwijderen
$limit = trim($limit); // Witruimte verwijderen
}
else
{
$limit = '10';
}
$limit = "$limit";
//EINDE limit verhogen
//Aantal Soteren
if(isset($_POST['quantitysort']))
{
$quantitysort = $_POST['quantitysort'];
}
else
{
$quantitysort= 'totalMinimum+0';
}
$quantitysort = "$quantitysort";
//EINDE prijs van hoog naar laag selecteren via de dropdown en via de guery
//PIJS Soteren
if(isset($_POST['pricesort']))
{
$pricesort = $_POST['pricesort'];
}
else
{
$pricesort = 'productPRICE+00';
}
$pricesort = "$pricesort";
//EINDE prijs sorteren
//SORTEER keuze
if(isset($_POST['sort']))
{
$sort = $_POST['sort'];
}
else
{
$sort = 'createDATUM DESC, createTIJD DESC';
}
$sort = "$sort";
//EINDE SORTEER keuze
$total_pages = ceil($total_results / $limit); //total number of pages
$page=$_REQUEST['page'];
if (empty($page)){
$page = "1"; //default page if none <strong class="highlight">is</strong> selected
}
$offset = ($page - 1) * $limit; //starting number for displaying results out of DB
$query = "SELECT u.name, u.country, p.productID, p.categoryID, p.subcategoryID, p.productNAME, p.productPRICE, p.createDATUM, p.createTIJD, p.businessprotection, p.VAT, p. VATclass, p.currency, p.totalMinimum, p.pricePer, p.pricePerOne, p.moreInStock, p.remarks, p.what, p.fotoProduct1, p.unitSet
FROM useraccount AS u JOIN product AS p
ON u.PIDID = p.PIDID
ORDER BY $sort LIMIT $offset, $limit
";
$result = mysql_query($query);
?>
$sql = "SELECT u.name, u.country, p.productID, p.categoryID, p.subcategoryID, p.productNAME, p.productPRICE, p.createDATUM, p.createTIJD, p.businessprotection, p.VAT, p. VATclass, p.currency, p.totalMinimum, p.pricePer, p.pricePerOne, p.moreInStock, p.remarks, p.what, p.fotoProduct1, p.unitSet
FROM useraccount AS u JOIN product AS p
ON u.PIDID = p.PIDID
";
$query = mysql_query($sql,$db);
$total_results = mysql_num_rows($query); //mysql_num_rows($result) = Geef het aantal rijen in een resultaat
//limit verhogen
if(isset($_POST['limit']))
{
$limit = $_POST['limit'];
$limit = strip_tags($limit); // Tags en code verwijderen
$limit = trim($limit); // Witruimte verwijderen
}
else
{
$limit = '10';
}
$limit = "$limit";
//EINDE limit verhogen
//Aantal Soteren
if(isset($_POST['quantitysort']))
{
$quantitysort = $_POST['quantitysort'];
}
else
{
$quantitysort= 'totalMinimum+0';
}
$quantitysort = "$quantitysort";
//EINDE prijs van hoog naar laag selecteren via de dropdown en via de guery
//PIJS Soteren
if(isset($_POST['pricesort']))
{
$pricesort = $_POST['pricesort'];
}
else
{
$pricesort = 'productPRICE+00';
}
$pricesort = "$pricesort";
//EINDE prijs sorteren
//SORTEER keuze
if(isset($_POST['sort']))
{
$sort = $_POST['sort'];
}
else
{
$sort = 'createDATUM DESC, createTIJD DESC';
}
$sort = "$sort";
//EINDE SORTEER keuze
$total_pages = ceil($total_results / $limit); //total number of pages
$page=$_REQUEST['page'];
if (empty($page)){
$page = "1"; //default page if none <strong class="highlight">is</strong> selected
}
$offset = ($page - 1) * $limit; //starting number for displaying results out of DB
$query = "SELECT u.name, u.country, p.productID, p.categoryID, p.subcategoryID, p.productNAME, p.productPRICE, p.createDATUM, p.createTIJD, p.businessprotection, p.VAT, p. VATclass, p.currency, p.totalMinimum, p.pricePer, p.pricePerOne, p.moreInStock, p.remarks, p.what, p.fotoProduct1, p.unitSet
FROM useraccount AS u JOIN product AS p
ON u.PIDID = p.PIDID
ORDER BY $sort LIMIT $offset, $limit
";
$result = mysql_query($query);
?>
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
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
<?php
// BEGIN boven Previous/Next Navigation
echo "<div class='indexering' align='center'>";
echo "Pages:($total_pages) "; // total pages
if ($page != 1)
{
echo "<a href=$PHP_SELF?page=1><< First</a> "; // First Page Link
$prevpage = $page - 1;
echo " <a href=$PHP_SELF?page=$prevpage><<</a> "; // Previous Page Link
}
if ($page == $total_pages)
{
$to = $total_pages;
}
elseif ($page == $total_pages-1)
{
$to = $page+1;
}
elseif ($page == $total_pages-2)
{
$to = $page+2;
}
else
{
$to = $page+3;
}
if ($page == 1 || $page == 2 || $page == 3)
{
$from = 1;
}
else
{
$from = $page-3;
}
for ($i = $from; $i <= $to; $i++)
{
if ($i == $total_results) $to=$total_results;
if ($i != $page)
{
echo "<a href=$PHP_SELF?showold=yes&page=$i>$i</a>";
}
else
{
echo "<b><font face=Verdana size=3>[$i]</font></b>"; // eventueel deze gebruiken>><span class='indexering_actief'></span>
}
if ($i != $total_pages)
echo " ";
}
if ($page != $total_pages)
{
$nextpage = $page + 1;
echo " <a href=$PHP_SELF?page=$nextpage>>></a> "; // Next Page Link
echo " <a href=$PHP_SELF?page=$total_pages>Last >></a>"; // Last Page Link
}
echo "</div>";
// EINDE boven Previous/Next Navigation
?>
// BEGIN boven Previous/Next Navigation
echo "<div class='indexering' align='center'>";
echo "Pages:($total_pages) "; // total pages
if ($page != 1)
{
echo "<a href=$PHP_SELF?page=1><< First</a> "; // First Page Link
$prevpage = $page - 1;
echo " <a href=$PHP_SELF?page=$prevpage><<</a> "; // Previous Page Link
}
if ($page == $total_pages)
{
$to = $total_pages;
}
elseif ($page == $total_pages-1)
{
$to = $page+1;
}
elseif ($page == $total_pages-2)
{
$to = $page+2;
}
else
{
$to = $page+3;
}
if ($page == 1 || $page == 2 || $page == 3)
{
$from = 1;
}
else
{
$from = $page-3;
}
for ($i = $from; $i <= $to; $i++)
{
if ($i == $total_results) $to=$total_results;
if ($i != $page)
{
echo "<a href=$PHP_SELF?showold=yes&page=$i>$i</a>";
}
else
{
echo "<b><font face=Verdana size=3>[$i]</font></b>"; // eventueel deze gebruiken>><span class='indexering_actief'></span>
}
if ($i != $total_pages)
echo " ";
}
if ($page != $total_pages)
{
$nextpage = $page + 1;
echo " <a href=$PHP_SELF?page=$nextpage>>></a> "; // Next Page Link
echo " <a href=$PHP_SELF?page=$total_pages>Last >></a>"; // Last Page Link
}
echo "</div>";
// EINDE boven Previous/Next Navigation
?>
<!-- BEGIN bovenkant listing -->
<div class="clear"></div>
<table id="listing" border="0" cellpadding="0" cellspacing="0" width="100%" >
<tbody>
<tr style="background:url(images/bg_listing_th_up.gif) repeat-x;">
<th colspan="2" align="left"> <span style="float:left;padding:0px;font-weight:normal;"></span>
<form action="".htmlentities($_SERVER["PHP_SELF"])."" method="post">
<select id="sort" name="sort" onchange="submit()" style="width:120px;">
<option value="createDATUM DESC, createTIJD DESC">Sorteren op...</option>
<option value="totalMinimum+0 DESC, createDATUM DESC, createTIJD DESC">Aantal</option>
<option value="productPRICE+00 DESC, createDATUM DESC, createTIJD DESC">Prijs</option>
<option value="country, createDATUM DESC, createTIJD DESC">Land</option>
<option value="createDATUM DESC, createTIJD DESC">Datum</option>
</select>
</form>
<script type="text/javascript">
//<![CDATA[
new DropDown($("sort"));
Event.observe(document, "speurders:loaded", function () {
// deze 2 zijn nodig
});
//]]>
</script>
<form action="".htmlentities($_SERVER["PHP_SELF"])."" method="post">
<select id="resultaten" name="limit" value="10" onchange="submit()" >
<option selected="selected" value="10">Resultaten p/pagina...</option>
<option value="30">30</option>
<option value="50">50</option>
<option value="75">75</option>
<option value="100">100</option>
</select>
</form>
<script type="text/javascript">
//<![CDATA[
new DropDown($('resultaten'));
Event.observe(document, 'speurders:loaded', function () {
// deze 2 zijn nodig
});
//]]>
</script> </th>
<th align="left" valign="top" style="width:70px;">Aantal:</th>
<th align="left" valign="top">Prijs:</th>
<th align="left" valign="top">Land</th>
<th align="center" valign="top">Datum</th>
</tr>
<tr>
<th colspan="6" style="background:url(images/listing_seperator.gif) repeat-x 0px bottom;"></th>
</tr>
<!-- EINDE bovenkant listing -->
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
<?php
//content begint hier!!!!
while ($row = mysql_fetch_array($result)){
echo " <tr style='background:#f3f3f3;'>";
echo " <td align='middle' valign='top'>";
//foto's ophalen van de oude website
if ($row['fotoProduct1'] > '' )
{
echo" <a href='http:///advertentiefotos/thumb_". $row ['fotoProduct1'].".jpg'>
<img src='http:///advertentiefotos/thumb_". $row ['fotoProduct1'].".jpg'
alt='".$row ['productNAME']."' /> ";
}
else
{
//nogtedoen foto's ophalen van nieuwe website. uit de: imagecache, foto's worden verkleind door de file: image.php
echo " <a href='http:///advertentiefotos/thumb_". $row ['fotoProduct1'].".jpg'>
<img src='/image.php/SANY0004.jpg?width=100&height=100&image=/imagecache/SANY0004.jpg'
alt='".$row ['productNAME']."' />";
}
echo"</td>";
//nogtedoen : Aangeboden/gezocht, Titel, van en overige opmerkingen. De url moet nog worden aangepast van de Titel
echo "<td align='left' valign='top'>";
if ($row['what'] > 'looking' )
{
echo "[Aangeboden]";
}
else
{
echo"<strong>[GEZOCHT]</strong>";
}
echo "
<a href='http://www./new/index.php/website/product/7909/Universal-backlight---for-any-flatscreen.html'>
<strong>" . $row['productNAME'] . "</strong></a><br>
Van: " . $row['name'] . "<br>
";
// Overige opmerkingen weergeven
echo "<div>";
if($row['remarks'] == '')
{
echo "";
}
else
{
// Aantal woorden letters weergeven.
$maxwords = 90;
$message = $row['remarks'];
$tekst = substr($message, 0, $maxwords); //geeft gedeelte van string
// Tekst filteren.
$tekst = strip_tags($tekst); // html en php verwijderen
$tekst = ltrim($tekst); // Verwijdert whitespace van het begin van een string
$tekst = rtrim ($tekst); // Verwijdert whitespace van het eind van een string
$tekst = trim($tekst);// Verwijdert whitespace van het begin en eind van een string
$tekst = str_replace("\t",'',$tekst); // tabs verwijderen
$tekst = strtolower($tekst); //Maak een string volledig in kleine letters
echo "<div>$tekst ...</div>";
}
echo "</div>";
echo "</td>";
echo "<td align='left' valign='top'>" . $row['totalMinimum'] . "</td>";
echo "<td align='left' valign='top'>";
echo "<div>";
//alle IF & ELse opdrachten voor advertenties waarbij is gekozen voor "Prijs per stuks, cm, kg etc"
if($row['pricePer'] == 'perpair')
{
//prijsweergave JA of NEE
if($row['businessprotection'] == 'yes')
{
echo "Branchebescherming";
}
else
{ //Einde prijsweergave JA of NEE
if($row['productPRICE'] < 0)
{
return '<strong>Prijs: </strong>Nader overeen te komen ';
}
else
{
if($row['currency'] == 'euro')
{
echo "<strong>Prijs: </strong>€ " . $row['productPRICE'] . " ";
}
elseif ($row['unitSet'] == 'dollar')
{
echo "<strong>Prijs: </strong>$ " . $row['productPRICE'] . " ";
}
else
{
echo "<strong>Prijs: </strong>" . $row['productPRICE'] . " ";
}
}
if($row['pricePerOne'] < 0)
{
return '';
}
else
{
if($row['currency'] == 'euro')
{
echo "<br>(€ " . $row['pricePerOne'] . " ";
}
elseif ($row['unitSet'] == 'dollar')
{
echo "<br>($ " . $row['pricePerOne'] . " ";
}
else
{
echo "<br>" . $row['pricePerOne'] . " ";
}
}
if($row['unitSet'] == 'Stuks')
{
echo "per stuk)";
}
elseif ($row['unitSet'] == 'Kg')
{
echo "per kilo)";
}
elseif ($row['unitSet'] == 'Liter')
{
echo "per liter)";
}
elseif ($row['unitSet'] == 'm2')
{
echo "per m2)";
}
elseif ($row['unitSet'] == 'Meter')
{
echo "per meter)";
}
elseif ($row['unitSet'] == 'Paar')
{
echo "per paar)";
}
elseif ($row['unitSet'] == '')
{
echo "per stuk)";
}
if($row['moreInStock'] == 'yes')
{
echo "<br>Meer op voorraad";
}
} //eind accolade van branchebescherming
}
echo "</div>";
//EINDE Prijsweergave: Prijs per stuk, kg, m2 ect...
//alle IF & ELse opdrachten voor advertenties waarbij is gekozen voor "Prijs per partij"
echo "<div>";
if ($row['pricePer'] == 'prijsPerPartij')
{
//prijsweergave JA of NEE
if($row['businessprotection'] == 'yes')
{
echo "Branchebescherming";
}
else
{ //einde prijsweergave JA of NEE
if($row['productPRICE'] < 0)
{
return '<strong>Prijs: </strong>Nader overeen te komen ';
}
else
{
if($row['currency'] == 'euro')
{
echo "<strong>Prijs: </strong>€ " . $row['productPRICE'] . " ";
}
elseif ($row['unitSet'] == 'dollar')
{
echo "<strong>Prijs: </strong>$ " . $row['productPRICE'] . " ";
}
else
{
echo "<strong>Prijs: </strong>" . $row['productPRICE'] . " ";
}
}
}
}
echo "</div>";
//EINDE Prijsweergave: Prijs per partij
//alle IF & ELse opdrachten voor advertenties waarbij is gekozen voor "Bieden"
echo "<div>";
if ($row['pricePer'] == 'offer')
{
echo "offer";
}
echo "</div>";
//EINDE Prijsweergave: Prijs Bieden
//alle IF & ELse opdrachten voor advertenties waarbij is gekozen voor "Verschillende producten in een koop"
echo "<div>";
if ($row['pricePer'] == 'offerAll')
{
echo "offerAll ";
}
echo "</div>";
//EINDE Prijsweergave: Verschillende producten in een koop
echo "</td>";
echo "<td align='center' valign='top'>Nederland</td>";
echo "<td align='left' valign='top'>" . $row['createDATUM'] . " </td>";
}
{
// Database afsluiten
}
mysql_close();
?>
//content begint hier!!!!
while ($row = mysql_fetch_array($result)){
echo " <tr style='background:#f3f3f3;'>";
echo " <td align='middle' valign='top'>";
//foto's ophalen van de oude website
if ($row['fotoProduct1'] > '' )
{
echo" <a href='http:///advertentiefotos/thumb_". $row ['fotoProduct1'].".jpg'>
<img src='http:///advertentiefotos/thumb_". $row ['fotoProduct1'].".jpg'
alt='".$row ['productNAME']."' /> ";
}
else
{
//nogtedoen foto's ophalen van nieuwe website. uit de: imagecache, foto's worden verkleind door de file: image.php
echo " <a href='http:///advertentiefotos/thumb_". $row ['fotoProduct1'].".jpg'>
<img src='/image.php/SANY0004.jpg?width=100&height=100&image=/imagecache/SANY0004.jpg'
alt='".$row ['productNAME']."' />";
}
echo"</td>";
//nogtedoen : Aangeboden/gezocht, Titel, van en overige opmerkingen. De url moet nog worden aangepast van de Titel
echo "<td align='left' valign='top'>";
if ($row['what'] > 'looking' )
{
echo "[Aangeboden]";
}
else
{
echo"<strong>[GEZOCHT]</strong>";
}
echo "
<a href='http://www./new/index.php/website/product/7909/Universal-backlight---for-any-flatscreen.html'>
<strong>" . $row['productNAME'] . "</strong></a><br>
Van: " . $row['name'] . "<br>
";
// Overige opmerkingen weergeven
echo "<div>";
if($row['remarks'] == '')
{
echo "";
}
else
{
// Aantal woorden letters weergeven.
$maxwords = 90;
$message = $row['remarks'];
$tekst = substr($message, 0, $maxwords); //geeft gedeelte van string
// Tekst filteren.
$tekst = strip_tags($tekst); // html en php verwijderen
$tekst = ltrim($tekst); // Verwijdert whitespace van het begin van een string
$tekst = rtrim ($tekst); // Verwijdert whitespace van het eind van een string
$tekst = trim($tekst);// Verwijdert whitespace van het begin en eind van een string
$tekst = str_replace("\t",'',$tekst); // tabs verwijderen
$tekst = strtolower($tekst); //Maak een string volledig in kleine letters
echo "<div>$tekst ...</div>";
}
echo "</div>";
echo "</td>";
echo "<td align='left' valign='top'>" . $row['totalMinimum'] . "</td>";
echo "<td align='left' valign='top'>";
echo "<div>";
//alle IF & ELse opdrachten voor advertenties waarbij is gekozen voor "Prijs per stuks, cm, kg etc"
if($row['pricePer'] == 'perpair')
{
//prijsweergave JA of NEE
if($row['businessprotection'] == 'yes')
{
echo "Branchebescherming";
}
else
{ //Einde prijsweergave JA of NEE
if($row['productPRICE'] < 0)
{
return '<strong>Prijs: </strong>Nader overeen te komen ';
}
else
{
if($row['currency'] == 'euro')
{
echo "<strong>Prijs: </strong>€ " . $row['productPRICE'] . " ";
}
elseif ($row['unitSet'] == 'dollar')
{
echo "<strong>Prijs: </strong>$ " . $row['productPRICE'] . " ";
}
else
{
echo "<strong>Prijs: </strong>" . $row['productPRICE'] . " ";
}
}
if($row['pricePerOne'] < 0)
{
return '';
}
else
{
if($row['currency'] == 'euro')
{
echo "<br>(€ " . $row['pricePerOne'] . " ";
}
elseif ($row['unitSet'] == 'dollar')
{
echo "<br>($ " . $row['pricePerOne'] . " ";
}
else
{
echo "<br>" . $row['pricePerOne'] . " ";
}
}
if($row['unitSet'] == 'Stuks')
{
echo "per stuk)";
}
elseif ($row['unitSet'] == 'Kg')
{
echo "per kilo)";
}
elseif ($row['unitSet'] == 'Liter')
{
echo "per liter)";
}
elseif ($row['unitSet'] == 'm2')
{
echo "per m2)";
}
elseif ($row['unitSet'] == 'Meter')
{
echo "per meter)";
}
elseif ($row['unitSet'] == 'Paar')
{
echo "per paar)";
}
elseif ($row['unitSet'] == '')
{
echo "per stuk)";
}
if($row['moreInStock'] == 'yes')
{
echo "<br>Meer op voorraad";
}
} //eind accolade van branchebescherming
}
echo "</div>";
//EINDE Prijsweergave: Prijs per stuk, kg, m2 ect...
//alle IF & ELse opdrachten voor advertenties waarbij is gekozen voor "Prijs per partij"
echo "<div>";
if ($row['pricePer'] == 'prijsPerPartij')
{
//prijsweergave JA of NEE
if($row['businessprotection'] == 'yes')
{
echo "Branchebescherming";
}
else
{ //einde prijsweergave JA of NEE
if($row['productPRICE'] < 0)
{
return '<strong>Prijs: </strong>Nader overeen te komen ';
}
else
{
if($row['currency'] == 'euro')
{
echo "<strong>Prijs: </strong>€ " . $row['productPRICE'] . " ";
}
elseif ($row['unitSet'] == 'dollar')
{
echo "<strong>Prijs: </strong>$ " . $row['productPRICE'] . " ";
}
else
{
echo "<strong>Prijs: </strong>" . $row['productPRICE'] . " ";
}
}
}
}
echo "</div>";
//EINDE Prijsweergave: Prijs per partij
//alle IF & ELse opdrachten voor advertenties waarbij is gekozen voor "Bieden"
echo "<div>";
if ($row['pricePer'] == 'offer')
{
echo "offer";
}
echo "</div>";
//EINDE Prijsweergave: Prijs Bieden
//alle IF & ELse opdrachten voor advertenties waarbij is gekozen voor "Verschillende producten in een koop"
echo "<div>";
if ($row['pricePer'] == 'offerAll')
{
echo "offerAll ";
}
echo "</div>";
//EINDE Prijsweergave: Verschillende producten in een koop
echo "</td>";
echo "<td align='center' valign='top'>Nederland</td>";
echo "<td align='left' valign='top'>" . $row['createDATUM'] . " </td>";
}
{
// Database afsluiten
}
mysql_close();
?>
<!-- BEGING onderbalk -->
<tr>
<th colspan="6" style="background:url(images/listing_seperator_down.gif) repeat-x 0px top;"></th>
</tr>
<tr style="background:url(images/bg_listing_th_up.gif) repeat-x;">
<th colspan="6" align="left"> <span style="float:left;padding:3px;font-weight:normal;"> Resultaten per pagina </span>
<form action="".htmlentities($_SERVER["PHP_SELF"])."" method="post" >
<select id="resultatenbottom" name="limit" onchange="submit()"">
<option value="10">10</option>
<option value="30">30</option>
<option value="50">50</option>
<option value="75">75</option>
<option value="100">100</option>
</select>
</form>
<script type="text/javascript">
//<![CDATA[
new DropDown($('resultatenbottom'));
Event.observe(document, 'speurders:loaded', function () {
// deze 2 zijn nodig
});
//]]>
</script>
</th>
</tr>
<!-- einde onderbalk -->
</tr>
</tbody>
</table>
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
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
<?php
// BEGIN onder Previous/Next Navigation
echo "<div class='indexering' align='center'>";
echo "Pages:($total_pages) "; // total pages
if ($page != 1)
{
echo "<a href=$PHP_SELF?page=1><< First</a> "; // First Page Link
$prevpage = $page - 1;
echo " <a href=$PHP_SELF?page=$prevpage><<</a> "; // Previous Page Link
}
if ($page == $total_pages)
{
$to = $total_pages;
}
elseif ($page == $total_pages-1)
{
$to = $page+1;
}
elseif ($page == $total_pages-2)
{
$to = $page+2;
}
else
{
$to = $page+3;
}
if ($page == 1 || $page == 2 || $page == 3)
{
$from = 1;
}
else
{
$from = $page-3;
}
for ($i = $from; $i <= $to; $i++)
{
if ($i == $total_results) $to=$total_results;
if ($i != $page)
{
echo "<a href=$PHP_SELF?showold=yes&page=$i>$i</a>";
}
else
{
echo "<b><font face=Verdana size=3>[$i]</font></b>"; // eventueel deze gebruiken>><span class='indexering_actief'></span>
}
if ($i != $total_pages)
echo " ";
}
if ($page != $total_pages)
{
$nextpage = $page + 1;
echo " <a href=$PHP_SELF?page=$nextpage>>></a> "; // Next Page Link
echo " <a href=$PHP_SELF?page=$total_pages>Last >></a>"; // Last Page Link
}
echo "</div>";
// EINDE Previous/Next Navigation
?>
// BEGIN onder Previous/Next Navigation
echo "<div class='indexering' align='center'>";
echo "Pages:($total_pages) "; // total pages
if ($page != 1)
{
echo "<a href=$PHP_SELF?page=1><< First</a> "; // First Page Link
$prevpage = $page - 1;
echo " <a href=$PHP_SELF?page=$prevpage><<</a> "; // Previous Page Link
}
if ($page == $total_pages)
{
$to = $total_pages;
}
elseif ($page == $total_pages-1)
{
$to = $page+1;
}
elseif ($page == $total_pages-2)
{
$to = $page+2;
}
else
{
$to = $page+3;
}
if ($page == 1 || $page == 2 || $page == 3)
{
$from = 1;
}
else
{
$from = $page-3;
}
for ($i = $from; $i <= $to; $i++)
{
if ($i == $total_results) $to=$total_results;
if ($i != $page)
{
echo "<a href=$PHP_SELF?showold=yes&page=$i>$i</a>";
}
else
{
echo "<b><font face=Verdana size=3>[$i]</font></b>"; // eventueel deze gebruiken>><span class='indexering_actief'></span>
}
if ($i != $total_pages)
echo " ";
}
if ($page != $total_pages)
{
$nextpage = $page + 1;
echo " <a href=$PHP_SELF?page=$nextpage>>></a> "; // Next Page Link
echo " <a href=$PHP_SELF?page=$total_pages>Last >></a>"; // Last Page Link
}
echo "</div>";
// EINDE Previous/Next Navigation
?>
<!-- END listing -->
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
//e-alert
echo "<div class='ealert'><img src='images/e-alert.gif' width='20' border='0' alt='E-alert' /> <strong>Niet gevonden wat u zocht?</strong> <a href='#'>Plaats dan een E-alert »</a></div>";
?>
//e-alert
echo "<div class='ealert'><img src='images/e-alert.gif' width='20' border='0' alt='E-alert' /> <strong>Niet gevonden wat u zocht?</strong> <a href='#'>Plaats dan een E-alert »</a></div>";
?>
<br clear="all" />
</div>
<!-- einde content -->
<div id="footer">
<div class="pagina_kolom" align="center">
<a href="http://www./new/index.php/website/index.html" title="Start">Start</a>
<a href="http://www./new/index.php/website/help/index.html" title="Help">Help</a>
<a href="http://www./new/index.php/website/contact/index.html" title="Contact">Contact</a>
<a href="http://www./new/index.php/website/ons/index.html" title="Over ons">Over ons</a>
<a href="http://www./new/index.php/website/voorwaarden/index.html" title="Voorwaarden">Voorwaarden</a>
<p>Copyright © </p><br />
</div>
</div>
</body>
</html>
2 plaats alleen relevante code
3 haal je variabelen buiten quotes dus
4 $quantitysort = "$quantitysort"; is totaal onzin. Net zoiets als rood = rood
5 ga timen zodat je weet wat er traag is
Gewijzigd op 07/12/2011 12:35:40 door TJVB tvb
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "SELECT u.name, p.productID
FROM useraccount AS u
JOIN product AS p ON u.PIDID = p.PIDID
";
$query = mysql_query($sql,$db);
$total_results = mysql_num_rows($query); //mysql_num_rows($result) = Geef het aantal rijen in een resultaat
?>
$sql = "SELECT u.name, p.productID
FROM useraccount AS u
JOIN product AS p ON u.PIDID = p.PIDID
";
$query = mysql_query($sql,$db);
$total_results = mysql_num_rows($query); //mysql_num_rows($result) = Geef het aantal rijen in een resultaat
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
CREATE VIEW user_product AS
SELECT u.name uname, u.country, p.productID,
p.categoryID, p.subcategoryID, p.productNAME,
p.productPRICE, p.createDATUM, p.createTIJD,
p.businessprotection, p.VAT pvat, p.VATclass,
p.currency, p.totalMinimum, p.pricePer,
p.pricePerOne, p.moreInStock, p.remarks,
p.what, p.fotoProduct1, p.unitSet
FROM useraccount AS u JOIN product AS p
ON u.PIDID = p.PIDID
SELECT u.name uname, u.country, p.productID,
p.categoryID, p.subcategoryID, p.productNAME,
p.productPRICE, p.createDATUM, p.createTIJD,
p.businessprotection, p.VAT pvat, p.VATclass,
p.currency, p.totalMinimum, p.pricePer,
p.pricePerOne, p.moreInStock, p.remarks,
p.what, p.fotoProduct1, p.unitSet
FROM useraccount AS u JOIN product AS p
ON u.PIDID = p.PIDID
Deze kan je net benaderen als een normale tabel
Gewijzigd op 07/12/2011 12:50:28 door Ger van Steenderen
@Ger, wat is volgens jou nu het grote voordeel van die view? Die zal mede omdat de query zelf niet zo traag was niet veel invloed hebben.
Ik zou het niet weten haha, een view is niet meer dan een subquery in de FROM behalve dan dat ie in de database is opgeslagen.
@Michiel, ben je de tijd voor de verschillende blokken code al gaan meten?
Ik heb trouwens nog een oud script om makkelijk te gaan meten: http://phphulp.tjvb.nl/timecheck.php
Gewijzigd op 07/12/2011 13:43:44 door TJVB tvb
Gewijzigd op 07/12/2011 17:12:44 door Ger van Steenderen
@Ger, het gebruik van subquery's wordt in het algemeen juist afgeraden in verband met negatieve invloed op de performance.
TJVB tvb op 07/12/2011 17:14:50:
@Ger, het gebruik van subquery's wordt in het algemeen juist afgeraden in verband met negatieve invloed op de performance.
Als we het over MySQL hebben klopt dat in zekere zin, maar meestal wordt het afgeraden voor het gebruiken in de WHERE (in combinatie met IN). Dit geldt met name als de tabel waarop je de subquery loslaat veel records bevat.
Gewijzigd op 07/12/2011 21:02:01 door Aad B