zoekform op website
ik zag hier op het forum het volgende zoekscript:
http://www.phphulp.nl/php/tutorials/3/100/
Is dit bruikbaar als basis voor een zoekscript?
Mvg,
Jacquesz.
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
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
<?PHP
/* Errors */
error_reporting(E_ALL);
/* Kijken of er wordt gepost */
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/* Kijken of er wel een naam is ingevuld */
if(!empty($_POST['jouwveld']))
{
/* Query uitvoeren */
$Query =
"
SELECT
id,
username
FROM
profiel
WHERE
username LIKE '%".mysql_real_escape_string($_POST['jouwveld'])."%'
";
/* Result */
$Result = mysql_query($Query);
/* Kijken of de query is gelukt */
if(!$Result)
{
/* Foutje in query */
echo 'Er is een fout ogpetreden met het zoeken naar een username.';
}
else
{
/* Kijken of er username(s) zijn gevonden */
if(mysql_num_rows($Result) == 0)
{
/* Geen username(s) gevonden */
echo 'Wij konden geen username vinden met:'.$_POST['jouwveld'];
}
else
{
/* Start tabel */
echo '<table border="0" width="120">
<tr>
<td colspan="2">Er zijn: '.mysql_num_rows($Result).' usernames(s) gevonden.</td>
</tr>
';
/* Username(s) laten zien */
while($Row = mysql_fetch_assoc($Result))
{
/* Resultaten weergeven */
echo '<tr>
<td>'.$Row['username'].'</td>
<td><a href="profilelink.php?id='.$Row['id'].'">Profiel</a></td>
</tr>
';
}
/* Tabel Sluiten */
echo '</table>';
}
}
}
else
{
/* Geen naam ingevuld */
echo 'Voer A.U.B een naam in.';
}
}
?>
/* Errors */
error_reporting(E_ALL);
/* Kijken of er wordt gepost */
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/* Kijken of er wel een naam is ingevuld */
if(!empty($_POST['jouwveld']))
{
/* Query uitvoeren */
$Query =
"
SELECT
id,
username
FROM
profiel
WHERE
username LIKE '%".mysql_real_escape_string($_POST['jouwveld'])."%'
";
/* Result */
$Result = mysql_query($Query);
/* Kijken of de query is gelukt */
if(!$Result)
{
/* Foutje in query */
echo 'Er is een fout ogpetreden met het zoeken naar een username.';
}
else
{
/* Kijken of er username(s) zijn gevonden */
if(mysql_num_rows($Result) == 0)
{
/* Geen username(s) gevonden */
echo 'Wij konden geen username vinden met:'.$_POST['jouwveld'];
}
else
{
/* Start tabel */
echo '<table border="0" width="120">
<tr>
<td colspan="2">Er zijn: '.mysql_num_rows($Result).' usernames(s) gevonden.</td>
</tr>
';
/* Username(s) laten zien */
while($Row = mysql_fetch_assoc($Result))
{
/* Resultaten weergeven */
echo '<tr>
<td>'.$Row['username'].'</td>
<td><a href="profilelink.php?id='.$Row['id'].'">Profiel</a></td>
</tr>
';
}
/* Tabel Sluiten */
echo '</table>';
}
}
}
else
{
/* Geen naam ingevuld */
echo 'Voer A.U.B een naam in.';
}
}
?>
Is dit te gebruiken mits enkele aanpassingen in de Query
Code (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
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
<?
include('system/config.connection.php');
$SQL = "SELECT naam,titel FROM advertenties WHERE naam LIKE '%" . $_POST[" search_input "] ."%' ORDER BY adv_id";
//exit($SQL);
//-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
//-- kijken of er een resultaat is
$res = mysql_query($SQL);
//-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
if (mysql_num_rows($res) >= 3)
{
//-- er is een resultaat gevonden, toon de resultaten via een while () loop
while ($row = mysql_fetch_array($res))
{
echo "<p>Resultaat Naam: <b>$row[naam] $row[titel]</b><br>";
//echo "<p>Resultaat tekst: <b>$row[text]</b></p>";
}
echo "<a href=\"index.php?pagina=search\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
//-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[search_input]</b></p>";
echo "<p><a href=\"index.php?pagina=search\" title=\" opnieuw zoeken \">zoek opnieuw</a></p>";
}
?>
include('system/config.connection.php');
$SQL = "SELECT naam,titel FROM advertenties WHERE naam LIKE '%" . $_POST[" search_input "] ."%' ORDER BY adv_id";
//exit($SQL);
//-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
//-- kijken of er een resultaat is
$res = mysql_query($SQL);
//-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
if (mysql_num_rows($res) >= 3)
{
//-- er is een resultaat gevonden, toon de resultaten via een while () loop
while ($row = mysql_fetch_array($res))
{
echo "<p>Resultaat Naam: <b>$row[naam] $row[titel]</b><br>";
//echo "<p>Resultaat tekst: <b>$row[text]</b></p>";
}
echo "<a href=\"index.php?pagina=search\" title=\"zoek opnieuw\">zoek opnieuw</a>";
}
//-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
else
{
echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[search_input]</b></p>";
echo "<p><a href=\"index.php?pagina=search\" title=\" opnieuw zoeken \">zoek opnieuw</a></p>";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door jacques
Ho, lekker. Ik zou je ook niet aan willen raden dat script te gaan gebruiken. Het is hartstikke lek. Overigens, kijk even naar regel 10, daar staat een 3. Dat betekent dat de query minstens 3 rijen terug moet geven wil je pas een resultaat weergeven. Maar als er 1 rij teruggegeven wordt is er al resultaat. Die logica klopt dus niet.
Heb dit even aangepast, maar het probleem is dat bij eender welk zoekwoord ik ingeef de uitkomst hetzelfde is?
En is dat ook zo als je de queries (met de zoekwoorden al ingevuld) uitvoert in phpMyAdmin?