Zoekfunctie werkt niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arno Flapper

Arno Flapper

06/12/2011 15:08:24
Quote Anchor link
Hallo allemaal,

Ik moet voor school een php website maken met php zoekfunctie. Mijn zoekfunctie kan al op artiestnaam zoeken maar op titel niet helaas.
Hier is mijn code:
Quote:
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
<?php

//MySQL gegevens
$host = "mysql12.000webhost.com"; //Hostnaam van de database
$user = "a5715510_admin"; //Username van de database
$wachtwoord = "******"; //Wachtwoord van de database
$database = "a5715510_995919"; //Naam van de database

$verbinding = mysql_connect($host, $user, $wachtwoord)
    or die("Kan niet met de server verbinden");
$db = mysql_select_db($database)
    or die("Kan niet met de database verbinden");

$artist = $_POST['artist'];
$titel = $_POST['titel'];

if($artist != NULL && $titel == NULL)
    {

        $sql = mysql_query("SELECT * FROM muziek WHERE Artiest LIKE '%$artist%'");
    }

if($titel != NULL && $artist == NULL)
    {

        $sql = mysql_query("SELECT * FROM muziek WHERE Liedje LIKE '%$titel%'");
    }


?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Website Arno 4HV5</title>
</head>
<body>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css" MEDIA=screen>
<div id="container">
<div id="header">
<h1>
Arno Flapper 4h5
</h1>
</div>
<div id="navigation">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="voegtoe.php">Voeg eigen nummer toe</a></li>
</ul>
</div>
<div id="content-container">
<div id="content">
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
<?php
        if($artist == NULL){
            if($titel == NULL){
            echo 'Vul minimaal 1 waarde in.';
            }
        }
else {
                while ($row = mysql_fetch_array($sql)){
                echo '<br/> Artiest: '.$row['Artiest'];
                echo '<br/> Jaar: '.$row['Jaar'];
                echo '<br/> Liedje: '.$row['Liedje'];
                echo '<br/><br/>';
                }
        }

        ?>

</div>
<div id="aside">
<p>
<form action="search.php" method="post">
Artiest: <input type="text" name="artist" /><br />
Titel: <input type="text" name="titel" /><br />
<input type="submit" value="Submit" />
</form>
<p>
</div>
<div id="footer">
Copyright © Arno Flapper 4H5, 2011
</div>
</div>
</div>
</body>
</html>

Wat doe ik fout? Als ik alleen op titel zoek dan komt er niks tevoorschijn dus misschien ligt het aan de database, hier ook effe een linkje van de database.
http://imageshack.us/photo/my-images/507/phpprobleem.png/

Alvast bedankt, als je meer info moet hebben vraag je het maar.
 
PHP hulp

PHP hulp

24/12/2024 00:08:51
 
- Ariën  -
Beheerder

- Ariën -

06/12/2011 15:10:27
Quote Anchor link
- variabelen buiten quotes
- Foutafhandeling op je mysql_queries (zonder gebruik van die()-praktijken )
- Je script is vatbaar voor MySQL-injection. Gebruik mysql_real_escape_string()
- Maak geen onnodige variabele aan.
 
Jaron T

Jaron T

06/12/2011 15:11:15
Quote Anchor link
zit er wel iets in je $_POST variabelen? controleer ook sowieso of er überhaupt gepost is.
 
Peter Dorn

Peter Dorn

06/12/2011 15:13:51
Quote Anchor link
Je fout zit hier:

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
<?php
        if($artist == NULL){
            if($titel == NULL){
            echo 'Vul minimaal 1 waarde in.';
            }
        }
else {
                while ($row = mysql_fetch_array($sql)){
                echo '<br/> Artiest: '.$row['Artiest'];
                echo '<br/> Jaar: '.$row['Jaar'];
                echo '<br/> Liedje: '.$row['Liedje'];
                echo '<br/><br/>';
                }
        }

        ?>


dit moet zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
        if( mysql_num_rows( $sql ) == 0 ){
            echo 'Geen zoekresultaten. Pas je zoekopdracht aan.';
        }
else {
                while ($row = mysql_fetch_array($sql)){
                echo '<br/> Artiest: '.$row['Artiest'];
                echo '<br/> Jaar: '.$row['Jaar'];
                echo '<br/> Liedje: '.$row['Liedje'];
                echo '<br/><br/>';
                }
        }

        ?>


Daarnaast zou ik ook wat zaken gaan escapen in je queries, anders zit je in no-time zonder database ;-)
 
Arno Flapper

Arno Flapper

06/12/2011 15:15:56
Quote Anchor link
Ok ik ben weer wat opgeschoten, bedankt voor de hulp.
 



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.