Hallo allemaal,
Ik heb een tabel met vogelwaarnemingen: in de trant van heggemus, 2 juni
2003, thuis. In de tabel zit een waarnemingID, soortnaam, datum, aantal,
plaats, biezonderheden. Nu heb ik uit die tabel een soortenlijst
gedestillleerd met SELECT DISTINCT. Die lijst heb ik in een
selectieformulier gekregen, en de bedoeling is dat als je een soort
selecteert, dat dan een pagina wordt opgeroepen met daarin de gegevens die
bij die soort horen: dus als je heggemus inpikt, dat je dan in een tabel
ziet dat-ie gezien is op 2 juni 2003 in mijn tuin, maar ook in 3 mei vorig
jaar in Assen etc. Alleen: ik krijg het niet voor elkaar. Het formulier met
de selectie wel. Maar daarna gaat het mis. Heeft iemand een idee waar het
aan ligt? Of kan het gewoon niet: je haalt natuurlijk een variabele uit een
tabel, doet dan net of het een vate waarde is, en je gaat met die vaste
waarde verder zoeken. De resultaten (met de fout) kun je zien op
www.jandijk.nl/php/soortkeuze4.php
Alvast bedankt.
Hieronder staat de code:
<?php
// variabelen initialiseren:
$username = "***";
$password = "***";
$host="localhost";
$dbnaam="***";
$query="SELECT DISTINCT soort FROM vogelwaarnemingen ORDER BY soort";
// query uitbreiden indien soort is doorgegeven
if (!empty($_POST)){
$query .= " WHERE soort='" . $_POSTsoort . "'";
}
// ---- einde initialisatie
$db = mysql_pconnect ("localhost", "***", "***")
or die ("Kan geen verbinding maken met de server");
Mysql_select_db ("***")
or die ("Kan geen database vinden");
?>
<html>
<head>
<title>Een soortenlijst op het scherm tonen</title>
</head>
<body>
<?php
// controleer of pagina voor het eerst wordt geopend, of
// dat de pagina zichzelf heeft aangeroepen
if (empty($_POST)){?>
<h2>Kies een soort</h2>
<form name="form1" action="<?php echo($_SERVER["PHP_SELF"]);?>"
method="post">
soort:
<select name="soort">
<?php
// de selectielijst vullen met beschikbare ID's
$result = mysql_query($query) or die (mysql_error());
while (list($soort) = mysql_fetch_row($result)){
echo("<option value=\"$soort\">$soort</option>\n");
}?>
</select>
<input type="Submit" value="Tonen">
</form>
<?php
}else{
// Als de pagina zichzelf heeft aangeroepen het else-blok uitvoeren
global $soort;
$soort = $_POSTsoort;//hier gaat het dus fout.
//Als ik vierkante haken zet dan verwacht-ie
//een kolom met de vogelnaam.
//Als ik ronde haken zet (zoals ze er nu staan)
// roept-ie iets over een
//ongedefinieerde functie:
//Fatal error: Call to undefined function:
// array()
// in/home/sites/site61/web/php/soortkeuze2.php
// on line 29
echo("<h2>Doorgegeven soort: $soort </h2>\n");
$query="SELECT $soort FROM vogelwaarnemingen";
$result = mysql_query($query) or die (mysql_error());
while (list($waarnemingenID, $soort, $datum, $plaats, $aantal,
$biezonderheden, $extra) =
mysql_fetch_row($result)){
echo
("
<tr>
<td width=5%><font face=Arial, Helvetica, sans-serif
size=2>$waarnemingenID</font></td>
<td width=14%><font face=Arial, Helvetica,
sans-serif size=2>$soort</font></td>
<td width=15%><font face=Arial, Helvetica,
sans-serif size=2>$datum</font></td>
<td width=15%><font face=Arial, Helvetica,
sans-serif size=2>$plaats</font></td>
<td width=15%><div align=center><font face=Arial,
Helvetica, sans-serif size=2>$aantal</font></div></td>
<td windt=36%><font face=Arial, Helvetica,
sans-serif size=2>$biezonderheden</font></td>
</tr>
\n
");
echo("<a href=\"" . $_SERVER["PHP_SELF"] . "\">Andere soort
selecteren</a>");
}
}
// verbinding afsluiten
mysql_close($db);
?>
</body>
</html>

Likes:

Quote