Zoeken in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan H

stefan H

29/11/2012 19:26:54
Quote Anchor link
kan iemand mij helpen ik probeer een zoek veld te maken om resultaten uit de database te halen die aan de zoek trefwoorden voldoen ik heb het volgende script maar krijg alleen maar de ECHO terug dat er geen resultaten gevonden zijn maar deze moeten er wel degelijk zijn
ziet iemand wat er fout zit
ps er staat ook een stuk pagenation tussen maar dat moet je maar even vergeten

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.='&nbsp;'.$pn.'&nbsp;';
    $centerPages.='&nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='.$add1.'">'.$add1.'</a>&nbsp;';
}
else if ($pn == $lastPage){

    $centerPages.='&nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a>&nbsp;';
    $centerPages.='&nbsp;'.$pn.'&nbsp;';
}
else if($pn>2 && $pn<($lastPage -1)){
    $centerPages.='&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub2.'">'.$sub2.'</a>&nbsp;';
    $centerPages.='&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a>&nbsp;';
    $centerPages.='&nbsp;'.$pn.'&nbsp;';
    $centerPages.='&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?pn='.$add1.'">'.$add1.'</a>&nbsp;';
    $centerPages.='&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?pn='.$add2.'">'.$add2.'</a>&nbsp;';
}
else if($pn> 1 && $pn <$lastPage){
    $centerPages.='&nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='.$sub1.'">'.$sub1.'</a>&nbsp;';
    $centerPages.='&nbsp;'.$pn.'&nbsp;';
    $centerPages.='&nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='. $add1.'">'.$add1.'</a>&nbsp;';
}


$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>&nbsp'.$pn.'</strong> Van &nbsp'.$lastPage.'</p>';

if ($pn !=1){
    $previous = $pn-1;
    $paginationDisplay.= '&nbsp; <a href="' .$_SERVER['PHP_SELF'].'?pn='.$previous.'"><img src="vorige.png" alt="vorige"></a>';
}


$paginationDisplay.=''.$centerPages.'';

if ($pn !=$lastPage){
    $nextPage = $pn +1;
    $paginationDisplay.='&nbsp; <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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $rij['groep'];?>
</TD>
<TD width="220px"><strong>Product:</strong>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $rij['product'];?>
</TD>
<TD width="270px"><strong>Bedrijfsnaam:</strong>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $rij['bedrijfsnaam'];?>
</TD>
<TD width="40px" rowspan="2" align="center" valign="center"><a href="http://www.agfmarkt.nl/aanboddetail.php?productid=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $rij['id'] ?>
">Details</a> </TD></TR>
<TR><TD width="150px"><strong>Prijs:</strong>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $rij['prijs'];?>
</TD>
<TD width="220px"><strong>Per:</strong>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $rij['prijsper'];?>
</TD>
<TD width="270px"><strong>Emailadres:</strong><a href=mailto:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $rij['email'];?>
> Email de adverteerder</a>
</TR>
</table>
<br>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
}
}

else{
    echo'Er zijn geen resultaten gevonden voor<br>';
    echo $_POST['gezocht'];
}
}
}

else{
}

?>

?php>
Gewijzigd op 29/11/2012 19:45:56 door Stefan H
 
PHP hulp

PHP hulp

25/11/2024 05:04:06
 
John D

John D

29/11/2012 21:04:17
Quote Anchor link
Misschien een spatie tussen LIKE en %
Handel foutmeldingen eens goed af, ook voor MySQL
Gewijzigd op 29/11/2012 22:19:44 door John D
 
- SanThe -

- SanThe -

29/11/2012 22:03:01
Quote Anchor link
Niet zo: LIKE% '".$_POST['gezocht']."'%
Maar zo: LIKE '%".$_POST['gezocht']."%'

En beveiligd zo: LIKE '%".mysql_real_escape_string($_POST['gezocht'])."%'
 
Stefan H

stefan H

30/11/2012 13:57:06
Quote Anchor link
inderdaad SanThe dat werkt alleen zoek hij nu alleen in 1 tabel dat is omschrijving dus de tabel product zoekt hij niet dat voor OR staat

heb je een idee waardoor dat nu komt ?
zo is de query nu
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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");
?>
 
Kris Peeters

Kris Peeters

30/11/2012 14:04:18
Quote Anchor link
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.
 
Stefan H

stefan H

30/11/2012 14:06:59
Quote Anchor link
hij zoekt wel in tabel aanbod inderdaad maar hij zoekt alleen bij omschrijving en niet bij product
WHERE product LIKE '% ".mysql_real_escape_string ($_POST['gezocht'])."%' OR omschrijving LIKE '% ".mysql_real_escape_string ($_POST['gezocht'])."%'
 
- SanThe -

- SanThe -

30/11/2012 14:13:08
Quote Anchor link
Misschien doordat je in de LIKE '%eerst hier een spatie hebt staan?
 
Stefan H

stefan H

30/11/2012 14:14:45
Quote Anchor link
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 ?

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 -

- SanThe -

30/11/2012 14:15:50
Quote Anchor link
- 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.
 
Stefan H

stefan H

30/11/2012 14:23:00
Quote Anchor link
ja had ik zelf ook kunnen bedenken bedankt
like'%"mysql_....

hier moet nergens een spatie tussen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.