ZOEKEN IN DATABASE
Ik zoek een script dat zoekt in een database. Ik heb namelijk een muziekpagina (http://muziek.toxtv.be >> Alle muziek)
en dat werkt met een database. Nu wil ik op een andere pagina een zoekfunctie maken die dus zoekt in de liedjes die in de db staan. Het liefst dat hij bij de zoekresultaten ook het plaatje enzo weergeeft.
Wie kent zo'n script of is bereid er een te maken? Ik ben zelf niet zo ervaren in PHP.
Vriendelijke groeten,
Tommy Z.
P.S. De database ziet er als volgt uit:
CREATE TABLE `links` (
`linkscode` smallint(5) unsigned NOT NULL auto_increment,
`url` varchar(250) default NULL,
`websitename` varchar(250) default NULL,
`description` text,
`banner` varchar(250) default NULL,
`linkin` varchar(4) default NULL,
`linkout` varchar(4) default NULL,
PRIMARY KEY (`linkscode`)
) TYPE=MyISAM AUTO_INCREMENT=44 ;
Gewijzigd op 01/01/1970 01:00:00 door Dhr. Zwartjes
1 Full text search. : http://www.phphulp.nl/php/zoeken.php?search=1&q=fulltext&w=PHP+tutorials&=Zoeken
2 En Via like
http://www.phphulp.nl/php/tutorials/3/100/
Dus veel speel plezier ;)
Code (php)
1
2
3
4
2
3
4
<?php
$query = mysql_query("SELECT * FROM links WHERE linkscode LIKE '%".$zoek."%' OR url LIKE '%".$zoek."%'");
$aantal = mysql_num_rows($query);
?>
$query = mysql_query("SELECT * FROM links WHERE linkscode LIKE '%".$zoek."%' OR url LIKE '%".$zoek."%'");
$aantal = mysql_num_rows($query);
?>
dit zou je op weg moeten helpen
Edit:
Heb te laat gelezen dat je het zelf niet wilt ontwerpen
Gewijzigd op 01/01/1970 01:00:00 door Tommy
In theorie werkt fulltext search beter maar is ook lastiger...
Tommy:
dit zou je op weg moeten helpen
Code (php)
1
2
3
4
2
3
4
<?php
$query = mysql_query("SELECT * FROM links WHERE linkscode LIKE '%".$zoek."%' OR url LIKE '%".$zoek."%'");
$aantal = mysql_num_rows($query);
?>
$query = mysql_query("SELECT * FROM links WHERE linkscode LIKE '%".$zoek."%' OR url LIKE '%".$zoek."%'");
$aantal = mysql_num_rows($query);
?>
dit zou je op weg moeten helpen
Edit:
Heb te laat gelezen dat je het zelf niet wilt ontwerpen
Waar zou ik dat dan neer moeten zetten?
Is gewoon een nieuwe query.
90% van de mensen die hier komen schudden een dergelijk systeem zo uit hun mouw, maar daar zou jij niks van leren en bovendien heeft men hier wel wat beters te doen.
Wat ik je aan zou willen raden is om een boek over PHP te kopen, of als je dat al voldoende beheerst maar nog niet met de database (zelf) gewerkt hebt, een boek over MySql.
Vat dit niet op als een belediging, het is juist bedoelt om je op de "goede" weg te helpen.
Waar je even naar zou moeten kijken is een systeem dat Jelmer onlangs gemaakt heeft met een hele uitgebreidde zoekfunctie. Moet je maar even kijken in de scripts library, ik denk in de categorie database.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function db_search($table, $select,$queryfields, $query, $as, $key = '', $value = '', $limit = '' , $start = ''){
$sql = 'SELECT '.$select.', MATCH ('.$queryfields.') AGAINST ("'.$query.'") AS '.$as.' FROM '.$table .'
WHERE MATCH ('.$queryfields.') AGAINST ("'.$query.'")';
if(!empty($key) && !empty($value)){
$sql .= 'AND '.$key.' = '.$value.'';
}
$sql .= 'ORDER BY '.$as.' DESC';
if(!empty($limit) && !empty($start)){
$sql .= 'LIMIT '.$start.','.$limit.'';
}
return $this->get_array($sql);
}
?>
function db_search($table, $select,$queryfields, $query, $as, $key = '', $value = '', $limit = '' , $start = ''){
$sql = 'SELECT '.$select.', MATCH ('.$queryfields.') AGAINST ("'.$query.'") AS '.$as.' FROM '.$table .'
WHERE MATCH ('.$queryfields.') AGAINST ("'.$query.'")';
if(!empty($key) && !empty($value)){
$sql .= 'AND '.$key.' = '.$value.'';
}
$sql .= 'ORDER BY '.$as.' DESC';
if(!empty($limit) && !empty($start)){
$sql .= 'LIMIT '.$start.','.$limit.'';
}
return $this->get_array($sql);
}
?>
En komt het nu op een goed database ontwerp..
Gewijzigd op 01/01/1970 01:00:00 door Eris -
<html
<head>
</head>
<body>
<link rel="stylesheet" type="text/css" href="style-members.css">
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
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
<?PHP
$database_url = "localhost";
$gebruiker = "";
$wachtwoord = "";
$database = "weblog";
mysql_connect("$database_url", "$gebruiker", "$wachtwoord") or die("Connectie met Database mislukt");
mysql_select_db("$database") or die("Fout bij het selecteren van de database");
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$select = "SELECT * FROM weblog WHERE $zoekcat LIKE '%$_POST[trefwoord]%' ORDER BY id DESC";
$query = mysql_query($select) or die("Er is iets fout gegaan!");
$resultaten = mysql_num_rows($query);
if($trefwoord == "")
{ echo "Geen zoekterm ingevoerd!";
} elseif(strlen($trefwoord) < 3)
{ echo "Zoekterm moet minimaal uit 3 tekens bestaan!";
} elseif ($resultaten == "0")
{ echo "Helaas, er zijn geen resultaten gevonden!<br><br><br> <img src=images/arrow.gif align=absmiddle> <a href=\"javascript: history.go(-1)\">Zoekopdracht aanpassen</a><br> <img src=images/arrow.gif align=absmiddle> <a href=zoeken2.php>opnieuw zoeken</a>";
} else {
echo "<br><br> <img src=images/lupa1.gif align=absmiddle> Er zijn $resultaten resultaten gevonden voor <i>$_POST[trefwoord]</i>.<br><br>\n";
echo "<table align=\"left\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\">\n";
echo "<tr><td><b> Auteur:</b></td><td><b>Titel:</b></td></tr>\n";
while ($zoekdata = mysql_fetch_array($query)) {
echo "<tr><td> $zoekdata[auteur] </td>\n";
echo "<td><a href=\"log.php?id=$zoekdata[id]\" target=\"_top\">$zoekdata[titel]</a></td>\n";
}
echo "<tr><td colspan=2><br><br> <img src=images/arrow.gif align=absmiddle> <a href=http://localhost/stephan/zoeken2.php>opnieuw zoeken</a></td>\n";
}
} else {
?>
$database_url = "localhost";
$gebruiker = "";
$wachtwoord = "";
$database = "weblog";
mysql_connect("$database_url", "$gebruiker", "$wachtwoord") or die("Connectie met Database mislukt");
mysql_select_db("$database") or die("Fout bij het selecteren van de database");
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$select = "SELECT * FROM weblog WHERE $zoekcat LIKE '%$_POST[trefwoord]%' ORDER BY id DESC";
$query = mysql_query($select) or die("Er is iets fout gegaan!");
$resultaten = mysql_num_rows($query);
if($trefwoord == "")
{ echo "Geen zoekterm ingevoerd!";
} elseif(strlen($trefwoord) < 3)
{ echo "Zoekterm moet minimaal uit 3 tekens bestaan!";
} elseif ($resultaten == "0")
{ echo "Helaas, er zijn geen resultaten gevonden!<br><br><br> <img src=images/arrow.gif align=absmiddle> <a href=\"javascript: history.go(-1)\">Zoekopdracht aanpassen</a><br> <img src=images/arrow.gif align=absmiddle> <a href=zoeken2.php>opnieuw zoeken</a>";
} else {
echo "<br><br> <img src=images/lupa1.gif align=absmiddle> Er zijn $resultaten resultaten gevonden voor <i>$_POST[trefwoord]</i>.<br><br>\n";
echo "<table align=\"left\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\">\n";
echo "<tr><td><b> Auteur:</b></td><td><b>Titel:</b></td></tr>\n";
while ($zoekdata = mysql_fetch_array($query)) {
echo "<tr><td> $zoekdata[auteur] </td>\n";
echo "<td><a href=\"log.php?id=$zoekdata[id]\" target=\"_top\">$zoekdata[titel]</a></td>\n";
}
echo "<tr><td colspan=2><br><br> <img src=images/arrow.gif align=absmiddle> <a href=http://localhost/stephan/zoeken2.php>opnieuw zoeken</a></td>\n";
}
} else {
?>
<br>
<table border="0">
<tr>
<td>
</td>
<td>
Trefwoord:
</td>
<td>
Zoeken in:
</td>
<td>
</td>
</tr>
<tr>
<td valign="top">
<img src="images/lupa1.gif">
</td>
<td valign="top">
<form name="formulier" action="" method="post">
<input type="text" name="trefwoord">
</td>
<td valign="top">
<select name="zoekcat">
<option value="auteur">Auteur </option>
<option value="titel">Titel </option>
<option value="bericht">Bericht </option>
</select>
</td>
<td>
<input type="submit" name="submit" value="Zoeken">
</form>
</td>
</tr>
</table>
</body>
</html>
Heb hem zelf aangepast.
Zeer makkelijk script. Voor vragen ff pm'en
Het volgende moet je nog even doen:
$database = "weblog";
in: $database = "links";
Verander: ORDER BY id in wat je wilt.
Gewijzigd op 01/01/1970 01:00:00 door stephan de vries