Query uitleg, MYSQl-database voor een bibliotheek
Pagina: « vorige 1 2 3 volgende »
Gewijzigd op 12/06/2011 12:50:36 door Jasper DS
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in V:\www\bibliotheekzoekvraag2.php on line 31
Fout met database!
Regel 31 begint met jouw foutafhandeling.
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
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
<?php
$query = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I ';
if ($voorwaarde == 'alles') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ALLES LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'auteur') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ACHTERNAAM LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'uitgever') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND UITNR IN (SELECT UITNR FROM UITGEVERS WHERE UITNAAM LIKE "%$zoekterm%"';}
elseif ($voorwaarde == 'isbn') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ISBN LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'serie') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND SERIE LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'onderwerp') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND OWNR IN (SELECT OWNR FROM ONDERWERPEN WHERE ACHTERNAAM LIKE "%$zoekterm%"';}
elseif ($voorwaarde == 'coauteurs') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND COAUTEURSNR IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR2 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR3 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR4 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC"';}
elseif ($voorwaarde == 'provnaam') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND PROVNR IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") OR PROVNR2 IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") OR PROVNR3 IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'drukker') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND DRUKKERNR IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR DRUKKERNR2 IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR DRUKKERNR3 IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
# Check je query
if(($result = mysql_query($sql)) === false)
{
# de query is fout, weergeef in test-fase eventueel mysql_error()
echo' Fout met database!';
}
elseif(mysql_num_rows($result) < 1)
{
echo 'Er zijn geen gegevens gevonden';
}
else
{
echo ("</br></br>");
echo ("<font face='verdana' size='2'><b>Resultaten voor:</b> $voorwaarde = $zoekterm");
echo ("</br></br>");
echo ("<table width='100%'>");
echo ("<tr height='40'><td width='25%' class='tabel'><b>auteur</b></td><td width='60%' class='tabel'><b>titel</b></td><td width='7%' class='tabel'><b>jaar</b></td><td width='8%' class='tabel'><b>exemplaren</b></td></tr>");
while($row = mysql_fetch_row($result))
{
echo ("<tr height='20'><td class='tabel'> $achternaam$komma $voornaam $tussenvoegsels </td><td class='tabel'> <a href='$boeknr.htm'>$titel $dubbelpunt $subtitel</a> </td><td class='tabel'> $uitgave </td><td class='tabel'> $aantal_exemplaren </td></tr>");
}
echo ("</tabel>");
}
?>
$query = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I ';
if ($voorwaarde == 'alles') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ALLES LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'auteur') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ACHTERNAAM LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'uitgever') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND UITNR IN (SELECT UITNR FROM UITGEVERS WHERE UITNAAM LIKE "%$zoekterm%"';}
elseif ($voorwaarde == 'isbn') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ISBN LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'serie') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND SERIE LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'onderwerp') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND OWNR IN (SELECT OWNR FROM ONDERWERPEN WHERE ACHTERNAAM LIKE "%$zoekterm%"';}
elseif ($voorwaarde == 'coauteurs') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND COAUTEURSNR IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR2 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR3 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR4 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC"';}
elseif ($voorwaarde == 'provnaam') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND PROVNR IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") OR PROVNR2 IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") OR PROVNR3 IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'drukker') {
$query .= 'WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND DRUKKERNR IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR DRUKKERNR2 IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR DRUKKERNR3 IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
# Check je query
if(($result = mysql_query($sql)) === false)
{
# de query is fout, weergeef in test-fase eventueel mysql_error()
echo' Fout met database!';
}
elseif(mysql_num_rows($result) < 1)
{
echo 'Er zijn geen gegevens gevonden';
}
else
{
echo ("</br></br>");
echo ("<font face='verdana' size='2'><b>Resultaten voor:</b> $voorwaarde = $zoekterm");
echo ("</br></br>");
echo ("<table width='100%'>");
echo ("<tr height='40'><td width='25%' class='tabel'><b>auteur</b></td><td width='60%' class='tabel'><b>titel</b></td><td width='7%' class='tabel'><b>jaar</b></td><td width='8%' class='tabel'><b>exemplaren</b></td></tr>");
while($row = mysql_fetch_row($result))
{
echo ("<tr height='20'><td class='tabel'> $achternaam$komma $voornaam $tussenvoegsels </td><td class='tabel'> <a href='$boeknr.htm'>$titel $dubbelpunt $subtitel</a> </td><td class='tabel'> $uitgave </td><td class='tabel'> $aantal_exemplaren </td></tr>");
}
echo ("</tabel>");
}
?>
</body>
</html>
Je hebt geen databaseverbinding.
Maar dat heb ik echt nog nooit gehad, dus het moet te maken hebben met die foutafhandeling.
$query is niet hetzelfde als $sql
Db verbinding ontbreekt!
Hoe moet ik dat dan doen? Ik maakte altijd gebruik van een "die"-code, maar die is hier streng verboden, begrijp ik. En dat is de enige manier die ik geleerd heb op school...
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
# regel de database:
$mysql['host'] = "localhost";
$mysql['gebruikersnaam'] = "****";
$mysql['wachtwoord'] = "****";
$mysql['database'] = "****";
# Verbind
if((mysql_connect($mysql['host'],$mysql['gebruikersnaam'],$mysql['wachtwoord'])) === false)
{
echo 'Error: Fout met verbinden database.';
}
else
{
if((mysql_select_db($mysql['database'])) === false)
{
echo 'Error: Kon database niet selecteren';
}
}
?>
# regel de database:
$mysql['host'] = "localhost";
$mysql['gebruikersnaam'] = "****";
$mysql['wachtwoord'] = "****";
$mysql['database'] = "****";
# Verbind
if((mysql_connect($mysql['host'],$mysql['gebruikersnaam'],$mysql['wachtwoord'])) === false)
{
echo 'Error: Fout met verbinden database.';
}
else
{
if((mysql_select_db($mysql['database'])) === false)
{
echo 'Error: Kon database niet selecteren';
}
}
?>
zet dit in bijvoorbeeld config.php en include dat bestandje dan op je pagina door middel van include 'config.php';
Gewijzigd op 12/06/2011 14:48:27 door Jasper DS
Ok, dank je wel! Dat "include 'config.php';" (<- precies zo invullen?)moet voor de eerste $sql?
Je moet in elk geval eerst een connectie hebben voordat je een query uitvoert, dus niet noodzakelijk voor $sql, maar wel voor de functie mysql_query(), want die voert de query uit.
Ik weet overigens dat het wat overbodig is om elke query geheel in te vullen, maar dat is voor mij momenteel even ter overzicht, en omdat ik straks nog een paar wijzigingen wil doorvoeren.
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
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
<?php
include 'config.php';
if ($voorwaarde == 'alles') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ALLES LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'auteur') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ACHTERNAAM LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'uitgever') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND UITNR IN (SELECT UITNR FROM UITGEVERS WHERE UITNAAM LIKE "%$zoekterm%"';}
elseif ($voorwaarde == 'isbn') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ISBN LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'serie') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND SERIE LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'onderwerp') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND OWNR IN (SELECT OWNR FROM ONDERWERPEN WHERE ACHTERNAAM LIKE "%$zoekterm%"';}
elseif ($voorwaarde == 'coauteurs') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND COAUTEURSNR IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR2 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR3 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR4 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC"';}
elseif ($voorwaarde == 'provnaam') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND PROVNR IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") OR PROVNR2 IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") OR PROVNR3 IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'drukker') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND DRUKKERNR IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR DRUKKERNR2 IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR DRUKKERNR3 IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
# Check je query
if(($result = mysql_query($sql)) === false)
{
# de query is fout, weergeef in test-fase eventueel mysql_error()
echo' Fout met database!';
}
elseif(mysql_num_rows($result) < 1)
{
echo 'Er zijn geen gegevens gevonden';
}
else
{
echo ("</br></br>");
echo ("<font face='verdana' size='2'><b>Resultaten voor:</b> $voorwaarde = $zoekterm");
echo ("</br></br>");
echo ("<table width='100%'>");
echo ("<tr height='40'><td width='25%' class='tabel'><b>auteur</b></td><td width='60%' class='tabel'><b>titel</b></td><td width='7%' class='tabel'><b>jaar</b></td><td width='8%' class='tabel'><b>exemplaren</b></td></tr>");
while($row = mysql_fetch_row($result))
{
echo ($row["<tr height='20'><td class='tabel'> $achternaam$komma $voornaam $tussenvoegsels </td><td class='tabel'> <a href='$boeknr.htm'>$titel $dubbelpunt $subtitel</a> </td><td class='tabel'> $uitgave </td><td class='tabel'> $aantal_exemplaren </td></tr>"]);
}
echo ("</tabel>");
}
?>
include 'config.php';
if ($voorwaarde == 'alles') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ALLES LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'auteur') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ACHTERNAAM LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'uitgever') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND UITNR IN (SELECT UITNR FROM UITGEVERS WHERE UITNAAM LIKE "%$zoekterm%"';}
elseif ($voorwaarde == 'isbn') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND ISBN LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'serie') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND SERIE LIKE "%$zoekterm%" ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'onderwerp') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND OWNR IN (SELECT OWNR FROM ONDERWERPEN WHERE ACHTERNAAM LIKE "%$zoekterm%"';}
elseif ($voorwaarde == 'coauteurs') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND COAUTEURSNR IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR2 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR3 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR COAUTEURSNR4 IN (SELECT AUTEURNR FROM AUTEURS WHERE ACHTERNAAM LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC"';}
elseif ($voorwaarde == 'provnaam') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND PROVNR IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") OR PROVNR2 IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") OR PROVNR3 IN (SELECT PROVNR FROM PROVENANCE WHERE ACHTERNAAMP LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
elseif ($voorwaarde == 'drukker') {
$sql = 'SELECT ACHTERNAAM, KOMMA, VOORNAAM, TUSSENVOEGSELS, B.BOEKNR, TITEL, DUBBELPUNT, SUBTITEL, UITGAVE, AANTAL_EXEMPLAREN FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E, ISBN AS I WHERE A.AUTEURNR = B.AUTEURNR AND B.BOEKNR = E.BOEKNR AND B.BOEKNR = I.BOEKNR AND DRUKKERNR IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR DRUKKERNR2 IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") OR DRUKKERNR3 IN (SELECT DRUKKERNR FROM DRUKKERS WHERE ACHTERNAAM LIKE "%$zoekterm%") ORDER BY UITGAVE DESC, ACHTERNAAM ASC, TITEL ASC';}
# Check je query
if(($result = mysql_query($sql)) === false)
{
# de query is fout, weergeef in test-fase eventueel mysql_error()
echo' Fout met database!';
}
elseif(mysql_num_rows($result) < 1)
{
echo 'Er zijn geen gegevens gevonden';
}
else
{
echo ("</br></br>");
echo ("<font face='verdana' size='2'><b>Resultaten voor:</b> $voorwaarde = $zoekterm");
echo ("</br></br>");
echo ("<table width='100%'>");
echo ("<tr height='40'><td width='25%' class='tabel'><b>auteur</b></td><td width='60%' class='tabel'><b>titel</b></td><td width='7%' class='tabel'><b>jaar</b></td><td width='8%' class='tabel'><b>exemplaren</b></td></tr>");
while($row = mysql_fetch_row($result))
{
echo ($row["<tr height='20'><td class='tabel'> $achternaam$komma $voornaam $tussenvoegsels </td><td class='tabel'> <a href='$boeknr.htm'>$titel $dubbelpunt $subtitel</a> </td><td class='tabel'> $uitgave </td><td class='tabel'> $aantal_exemplaren </td></tr>"]);
}
echo ("</tabel>");
}
?>
Hoe? Krijg je totaal geen output? Staat error reporting aan?
Wat raar is, want precies dezelfde queries geven buiten dit script om wél resultaat.
Edit: ik merk nu ook dat de queries die een 'IN' gebruiken, geheel niet werken. 'Fout met Database'
test je query's eens in phpmyadmin, pas als ze werken zet je ze in je script.
Dat bedoelde ik, daar werkten ze wel.
Gewijzigd op 12/06/2011 22:21:25 door Jasper DS
Ik zie nergens een postvariabele van hetgeen dat ik de pagina ervoor heb ingevuld en opgestuurd. Ik heb immers geen rijen in mijn database met de waarde $zoekterm
Alle vars in je query moeten buiten quotes, je gebruikt beter (") voor je query's
Maar ik kan gewoon $zoekterm = $_POST["zoekterm"]; en $voorwaarde = $_POST["voorwaarde"]; erin toevoegen?