Zoekfunctie toevoegen PHP/MySQL
Op het moment ben ik bezig met een opdracht voor school. Ik moet een database maken waarin ik CD's DVD's en Games toe kan voegen, hier moet ik ook een zoekfunctie aan toevoegen. Ik ben al aan het zoeken geweest naar een aantal voorbeelden op internet, maar met deze scripts loop ik elke keer vast of het script werkt niet naar behoren.
Heeft iemand een idee hoe ik een simpel zoekscript kan toepassen op de gegevens uit mijn database?
Mijn database heet mediabase en de kolommen zijn mediaID, mediaNaam, mediaCategorie en mediaDetail.
Groet,
Jos
Code (php)
1
2
3
2
3
<?php
$result = mysql_query("SELECT mediaID, mediaNaam, mediaCategorie, mediaDetail FROM mediabase WHERE mediaNaam LIKE %'". $_POST['deNaamVanJeInputFieldOmTeZoeken'] ."'%");
?>
$result = mysql_query("SELECT mediaID, mediaNaam, mediaCategorie, mediaDetail FROM mediabase WHERE mediaNaam LIKE %'". $_POST['deNaamVanJeInputFieldOmTeZoeken'] ."'%");
?>
zo iets?
kijk ook eens hier
Gewijzigd op 24/06/2011 13:06:54 door Victor -
Alleen krijg ik nu de resultaten in een tabel afgebeeld?
Groet,
Jos
dan moet je nog doen
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$result = mysql_query("SELECT mediaID, mediaNaam, mediaCategorie, mediaDetail FROM mediabase WHERE mediaNaam LIKE %'". $_POST['deNaamVanJeInputFieldOmTeZoeken'] ."'%");
echo '<table';
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td>'. $row['mediaNaam'] .'</td><td>'. $row['mediaDetail'] .'</td></tr>';
}
echo '</table>';
?>
$result = mysql_query("SELECT mediaID, mediaNaam, mediaCategorie, mediaDetail FROM mediabase WHERE mediaNaam LIKE %'". $_POST['deNaamVanJeInputFieldOmTeZoeken'] ."'%");
echo '<table';
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td>'. $row['mediaNaam'] .'</td><td>'. $row['mediaDetail'] .'</td></tr>';
}
echo '</table>';
?>
Ik denk dat je het principe dan wel snapt?
edit: hoofdletters goed gedaan
edit2: ik heb geen rekening gehouden met mysql_injection en error-handling dat er nog even zelf in bouwen;)
Gewijzigd op 24/06/2011 13:20:12 door Victor -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$host = "localhost"; /// use default
$username = "root"; /// write your mysql username
$password = "*******"; /// write your mysql password
$database = "mediabase"; /// write your mysql database
$connect = @mysql_connect($host, $username, $password) or die (@mysql_error());
$selectdb = @mysql_select_db($database, $connect) or die (@mysql_error());
$result = mysql_query("SELECT mediaID, mediaNaam, mediaCategorie, mediaDetail FROM mediabase WHERE mediaNaam LIKE %'". $_POST['zoekterm'] ."'%");
echo '<table';
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td>'. $row['medianaam'] .'</td><td>'. $row['mediaDetail'] .'</td></tr>';
}
echo '</table>';
?>
$host = "localhost"; /// use default
$username = "root"; /// write your mysql username
$password = "*******"; /// write your mysql password
$database = "mediabase"; /// write your mysql database
$connect = @mysql_connect($host, $username, $password) or die (@mysql_error());
$selectdb = @mysql_select_db($database, $connect) or die (@mysql_error());
$result = mysql_query("SELECT mediaID, mediaNaam, mediaCategorie, mediaDetail FROM mediabase WHERE mediaNaam LIKE %'". $_POST['zoekterm'] ."'%");
echo '<table';
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td>'. $row['medianaam'] .'</td><td>'. $row['mediaDetail'] .'</td></tr>';
}
echo '</table>';
?>
Ik krijg echter de volgende foutmelding wanneer ik probeer te zoeken:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\database\search.php on line 29
Line 29 is in dit geval de volgende regel:
while($row = mysql_fetch_assoc($result)) {
Toevoeging op 24/06/2011 13:29:53:
Deze foutmelding had ik vanochtend ook al met een ander script van het internet. Waardoor komt deze melding?
Toevoeging op 24/06/2011 14:15:00:
Heeft iemand een idee waar het aan kan liggen? Voor zover ik het kan zien klopt het zo maar als ik ga zoeken krijg ik steeds de foutmelding.
Toevoeging op 24/06/2011 14:43:04:
Heb even gezocht op internet en nog een aantal dingen geprobeerd. Hieronder mijn code, maar heb nog steeds hetzelfde probleem. Weet iemand een oplossing?
<h1>Zoeken</h1>
<form action="search.php" method="post">
Zoek:<input type="text" name="zoekterm" />
<input type="submit" name="searchBtn" value="zoek!" />
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$host = "localhost"; /// use default
$username = "root"; /// write your mysql username
$password = "*******"; /// write your mysql password
$database = "mediabase"; /// write your mysql database
$connect = @mysql_connect($host, $username, $password) or die (@mysql_error());
$selectdb = @mysql_select_db($database, $connect) or die (@mysql_error());
$zoekterm= $_POST['zoekterm'];
$query = "SELECT mediaID, mediaNaam, mediaCategorie, mediaDetail FROM mediabase WHERE mediaNaam LIKE %'". $zoekterm ."'%";
$result = mysql_query($query);
echo '<table';
while ($row = mysql_fetch_assoc($result)) {
echo '<tr><td>'. $row['mediaID'] .'</td><td>'. $row['mediaNaam'] .'</td><td>'. $row['mediaCategorie'] .'</td><td>'. $row['mediaDetail'] .'</td></tr>';
}
echo '</table>';
?>
$host = "localhost"; /// use default
$username = "root"; /// write your mysql username
$password = "*******"; /// write your mysql password
$database = "mediabase"; /// write your mysql database
$connect = @mysql_connect($host, $username, $password) or die (@mysql_error());
$selectdb = @mysql_select_db($database, $connect) or die (@mysql_error());
$zoekterm= $_POST['zoekterm'];
$query = "SELECT mediaID, mediaNaam, mediaCategorie, mediaDetail FROM mediabase WHERE mediaNaam LIKE %'". $zoekterm ."'%";
$result = mysql_query($query);
echo '<table';
while ($row = mysql_fetch_assoc($result)) {
echo '<tr><td>'. $row['mediaID'] .'</td><td>'. $row['mediaNaam'] .'</td><td>'. $row['mediaCategorie'] .'</td><td>'. $row['mediaDetail'] .'</td></tr>';
}
echo '</table>';
?>
Je kunt je topic de volgende keer natuur ook gewoon "wie wil mn huiswerk voor me maken" noemen
Dank voor de tip! Heb het script inmiddels al werkend.