Een order by statement samen met een where clause
Momenteel zit ik met een probleem. Ik heb een website in php gemaakt voor mijn dvd collectie, zodat vrienden kunnen zien welke dvd's ik heb.
Nu heb ik een aantal pagina's gemaakt;
- Op 1 pagina worden alle dvd's weergegeven. Hier heb ik geen problemen om de dvd's op naam te sorteren (oplopend en aflopend) Ik gebruik dan ook geen where clause.
- Dan heb ik een pagina, waar een selectie gemaakt kan worden, bijvoorbeeld dat mensen de dvd's kunnen zien die bijvoorbeeld uit 2006 komen met het genre actie. De dvd's worden goed weergegeven, alleen ik kan geen sorteer commando gebruiken (order by in de query)
Hoe kan ik ervoor zorgen dat ik een where en order by statement in 1 query kan toepassen?
Want als ik dan bijvoorbeeld de "titel" op "aflopend" wil sorteren, zodra de selectie is gemaakt, dan wordt er gemeld dat er geen dvd's zijn gevonden. De selectie wordt dan verwijderd.
Hieronder staat de code waar geen problemen mee zijn, omdat hier geen selectie wordt gemaakt:
-weergeven.php-
<html>
<head>
<title>DVD's weergeven</title>
</head>
<body>
<A HREF="selectie.php"><b>Ga terug</b></A>
<br>
<br>
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
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
<?php
include "connect.php";
if(isset($_GET['sortby']))
{
switch($_GET['sortby'])
{
case 'titel': $sorteer = 'titel'; break;
case 'jaar': $sorteer = 'jaar'; break;
default: $sorteer = 'titel'; break;
}
}
else
{
$sorteer = 'titel';
}
$manier = (isset($_GET['updown']) && $_GET['updown'] == 'DESC') ? 'DESC' : 'ASC';
$query = "SELECT * FROM `dvdrecord` ORDER BY ".$sorteer." ".$manier;
$sql = mysql_query($query) or die ( mysql_error( ) );
echo "<center><table border='1' width='100%' bordercolor='black'>";
echo "<tr><td><b>Titel ";
echo "<A HREF='?sortby=titel&updown=DESC'><img src='omlaag.jpg' align='top'></a>";
echo " ";
echo "<A HREF='?sortby=titel&updown=ASC'><img src='omhoog.jpg' align='top'></a>";
echo "</td><td><b>Jaar";
echo " ";
echo "<A HREF='?sortby=jaar&updown=DESC'><img src='omlaag.jpg'></a>";
echo " ";
echo "<A HREF='?sortby=jaar&updown=ASC'><img src='omhoog.jpg'></a>";
echo "</td><td><b><center>Genre 1</center></td><td><b><center>Genre 2</center></td><td><b><center>Genre 3</center></td><td><b><center>Genre 4</center></td><td><b><center>Genre 5</center></td><td><b><center>Genre 6</center></td><td><b><center>Genre 7</center></td></tr>";
while($record = mysql_fetch_object($sql))
{
$info = "$record->info";
echo "<A HREF='$info'> ";
echo "<tr><td>".$record->titel."</td><td><center>".$record->jaar."</td></center><td><center>".$record->genre1."</td></center><td><center>".$record->genre2."</td></center><td><center>".$record->genre3."</td></center><td><center>".$record->genre4."</td></center><td><center>".$record->genre5."</td></center><td><center>".$record->genre6."</td></center><td><center>".$record->genre7."</td></center>";
}
echo "</table></center>";
?>
include "connect.php";
if(isset($_GET['sortby']))
{
switch($_GET['sortby'])
{
case 'titel': $sorteer = 'titel'; break;
case 'jaar': $sorteer = 'jaar'; break;
default: $sorteer = 'titel'; break;
}
}
else
{
$sorteer = 'titel';
}
$manier = (isset($_GET['updown']) && $_GET['updown'] == 'DESC') ? 'DESC' : 'ASC';
$query = "SELECT * FROM `dvdrecord` ORDER BY ".$sorteer." ".$manier;
$sql = mysql_query($query) or die ( mysql_error( ) );
echo "<center><table border='1' width='100%' bordercolor='black'>";
echo "<tr><td><b>Titel ";
echo "<A HREF='?sortby=titel&updown=DESC'><img src='omlaag.jpg' align='top'></a>";
echo " ";
echo "<A HREF='?sortby=titel&updown=ASC'><img src='omhoog.jpg' align='top'></a>";
echo "</td><td><b>Jaar";
echo " ";
echo "<A HREF='?sortby=jaar&updown=DESC'><img src='omlaag.jpg'></a>";
echo " ";
echo "<A HREF='?sortby=jaar&updown=ASC'><img src='omhoog.jpg'></a>";
echo "</td><td><b><center>Genre 1</center></td><td><b><center>Genre 2</center></td><td><b><center>Genre 3</center></td><td><b><center>Genre 4</center></td><td><b><center>Genre 5</center></td><td><b><center>Genre 6</center></td><td><b><center>Genre 7</center></td></tr>";
while($record = mysql_fetch_object($sql))
{
$info = "$record->info";
echo "<A HREF='$info'> ";
echo "<tr><td>".$record->titel."</td><td><center>".$record->jaar."</td></center><td><center>".$record->genre1."</td></center><td><center>".$record->genre2."</td></center><td><center>".$record->genre3."</td></center><td><center>".$record->genre4."</td></center><td><center>".$record->genre5."</td></center><td><center>".$record->genre6."</td></center><td><center>".$record->genre7."</td></center>";
}
echo "</table></center>";
?>
</body>
</html>
De onderstaande code is de pagina waar de selectie gemaakt wordt (kan hier naar gekeken worden?):
-selectie.php-
<html>
<head></head>
<body>
<table border='1' width='100%'>
<tr>
<td width='33%'>
<strong><em>Zoek een DVD op genre EN jaar:<br><br></em></strong>
<strong><em>Kies een genre:<br><br></em></strong>
<form name='form' method='POST' action='selectie2.php'>
<select name="genremenu">
<OPTION VALUE="" SELECTED></OPTION>
<OPTION VALUE="Actie">Actie</OPTION>
<OPTION VALUE="Avontuur">Avontuur</OPTION>
<OPTION VALUE="Biografie">Biografie</OPTION>
<OPTION VALUE="Cabaret">Cabaret</OPTION>
<OPTION VALUE="Comedie">Comedie</OPTION>
<OPTION VALUE="Documentaire">Documentaire</OPTION>
<OPTION VALUE="Drama">Drama</OPTION>
<OPTION VALUE="Familie">Familie</OPTION>
<OPTION VALUE="Fantasie">Fantasie</OPTION>
<OPTION VALUE="Geschiedenis">Geschiedenis</OPTION>
<OPTION VALUE="Horror">Horror</OPTION>
<OPTION VALUE="Kinderfilm">Kinderfilm</OPTION>
<OPTION VALUE="Misdaad">Misdaad</OPTION>
<OPTION VALUE="Musical">Musical</OPTION>
<OPTION VALUE="Muziek">Muziek</OPTION>
<OPTION VALUE="Mysterie">Mysterie</OPTION>
<OPTION VALUE="Natuurfilm">Natuurfilm</OPTION>
<OPTION VALUE="Oorlog">Oorlog</OPTION>
<OPTION VALUE="Romantiek">Romantiek</OPTION>
<OPTION VALUE="Science Fiction">Science Fiction</OPTION>
<OPTION VALUE="Sport">Sport</OPTION>
<OPTION VALUE="Tekenfilm">Tekenfilm</OPTION>
<OPTION VALUE="Thriller">Thriller</OPTION>
<OPTION VALUE="Western">Western</OPTION>
</SELECT>
<br><br>
<strong><em>Kies een jaar:<br><br></em></strong>
<input type='text' name='jaar' size='4'>
<br>
<br>
<input type='submit' name='Submit' value='verzenden'>
</form>
</td>
<td width='33%'>
<strong><em>Zoek een DVD op genre:<br><br><br><br></em></strong>
<strong><em>Kies een genre:<br><br></em></strong>
<form name='form' method='POST' action='selectiegenre.php'>
<select name="genremenu">
<OPTION VALUE="" SELECTED></OPTION>
<OPTION VALUE="Actie">Actie</OPTION>
<OPTION VALUE="Avontuur">Avontuur</OPTION>
<OPTION VALUE="Biografie">Biografie</OPTION>
<OPTION VALUE="Cabaret">Cabaret</OPTION>
<OPTION VALUE="Comedie">Comedie</OPTION>
<OPTION VALUE="Documentaire">Documentaire</OPTION>
<OPTION VALUE="Drama">Drama</OPTION>
<OPTION VALUE="Familie">Familie</OPTION>
<OPTION VALUE="Fantasie">Fantasie</OPTION>
<OPTION VALUE="Geschiedenis">Geschiedenis</OPTION>
<OPTION VALUE="Horror">Horror</OPTION>
<OPTION VALUE="Kinderfilm">Kinderfilm</OPTION>
<OPTION VALUE="Misdaad">Misdaad</OPTION>
<OPTION VALUE="Musical">Musical</OPTION>
<OPTION VALUE="Muziek">Muziek</OPTION>
<OPTION VALUE="Mysterie">Mysterie</OPTION>
<OPTION VALUE="Natuurfilm">Natuurfilm</OPTION>
<OPTION VALUE="Oorlog">Oorlog</OPTION>
<OPTION VALUE="Romantiek">Romantiek</OPTION>
<OPTION VALUE="Science Fiction">Science Fiction</OPTION>
<OPTION VALUE="Sport">Sport</OPTION>
<OPTION VALUE="Tekenfilm">Tekenfilm</OPTION>
<OPTION VALUE="Thriller">Thriller</OPTION>
<OPTION VALUE="Western">Western</OPTION>
</SELECT>
<br><br>
<br>
<br>
<input type='submit' name='Submit' value='verzenden'>
</form>
</td>
<td width='33%'>
<strong><em>Zoek een DVD op jaar:<br><br><br><br></em></strong>
<form name='form' method='POST' action='selectiejaar.php'>
<strong><em>Kies een jaar:<br><br></em></strong>
<input type='text' name='jaar' size='4'>
<br><br>
<br>
<br>
<input type='submit' name='Submit' value='verzenden'>
</form>
</td>
</tr>
</table>
<A HREF="weergeven.php"><b>Laat alle DVD's weergeven</b></A>
<br>
<A HREF="index.php"><b>Ga terug naar de index pagina</b></A>
</body>
</html>
De onderstaande code is de pagina waar de selectie wordt uitgevoerd en de selectie mooi in een tabel wordt weergeven:
-selectie2.php-
<html>
<head>
<title>DVD's weergeven</title>
</head>
<body>
<A HREF="selectie.php"><b>Ga terug</b></A>
<br>
<br>
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
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
<?php
$keuze= $_POST["genremenu"];
$jaar= $_POST["jaar"];
$genre1= $_POST["genremenu"];
$genre2= $_POST["genremenu"];
$genre3= $_POST["genremenu"];
$genre4= $_POST["genremenu"];
$genre5= $_POST["genremenu"];
$genre6= $_POST["genremenu"];
$genre7= $_POST["genremenu"];
include "connect.php";
if(isset($_GET['sortby']))
{
switch($_GET['sortby'])
{
case 'titel': $sorteer = 'titel'; break;
case 'jaar': $sorteer = 'jaar'; break;
default: $sorteer = 'titel'; break;
}
}
else
{
$sorteer = 'titel';
}
$manier = (isset($_GET['updown']) && $_GET['updown'] == 'DESC') ? 'DESC' : 'ASC';
$query="SELECT * FROM dvdrecord where jaar = '$jaar' AND genre1 = '$genre1' OR jaar = '$jaar' AND genre2 = '$genre2' OR jaar = '$jaar' AND genre3 = '$genre3' OR jaar = '$jaar' AND genre4 = '$genre4' OR jaar = '$jaar' AND genre5 = '$genre5' OR jaar = '$jaar' AND genre6 = '$genre6' OR jaar = '$jaar' AND genre7 = '$genre7' ORDER BY ".$sorteer." ".$manier;
$sql = mysql_query($query) or die ( mysql_error( ) );
if (mysql_fetch_object($sql) == 0)
{
echo "<br>";
echo "<br>";
echo "Er zijn geen dvd's gevonden van dit jaar: ";
echo "<b>$jaar</b>";
echo "<br>";
echo "met het volgende genre: ";
echo "<b>$keuze</b>";
}
else
{
echo "<center><table border='1' width='100%' bordercolor='black'>
<tr><td><b>Titel ";
echo "<A HREF='?sortby=titel&updown=DESC'><img src='omlaag.jpg' align='top'></a>";
echo " ";
echo "<A HREF='?sortby=titel&updown=ASC'><img src='omhoog.jpg' align='top'></a>";
echo "</td><td><b><center>Jaar</center></td><td><b><center>Genre 1</center></td><td><b><center>Genre 2</center></td><td><b><center>Genre 3</center></td><td><b><center>Genre 4</center></td><td><b><center>Genre 5</center></td><td><b><center>Genre 6</center></td><td><b><center>Genre 7</center></td></tr>";
while($record = mysql_fetch_object($sql))
{
$info = "$record->info";
echo "<A HREF='$info'> ";
echo "<tr><td>".$record->titel."</td><td><center>".$record->jaar."</td></center><td><center>".$record->genre1."</td></center><td><center>".$record->genre2."</td></center><td><center>".$record->genre3."</td></center><td><center>".$record->genre4."</td></center><td><center>".$record->genre5."</td></center><td><center>".$record->genre6."</td></center><td><center>".$record->genre7."</td></center>";
}
echo "</table></center>";
}
?>
$keuze= $_POST["genremenu"];
$jaar= $_POST["jaar"];
$genre1= $_POST["genremenu"];
$genre2= $_POST["genremenu"];
$genre3= $_POST["genremenu"];
$genre4= $_POST["genremenu"];
$genre5= $_POST["genremenu"];
$genre6= $_POST["genremenu"];
$genre7= $_POST["genremenu"];
include "connect.php";
if(isset($_GET['sortby']))
{
switch($_GET['sortby'])
{
case 'titel': $sorteer = 'titel'; break;
case 'jaar': $sorteer = 'jaar'; break;
default: $sorteer = 'titel'; break;
}
}
else
{
$sorteer = 'titel';
}
$manier = (isset($_GET['updown']) && $_GET['updown'] == 'DESC') ? 'DESC' : 'ASC';
$query="SELECT * FROM dvdrecord where jaar = '$jaar' AND genre1 = '$genre1' OR jaar = '$jaar' AND genre2 = '$genre2' OR jaar = '$jaar' AND genre3 = '$genre3' OR jaar = '$jaar' AND genre4 = '$genre4' OR jaar = '$jaar' AND genre5 = '$genre5' OR jaar = '$jaar' AND genre6 = '$genre6' OR jaar = '$jaar' AND genre7 = '$genre7' ORDER BY ".$sorteer." ".$manier;
$sql = mysql_query($query) or die ( mysql_error( ) );
if (mysql_fetch_object($sql) == 0)
{
echo "<br>";
echo "<br>";
echo "Er zijn geen dvd's gevonden van dit jaar: ";
echo "<b>$jaar</b>";
echo "<br>";
echo "met het volgende genre: ";
echo "<b>$keuze</b>";
}
else
{
echo "<center><table border='1' width='100%' bordercolor='black'>
<tr><td><b>Titel ";
echo "<A HREF='?sortby=titel&updown=DESC'><img src='omlaag.jpg' align='top'></a>";
echo " ";
echo "<A HREF='?sortby=titel&updown=ASC'><img src='omhoog.jpg' align='top'></a>";
echo "</td><td><b><center>Jaar</center></td><td><b><center>Genre 1</center></td><td><b><center>Genre 2</center></td><td><b><center>Genre 3</center></td><td><b><center>Genre 4</center></td><td><b><center>Genre 5</center></td><td><b><center>Genre 6</center></td><td><b><center>Genre 7</center></td></tr>";
while($record = mysql_fetch_object($sql))
{
$info = "$record->info";
echo "<A HREF='$info'> ";
echo "<tr><td>".$record->titel."</td><td><center>".$record->jaar."</td></center><td><center>".$record->genre1."</td></center><td><center>".$record->genre2."</td></center><td><center>".$record->genre3."</td></center><td><center>".$record->genre4."</td></center><td><center>".$record->genre5."</td></center><td><center>".$record->genre6."</td></center><td><center>".$record->genre7."</td></center>";
}
echo "</table></center>";
}
?>
</body>
</html>
Dus het probleem dat ik heb:
Hoe kan ik ervoor zorgen dat ik een order by clause samen met een where clause kan uitvoeren, zodat de selectie nog steeds blijft? Niet dat als ik wil sorteren op naam, dat de selectie weggaat.
Alvast bedankt!
Greetz,
Bart
wil je best helpen alleen om welk stukje code gaat het? (alleen de query die je wilt uitvoeren die niet goed gaat)
Nederlands:
Selecteer kolomnaam vanuit tabelnaam waar de kolomnaam de waarde 'waarde' heeft en sorteer de rest op anderekolomnaam.
de rest = de resultaten :)
Je gebruikt backticks in je sql query deze kan je beter weg halen, daarnaast je gebruikt de functie fetch_object. fetch_array en fetch_assoc werken sneller. Nog iets je maakt vrij lange query's met AND en OR gebruik dan ook ( ) eromheen nu kan je die code amper lezen.
edit:
in je query wil je overal het zelfde jaar hebben waarom zet je dat er 10x in? je kan ook gewoon (jaar = '$jaar') AND (genre = 'iets' OR genre = 'nog iets' OR genre = 'nog iets') gebruiken in dat geval is stuk duidelijker..
Pascal schreef op 23.05.2008 11:49:
wil je best helpen alleen om welk stukje code gaat het? (alleen de query die je wilt uitvoeren die niet goed gaat)
om dit stukje:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if(isset($_GET['sortby']))
{
switch($_GET['sortby'])
{
case 'titel': $sorteer = 'titel'; break;
case 'jaar': $sorteer = 'jaar'; break;
default: $sorteer = 'titel'; break;
}
}
else
{
$sorteer = 'titel';
}
$manier = (isset($_GET['updown']) && $_GET['updown'] == 'DESC') ? 'DESC' : 'ASC';
$query="SELECT * FROM dvdrecord where jaar = '$jaar' AND genre1 = '$genre1' OR jaar = '$jaar' AND genre2 = '$genre2' OR jaar = '$jaar' AND genre3 = '$genre3' OR jaar = '$jaar' AND genre4 = '$genre4' OR jaar = '$jaar' AND genre5 = '$genre5' OR jaar = '$jaar' AND genre6 = '$genre6' OR jaar = '$jaar' AND genre7 = '$genre7' ORDER BY ".$sorteer." ".$manier;
?>
if(isset($_GET['sortby']))
{
switch($_GET['sortby'])
{
case 'titel': $sorteer = 'titel'; break;
case 'jaar': $sorteer = 'jaar'; break;
default: $sorteer = 'titel'; break;
}
}
else
{
$sorteer = 'titel';
}
$manier = (isset($_GET['updown']) && $_GET['updown'] == 'DESC') ? 'DESC' : 'ASC';
$query="SELECT * FROM dvdrecord where jaar = '$jaar' AND genre1 = '$genre1' OR jaar = '$jaar' AND genre2 = '$genre2' OR jaar = '$jaar' AND genre3 = '$genre3' OR jaar = '$jaar' AND genre4 = '$genre4' OR jaar = '$jaar' AND genre5 = '$genre5' OR jaar = '$jaar' AND genre6 = '$genre6' OR jaar = '$jaar' AND genre7 = '$genre7' ORDER BY ".$sorteer." ".$manier;
?>
en dit stukje:
Code (php)
klopt het onderste stukje?
Gewijzigd op 01/01/1970 01:00:00 door Bart
Pascal schreef op 23.05.2008 11:58:
ja en dan eventueel de methode nog standaard wordt ASC uitgevoerd
Je gebruikt backticks in je sql query deze kan je beter weg halen, daarnaast je gebruikt de functie fetch_object. fetch_array en fetch_assoc werken sneller. Nog iets je maakt vrij lange query's met AND en OR gebruik dan ook ( ) eromheen nu kan je die code amper lezen.
edit:
in je query wil je overal het zelfde jaar hebben waarom zet je dat er 10x in? je kan ook gewoon (jaar = '$jaar') AND (genre = 'iets' OR genre = 'nog iets' OR genre = 'nog iets') gebruiken in dat geval is stuk duidelijker..
Je gebruikt backticks in je sql query deze kan je beter weg halen, daarnaast je gebruikt de functie fetch_object. fetch_array en fetch_assoc werken sneller. Nog iets je maakt vrij lange query's met AND en OR gebruik dan ook ( ) eromheen nu kan je die code amper lezen.
edit:
in je query wil je overal het zelfde jaar hebben waarom zet je dat er 10x in? je kan ook gewoon (jaar = '$jaar') AND (genre = 'iets' OR genre = 'nog iets' OR genre = 'nog iets') gebruiken in dat geval is stuk duidelijker..
nee dat kan niet, want een film kan bij mij 7 genres bevatten
Gewijzigd op 01/01/1970 01:00:00 door Bart
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$query = "SELECT * "
. "FROM dvdrecord "
. "WHERE (jaar = '".$jaar."') "
. "AND ("
. "genre1 = '".$genre1."' "
. "OR genre2 = '".$genre2."' "
. "OR genre3 = '".$genre3."' "
. "OR genre4 = '".$genre4."' "
. "OR genre5 = '".$genre5."' "
. "OR genre6 = '".$genre6."' "
. "OR genre7 = '".$genre7."') "
. "ORDER BY ".$sorteer." ".$manier.";";
. "FROM dvdrecord "
. "WHERE (jaar = '".$jaar."') "
. "AND ("
. "genre1 = '".$genre1."' "
. "OR genre2 = '".$genre2."' "
. "OR genre3 = '".$genre3."' "
. "OR genre4 = '".$genre4."' "
. "OR genre5 = '".$genre5."' "
. "OR genre6 = '".$genre6."' "
. "OR genre7 = '".$genre7."') "
. "ORDER BY ".$sorteer." ".$manier.";";
zou gewoon moeten werken alleen die * lijkt me niet nodig?
if (mysql_fetch_object($sql) == 0)
zou moeten zijn mysql_num_rows($sql)
Pascal schreef op 23.05.2008 11:49:
wil je best helpen alleen om welk stukje code gaat het? (alleen de query die je wilt uitvoeren die niet goed gaat)
de query wordt wel goed uitgevoerd, alleen als ik dan op sorteren klik, dan gaat de selectie, die dan van de dvd's is gemaakt weg. Dus de tabel wordt dan leeggemaakt.
Pascal schreef op 23.05.2008 12:19:
zou gewoon moeten werken alleen die * lijkt me niet nodig? je roept alleen titel op..
if (mysql_fetch_object($sql) == 0)
zou moeten zijn mysql_num_rows($sql)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$query = "SELECT * "
. "FROM dvdrecord "
. "WHERE (jaar = '".$jaar."') "
. "AND ("
. "genre1 = '".$genre1."' "
. "OR genre2 = '".$genre2."' "
. "OR genre3 = '".$genre3."' "
. "OR genre4 = '".$genre4."' "
. "OR genre5 = '".$genre5."' "
. "OR genre6 = '".$genre6."' "
. "OR genre7 = '".$genre7."') "
. "ORDER BY ".$sorteer." ".$manier.";";
. "FROM dvdrecord "
. "WHERE (jaar = '".$jaar."') "
. "AND ("
. "genre1 = '".$genre1."' "
. "OR genre2 = '".$genre2."' "
. "OR genre3 = '".$genre3."' "
. "OR genre4 = '".$genre4."' "
. "OR genre5 = '".$genre5."' "
. "OR genre6 = '".$genre6."' "
. "OR genre7 = '".$genre7."') "
. "ORDER BY ".$sorteer." ".$manier.";";
zou gewoon moeten werken alleen die * lijkt me niet nodig? je roept alleen titel op..
if (mysql_fetch_object($sql) == 0)
zou moeten zijn mysql_num_rows($sql)
ja klopt dat was fout if (mysql_fetch_object($sql) == 0)
Gewijzigd op 01/01/1970 01:00:00 door Bart
edit: niet dubbel posten krijg je gezeur mee, is het nu opgelost?
Bart schreef op 23.05.2008 12:09:
Oei, normaliseren maar!nee dat kan niet, want een film kan bij mij 7 genres bevatten
Snap alleen niet waarom je niet gewoon een extra tabbel maakt die je genre noemt en vervolgens hier de genre's in zet. En je maakt ook een koppel tabbel waarin je de albums zet met daarbij bij welke genre's ze horen..
Pascal schreef op 23.05.2008 12:23:
dan gaat er iets mis want je zegt eerst doet ie het wel en als je daarna op dezelfde pagina komt niet? zet error_reporting eens aan wat voor fouten komen er allemaal naar boven?
edit: niet dubbel posten krijg je gezeur mee, is het nu opgelost?
edit: niet dubbel posten krijg je gezeur mee, is het nu opgelost?
nee het is nog niet opgelost :s
volgens mij bedoelen jullie iets anders, dan dat ik bedoel :p
als ik wil sorteren (dus een tabel)
|titel ^v|jaar ^v|genre1|genre2|genre3|genre4|genre5|genre6|genre7|
-----------------------------------------------------------------------------------
|300 |2006 |actie |drama |oorlog | | | | |
en dan als ik op het pijltje ^ naast "titel" klik dan wordt de tabel leeggemaakt, omdat de query:
SELECT * FROM dvdrecord where (jaar = '$jaar' AND genre1 = '$genre1') OR (jaar = '$jaar' AND genre2 = '$genre2') OR (jaar = '$jaar' AND genre3 = '$genre3') OR (jaar = '$jaar' AND genre4 = '$genre4') OR (jaar = '$jaar' AND genre5 = '$genre5') OR (jaar = '$jaar' AND genre6 = '$genre6') OR (jaar = '$jaar' AND genre7 = '$genre7') ORDER BY ".$sorteer." ".$manier;
op 1 of andere manier niet meer wordt uitgelezen, dus dan haalt ie de tabel leeg :s
Pascal schreef op 23.05.2008 12:23:
dan gaat er iets mis want je zegt eerst doet ie het wel en als je daarna op dezelfde pagina komt niet? zet error_reporting eens aan wat voor fouten komen er allemaal naar boven?
edit: niet dubbel posten krijg je gezeur mee, is het nu opgelost?
edit: niet dubbel posten krijg je gezeur mee, is het nu opgelost?
hij geeft de foutmelding:
Notice: Undefined index: genremenu in C:\wamp\www\selectie2.php on line 11
maar dat kan geen kwaad
Gewijzigd op 01/01/1970 01:00:00 door Bart
Quote:
|titel ^v|jaar ^v|genre1|genre2|genre3|genre4|genre5|genre6|genre7|
Tip: Ga normaliseren, jouw huidige datamodel lijkt helemaal nergens op. Daar kun je nauwelijks wat mee, vooral debuggen en het zoeken van workarounds zul jij je mee bezig gaan houden. En dat is met een goed datamodel nergens voor nodig.
Steek er nu wat extra tijd in, dat verdien je straks dubbel en dwars weer terug.
pgFrank schreef op 23.05.2008 12:51:
Tip: Ga normaliseren, jouw huidige datamodel lijkt helemaal nergens op. Daar kun je nauwelijks wat mee, vooral debuggen en het zoeken van workarounds zul jij je mee bezig gaan houden. En dat is met een goed datamodel nergens voor nodig.
Steek er nu wat extra tijd in, dat verdien je straks dubbel en dwars weer terug.
Quote:
|titel ^v|jaar ^v|genre1|genre2|genre3|genre4|genre5|genre6|genre7|
Tip: Ga normaliseren, jouw huidige datamodel lijkt helemaal nergens op. Daar kun je nauwelijks wat mee, vooral debuggen en het zoeken van workarounds zul jij je mee bezig gaan houden. En dat is met een goed datamodel nergens voor nodig.
Steek er nu wat extra tijd in, dat verdien je straks dubbel en dwars weer terug.
het heeft niets met normaliseren te maken
dat heb ik allang al goed uitgezocht
Pascal schreef op 23.05.2008 12:31:
Snap alleen niet waarom je niet gewoon een extra tabbel maakt die je genre noemt en vervolgens hier de genre's in zet. En je maakt ook een koppel tabbel waarin je de albums zet met daarbij bij welke genre's ze horen..
pascal, zal ik anders mijn website ff naar je email sturen in een rar bestand met de database erbij, zodat je ffies naar mijn probleem kan kijken??
Quote:
het heeft niets met normaliseren te maken
dat heb ik allang al goed uitgezocht
dat heb ik allang al goed uitgezocht
Oh ja? Dan ben je toch ergens goed de fout in gegaan. Het datamodel dat je nu gebruikt is namelijk hardstikke fout en zal alleen maar voor bugs zorgen. Dit is vragen om problemen en zorgt voor vele uren extra werk om hier allemaal lapmiddelen voor te verzinnen als je eenmaal op het punt gekomen bent dat je je datamodel eigenlijk niet meer kunt veranderen.
Simpele queries zoals bijvoorbeeld het ophalen van alle titels die het genre 'actie' hebben wordt een drama. Dit kan bij jou namelijk in 1 van de 7 genre kolommen zitten terwijl die gegevens in een goed genormaliseerde database gewoon in 1 kolom te vinden zijn. En dit is nog maar een heel eenvoudig voorbeeldje...
Volg de tip van Frank op en ga eerst eens (goed) normaliseren, daarmee bespaar je jezelf in de toekomst een hoop frustratie.
hoe kan ik dat dan oplossen als een titel 7 genres heeft? dan moet ik het tog op deze manier wel doen?