ORDER BY variabele
<HTML>
<HEAD>
</HEAD>
<BODY>
Sorteer het repertoire op <SELECT NAME = "Sortby">
<FORM ACTION = "repertoire.php" METHOD = GET>
<OPTION VALUE = "">kies een optie</OPTION>
<OPTION VALUE = "pagina">paginanummer</OPTION>
<OPTION VALUE = "titel">titel</OPTION>
<OPTION VALUE = "componist">componist/arrangeur</OPTION>
<OPTION VALUE = "project">project</OPTION>
</SELECT>
<INPUT TYPE = SUBMIT NAME = "SUBMIT" VALUE = "Verzenden!">
<BR><BR>
<table border='0' cellpadding='0' cellspacing='10' style='border-collapse: collapse' bordercolor='#111111' width='100%'>
<tr>
<th width='5%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial' size='2'>Naam</font></b></i></th>
<th width='5%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial' size='2'>Naam</font></b></i></th>
<th width='50%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial' size='2'>Naam</font></b></i></th>
<th width='20%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial' size='2'>Telefoon</font></b></i></th>
<th width='20%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial' size='2'>
E-mailadres</font></b></i></th>
</tr>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
$sql = "SELECT * FROM repertoire ORDER BY $Sortby";
$result = mysql_query($sql);
#voert de query uit
while ($row = mysql_fetch_array($result))
echo ("<td>$row[jaar]</td><td> $row[pagina]</td><td> $row[titel]</td><td> $row[componist] </td><td> $row[project]</td>");
?>
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
$sql = "SELECT * FROM repertoire ORDER BY $Sortby";
$result = mysql_query($sql);
#voert de query uit
while ($row = mysql_fetch_array($result))
echo ("<td>$row[jaar]</td><td> $row[pagina]</td><td> $row[titel]</td><td> $row[componist] </td><td> $row[project]</td>");
?>
</BODY>
</HTML>
</BODY>
</HTML>
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/w/wfnet.nl/HTML/repertoire.php on line 35
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/w/wfnet.nl/HTML/repertoire.php on line 35
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
#kiest de database
if($Sortby==""){
$Sortby="titel";
}
$sql = "SELECT * FROM repertoire ORDER BY `$Sortby`";
?>
#kiest de database
if($Sortby==""){
$Sortby="titel";
}
$sql = "SELECT * FROM repertoire ORDER BY `$Sortby`";
?>
Gewijzigd op 16/08/2004 23:53:00 door Bram Z
Dank Bram! Dit werkt. Nu zit ik alleen nog met het probleem dat, als je een keuze maakt voor een sorteercriterium, dit niet overgenomen wordt in het script (althans, ik krijg geen nieuw gesorteerde output). Ik blijk dus twee problemen te hebben...
<form action="repertoire.php" method="GET">
<select name="Sortby">
<option value="titel">kies een optie</option>
<option value="pagina">paginanummer</option>
<option value="titel">titel</option>
<option value="componist">componist/arrangeur</option>
<option value="project">project</option>
</select>
<imput type="submit" value="Verzenden!">
</form>
En waarom zet gij alles in hoofdletters ?
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM ACTION = "repertoire.php" METHOD = "GET">
Sorteer het repertoire op <SELECT NAME = "Sortby">
<OPTION VALUE = "titel">kies een optie</OPTION>
<OPTION VALUE = "pagina">paginanummer</OPTION>
<OPTION VALUE = "titel">titel</OPTION>
<OPTION VALUE = "componist">componist/arrangeur</OPTION>
<OPTION VALUE = "project">project</OPTION>
</SELECT>
<INPUT TYPE = "SUBMIT" VALUE = "Verzenden!">
</FORM>
<BR><BR>
<table border='0' cellpadding='0' cellspacing='10' style='border-collapse: collapse'
bordercolor='#111111' width='100%'>
<tr>
<th width='5%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial'
size='2'>Jaar</font></b></i></th>
<th width='5%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial'
size='2'>Pagina</font></b></i></th>
<th width='50%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial'
size='2'>Titel</font></b></i></th>
<th width='20%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial'
size='2'>Componist</font></b></i></th>
<th width='20%' bgcolor='#FFFFFF' align='left'><i><b><font face='Arial' size='2'>
Project</font></b></i></th>
</tr>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
if($Sortby==""){
$Sortby="titel";
}
$sql = "SELECT * FROM repertoire ORDER BY '$Sortby'";
$result = mysql_query($sql);
#voert de query uit
while ($row = mysql_fetch_array($result))
echo ("<tr><td>$row[jaar]</td><td> $row[pagina]</td><td> $row[titel]</td><td>
$row[componist] </td><td> $row[project]</td></tr>");
mysql_free_result($result);
mysql_close($db);
?>
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
if($Sortby==""){
$Sortby="titel";
}
$sql = "SELECT * FROM repertoire ORDER BY '$Sortby'";
$result = mysql_query($sql);
#voert de query uit
while ($row = mysql_fetch_array($result))
echo ("<tr><td>$row[jaar]</td><td> $row[pagina]</td><td> $row[titel]</td><td>
$row[componist] </td><td> $row[project]</td></tr>");
mysql_free_result($result);
mysql_close($db);
?>
</TABLE>
</BODY>
</HTML>
Heb al van alles geprobeerd, maar niets lukt. De waarde uit het keuzemenu wordt overigens wel gewoon weergegeven als repertoire.php&Sortby=project (bijvoorbeeld). Wie weet raad??
->
<FORM ACTION = "repertoire.php" METHOD = "POST">
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
?>
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
?>
->
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
$Sortby = $_POST['Sorby'];
?>
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
$Sortby = $_POST['Sorby'];
?>
Probeer het zo is...
?>
Dank Bart! Het werkt!
<FORM ACTION = "repertoire.php" METHOD = "POST">
->
<FORM ACTION = "repertoire.php" METHOD = "GET">
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
?>
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
?>
->
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
$Sortby = $_GET['Sorby'];
?>
require ("../db_access.php");//haalt gebruikersgegevens voor de database op
$db = mysql_connect($Host, $Gebruiker, $Wachtwoord);
# opent de verbinding
mysql_select_db($DBnaam, $db);
#kiest de database
$Sortby = $_GET['Sorby'];
?>
Dan zien de gebruikers wel wat je doorvoerd ... let daar op he? :)
Zover ik weet is het in sommige gevallen veiliger om POST te gebruiken....
Get geeft zover ik weet de mogelijkheid om de pagina te bookmarken. Waarom zou get minder veilig zijn? Iets anders dan de voorgeprogrammeerde opties kunnen met deze pagina toch niet worden uitgevoerd?
Get is minder veilig omdat speciaal voor belangrijke gegevens als passworden. Maar ook grote lappen tekst niet zichtbaar zijn in de url en dus ook niet te vinden is in je de serverlogs. Dit maakt allles iets minder hack gevoelig. Al hoewel een slechte script dat geprogrameert is met post is altijd onveiliger dan een goed geprogrameerde script met GET.
Hier in dit geval is GET beter