Zoeken in database
ziet iemand wat er fout zit
ps er staat ook een stuk pagenation tussen maar dat moet je maar even vergeten
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
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
<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST'){
if( $_POST['zoek'] == true){
$sql = mysql_query("SELECT * FROM aanbod WHERE product LIKE% '".$_POST['gezocht']."'% OR omschrijving LIKE%'".$_POST['gezocht']."'% ORDER BY id DESC");
$productid = ($sql['id']);
$nr = mysql_num_rows($sql);
if($nr!= 0){
if (isset($_GET['pn'])){
$pn = preg_replace('#[^0-9]#i','', $_GET['pn']);
}
else{
$pn = 1;
}
$itemsPerPage = 10;
$lastPage = ceil($nr /$itemsPerPage);
if($pn< 1) {
$pn = 1;
}
else if($pn> $lastPage){
$pn =$lastPage;
}
$centerPages = "";
$sub1 = $pn -1;
$sub2 = $pn -2;
$add1 = $pn +1;
$add2 = $pn +2;
if($pn ==1){
$centerPages.=' '.$pn.' ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$add1.'">'.$add1.'</a> ';
} else if ($pn == $lastPage){
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a> ';
$centerPages.=' '.$pn.' ';
} else if($pn>2 && $pn<($lastPage -1)){
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub2.'">'.$sub2.'</a> ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a> ';
$centerPages.=' '.$pn.' ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$add1.'">'.$add1.'</a> ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$add2.'">'.$add2.'</a> ';
} else if($pn> 1 && $pn <$lastPage){
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a> ';
$centerPages.=' '.$pn.' ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='. $add1.'">'.$add1.'</a> ';
}
$limit = 'LIMIT ' . ($pn -1) * $itemsPerPage.','.$itemsPerPage;
$sql2 = mysql_query("SELECT id, groep, product, prijs, prijsper, bedrijfsnaam, omschrijving, email FROM aanbod WHERE product LIKE% '".$_POST['gezocht']."'% OR omschrijving LIKE%'".$_POST['gezocht']."'% ORDER BY id DESC $limit ");
$paginationDisplay = "";
if($lastPage !="1"){
$paginationDisplay.= '<p>Pagina<strong> '.$pn.'</strong> Van  '.$lastPage.'</p>';
if ($pn !=1){
$previous = $pn-1;
$paginationDisplay.= ' <a href="' .$_SERVER['PHP_SELF'].'?pn='.$previous.'"><img src="vorige.png" alt="vorige"></a>';
}
$paginationDisplay.=''.$centerPages.'';
if ($pn !=$lastPage){
$nextPage = $pn +1;
$paginationDisplay.=' <a href="' .$_SERVER['PHP_SELF'].'?pn='.$nextPage.'"><img src="volgende.png"alt="volgende"></a>';
}
}
if($sql2=== false){
echo mysql_error();
}
echo $paginationDisplay ;
while($rij = mysql_fetch_array($sql2)) {
?>
if( $_SERVER['REQUEST_METHOD'] == 'POST'){
if( $_POST['zoek'] == true){
$sql = mysql_query("SELECT * FROM aanbod WHERE product LIKE% '".$_POST['gezocht']."'% OR omschrijving LIKE%'".$_POST['gezocht']."'% ORDER BY id DESC");
$productid = ($sql['id']);
$nr = mysql_num_rows($sql);
if($nr!= 0){
if (isset($_GET['pn'])){
$pn = preg_replace('#[^0-9]#i','', $_GET['pn']);
}
else{
$pn = 1;
}
$itemsPerPage = 10;
$lastPage = ceil($nr /$itemsPerPage);
if($pn< 1) {
$pn = 1;
}
else if($pn> $lastPage){
$pn =$lastPage;
}
$centerPages = "";
$sub1 = $pn -1;
$sub2 = $pn -2;
$add1 = $pn +1;
$add2 = $pn +2;
if($pn ==1){
$centerPages.=' '.$pn.' ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$add1.'">'.$add1.'</a> ';
} else if ($pn == $lastPage){
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a> ';
$centerPages.=' '.$pn.' ';
} else if($pn>2 && $pn<($lastPage -1)){
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub2.'">'.$sub2.'</a> ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a> ';
$centerPages.=' '.$pn.' ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$add1.'">'.$add1.'</a> ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$add2.'">'.$add2.'</a> ';
} else if($pn> 1 && $pn <$lastPage){
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a> ';
$centerPages.=' '.$pn.' ';
$centerPages.=' <a href="'.$_SERVER['PHP_SELF'].'?pn='. $add1.'">'.$add1.'</a> ';
}
$limit = 'LIMIT ' . ($pn -1) * $itemsPerPage.','.$itemsPerPage;
$sql2 = mysql_query("SELECT id, groep, product, prijs, prijsper, bedrijfsnaam, omschrijving, email FROM aanbod WHERE product LIKE% '".$_POST['gezocht']."'% OR omschrijving LIKE%'".$_POST['gezocht']."'% ORDER BY id DESC $limit ");
$paginationDisplay = "";
if($lastPage !="1"){
$paginationDisplay.= '<p>Pagina<strong> '.$pn.'</strong> Van  '.$lastPage.'</p>';
if ($pn !=1){
$previous = $pn-1;
$paginationDisplay.= ' <a href="' .$_SERVER['PHP_SELF'].'?pn='.$previous.'"><img src="vorige.png" alt="vorige"></a>';
}
$paginationDisplay.=''.$centerPages.'';
if ($pn !=$lastPage){
$nextPage = $pn +1;
$paginationDisplay.=' <a href="' .$_SERVER['PHP_SELF'].'?pn='.$nextPage.'"><img src="volgende.png"alt="volgende"></a>';
}
}
if($sql2=== false){
echo mysql_error();
}
echo $paginationDisplay ;
while($rij = mysql_fetch_array($sql2)) {
?>
<table cellpadding='0'>
<TR><TD width="150px"><strong>Rubriek:</strong></TD>
<TD width="220px"><strong>Product:</strong></TD>
<TD width="270px"><strong>Bedrijfsnaam:</strong></TD>
<TD width="40px" rowspan="2" align="center" valign="center"><a href="http://www.agfmarkt.nl/aanboddetail.php?productid=">Details</a> </TD></TR>
<TR><TD width="150px"><strong>Prijs:</strong></TD>
<TD width="220px"><strong>Per:</strong></TD>
<TD width="270px"><strong>Emailadres:</strong><a href=mailto:> Email de adverteerder</a>
</TR>
</table>
<br>
Code (php)
?php>
Gewijzigd op 29/11/2012 19:45:56 door Stefan H
Handel foutmeldingen eens goed af, ook voor MySQL
Gewijzigd op 29/11/2012 22:19:44 door John D
Maar zo: LIKE '%".$_POST['gezocht']."%'
En beveiligd zo: LIKE '%".mysql_real_escape_string($_POST['gezocht'])."%'
heb je een idee waardoor dat nu komt ?
zo is de query nu
Code (php)
1
2
3
2
3
<?php
$sql = mysql_query("SELECT * FROM aanbod WHERE product LIKE '% ".mysql_real_escape_string ($_POST['gezocht'])."%' OR omschrijving LIKE '% ".mysql_real_escape_string ($_POST['gezocht'])."%' ORDER BY id DESC");
?>
$sql = mysql_query("SELECT * FROM aanbod WHERE product LIKE '% ".mysql_real_escape_string ($_POST['gezocht'])."%' OR omschrijving LIKE '% ".mysql_real_escape_string ($_POST['gezocht'])."%' ORDER BY id DESC");
?>
Stefan H op 30/11/2012 13:57:06:
alleen zoek hij nu alleen in 1 tabel
"SELECT * FROM aanbod ..."
Dus hij zoekt in tabel 'aanbod'. Ik zou niets anders verwachten.
WHERE product LIKE '% ".mysql_real_escape_string ($_POST['gezocht'])."%' OR omschrijving LIKE '% ".mysql_real_escape_string ($_POST['gezocht'])."%'
Misschien doordat je in de LIKE '%eerst hier een spatie hebt staan?
hij heeft alleen een hit als de trefwoorden niet het eerste woord is . dat slaat hij over.
wel vreemd . iemand een idee hoe dat komt ?
Toevoeging op 30/11/2012 14:14:47:
ik ben erachter wat het is
hij heeft alleen een hit als de trefwoorden niet het eerste woord is . dat slaat hij over.
wel vreemd . iemand een idee hoe dat komt ?
- SanThe - op 30/11/2012 14:13:08:
Misschien doordat je in de LIKE '%eerst hier een spatie hebt staan?
Dat komt dus door deze spatie.
like'%"mysql_....
hier moet nergens een spatie tussen