switch statement - PHP: 2 switches don't interact well with each other -
i can't make both switches work, it's either 1 or other. on page list.php, there's table gets members "t_leden". if user clicks on of links, sorts (id, name, address, etc.)
it sorting alright until added new switch show men/women/etc. now, can show men , women, can't sort anymore.
i'm clueless.
this sql:
-- phpmyadmin sql dump -- version 3.3.9 -- http://www.phpmyadmin.net -- -- machine: localhost -- genereertijd: 23 feb 2011 om 10:58 -- serverversie: 5.5.8 -- php-versie: 5.3.5 set sql_mode="no_auto_value_on_zero"; -- -- database: `db_school` -- -- -------------------------------------------------------- -- -- tabelstructuur voor tabel `t_leden` -- create table if not exists `t_leden` ( `d_index` int(11) not null auto_increment, `d_naam` varchar(255) not null, `d_voornaam` varchar(255) not null, `d_adres` varchar(255) not null, `d_peter` varchar(255) not null, `d_lid` varchar(255) not null, `d_geslacht` enum('man','vrouw') not null, `d_betaald` date not null, `d_gdatum` date not null, `d_zichtbaar` tinyint(1) not null default '1', primary key (`d_index`) ) engine=myisam default charset=latin1 auto_increment=9 ; -- -- gegevens worden uitgevoerd voor tabel `t_leden` -- insert `t_leden` (`d_index`, `d_naam`, `d_voornaam`, `d_adres`, `d_peter`, `d_lid`, `d_geslacht`, `d_betaald`, `d_gdatum`, `d_zichtbaar`) values (2, 'ed-damgha', 'shakira', 'wilrijk', 'vlad', 'gewoon lid', 'vrouw', '2011-02-15', '1992-05-19', 1), (1, 'polianskii', 'vlad', 'antwerpen', 'tuplad', 'bestuurslid', 'man', '2011-02-01', '1990-08-04', 1), (3, 'sandru', 'raoul', 'hoboken', 'kevin', 'gewoon lid', 'man', '2011-02-11', '1990-07-18', 1);
this php:
<?php include_once("config.inc.php"); ?> <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>ledenlijst</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta name="generator" content="geany 0.20" /> </head> <body> <h1 style="text-align: center">ledenlijst</h1> <br /><? echo $menu ?><br /> <p style="text-align:center"> <select name="sorteer_methode" onchange="location.href='list.php?toon='+this.options[this.selectedindex].value"> <option>------------</option> <option value="mannen">mannen</option> <option value="vrouwen">vrouwen</option> <option value="bestuur">bestuursleden</option> </select></p> <table align="center" border="1"> <tr> <td><b><a href="list.php?sortby=index">id</a></b></td> <td><b><a href="list.php?sortby=naam">naam</a></b></td> <td><b><a href="list.php?sortby=voornaam">voornaam</a></b></td> <td><b><a href="list.php?sortby=adres">adres</a></b></td> <td><b><a href="list.php?sortby=peter">peter</a></b></td> <td><b><a href="list.php?sortby=lid">soort lid</a></b></td> <td><b><a href="list.php?sortby=betaald">laatst betaald</a></b></td> <td><b><a href="list.php?sortby=gdatum">geboortedatum</a></b></td> <td></td> </tr> <?php /* een switch om sorteren makkelijk te maken */ switch(isset($_get['sortby']) ? $_get['sortby'] : (isset($_get['toon']) ? $_get['toon'] : null)) { case 'name': $result=mysql_query("select d_index,d_naam,d_voornaam,d_geslacht,d_adres,d_peter,d_lid,d_betaald,d_gdatum t_leden d_zichtbaar = '1' order d_".$_get['sortby']) or die(mysql_error()); break; /* een switch om enkel vrouwen, mannen of bestuursleden te laten zien */ case 'mannen': $result=mysql_query("select d_index,d_naam,d_voornaam,d_geslacht,d_adres,d_peter,d_lid,d_betaald,d_gdatum t_leden d_geslacht = 'man' , d_zichtbaar = '1' order d_index") or die(mysql_error()); break; case 'vrouwen': $result=mysql_query("select d_index,d_naam,d_voornaam,d_geslacht,d_adres,d_peter,d_lid,d_betaald,d_gdatum t_leden d_zichtbaar = '1' , d_geslacht = 'vrouw' order d_index") or die(mysql_error()); break; case 'bestuur': $result=mysql_query("select d_index,d_naam,d_voornaam,d_geslacht,d_adres,d_peter,d_lid,d_betaald,d_gdatum t_leden d_zichtbaar = '1' , d_lid = 'bestuurslid' order d_index") or die(mysql_error()); break; default: $result=mysql_query("select d_index,d_naam,d_voornaam,d_geslacht,d_adres,d_peter,d_lid,d_betaald,d_gdatum t_leden d_zichtbaar = '1' order d_index") or die(mysql_error()); } /* een loop om leden te tonen */ while($row=mysql_fetch_array($result)) { echo "<tr>"; echo "<td>".htmlspecialchars($row['d_index'])."</td>"; echo "<td>".htmlspecialchars($row['d_naam'])."</td>"; echo "<td>".htmlspecialchars($row['d_voornaam'])."</td>"; echo "<td>".htmlspecialchars($row['d_adres'])."</td>"; echo "<td>".htmlspecialchars($row['d_peter'])."</td>"; echo "<td>".htmlspecialchars($row['d_lid'])."</td>"; echo "<td>".htmlspecialchars($row['d_betaald'])."</td>"; echo "<td>".htmlspecialchars($row['d_gdatum'])."</td>"; echo "<td><a href=del.php?del=".htmlspecialchars($row['d_index']).">verwijder</a></td>"; echo "</tr>"; } ?> </table> </body> </html> <?php mysql_close($connect); ?>
first mistake:
'naam'
<td><b><a href="list.php?sortby=naam">naam</a></b></td>
vs. 'name'
switch(...) { case 'name':
Comments
Post a Comment