Hallo zusammen, da ich seit gestern an einem Problem knobele und damit nicht weiterkomme, hab ich mich hier angemeldet, in der Hoffnung, das mir hier jemand vielleicht das Brett vorm Kopf wegnimmt, 
Kurz, worum es mir geht. Ich hat eine MYSQL-Datenbank mit Bildinformationen, aus der ich gerne in zwei Schritten bestimmte Datensätze herausfiltern möchte...
Schritt eins ist mittels eines HMTL-Formulars eine erste Vorauswahl zu treffen nach den Kriterien Aufnahmeort und Aufnahmezeitraum, das hab ich auch hinbekommen.
Das ist das Ergebnis von Schritt eins, ausgegeben wird die bildnr und jeweils davor eine checkbox gesetzt, womit ich die weitere Auswahl treffen und die dann per Formular weitergeben möchte.
<form action='tierbilder1.php' method ='post'>
<?php
$ergebnis=mysql_query($anfrage) or die ("Fehlermeldung=".mysql_error());
echo "<p>Gefundene Tiere: ";
echo mysql_num_rows($ergebnis)."</p>";
echo "</p>";
echo"<table border='1' width='90 %'>";
echo "<th>Auswählen</th><th>Tiernr.</th>";
for ($i=0;$i<mysql_num_fields($ergebnis);$i++) ;
while ($row=mysql_fetch_assoc($ergebnis))
{ echo "<tr align='center'>";
echo '<td><input type="checkbox" name="bildauswahl" value='.$row['bildnr'].'></input></td>';
echo '<td><input type="text" name="bildnr" value='.$row['bildnr'].'></input></td><tr>';}
echo '<tr><td><input type="submit" value="Abfrage"></input></td>';
echo '<td><input type="reset"
value="Zurücksetzen"></input><td></tr>';
</table>
?>
</form>
Bis hierher funktioniert das so wie gedacht.
Das ist der Textauszug von tierbilder1.php.
<?php
$anfrage="SELECT DISTINCT b.bildnr FROM bilder b,
where b.bildnr = ('$_POST[bildauswahl]')
group by b.bildnr order by b.bildnr ";
$ergebnis=mysql_query($anfrage) or die ("Fehlermeldung=".mysql_error());
echo "<p>Gefundene Tiere: ";
echo mysql_num_rows($ergebnis)."</p>";
echo "</p>";
echo"<table border='1' width='90 %'>";
echo "<th>Auswählen</th><th>Tiernr.</th>";
for ($i=0;$i<mysql_num_fields($ergebnis);$i++) ;
while ($row=mysql_fetch_assoc($ergebnis))
{ echo "<tr align='center'>";
echo '<td>'.$row['bildnr'].'</td></tr>';}
echo "</tr>";
echo "</table>";
mysql_free_result($ergebnis); mysql_close();
?>
Leider erfolgt die Auswertung hier nicht wie erwünscht. Das Problem ist, das immer nur der Datensatz mit der höchsten Nummer als Ausgabe angezeigt wird, auch wenn ich vorher mehrere Checkboxen angeklickt hab, irgendwas scheint also mit dem Namen oder dem Value der Checkbox nicht zu stimmen. Der Name der Checkbox ist ja immer der gleiche, ich vermute, das es daran liegt, weiß aber nicht, wie ich den z. B. über eine Variable im oberen Script vergeben und im unteren Script abfragen kann, vielleicht würde dieses mein Problem lösen.
Ich würde mich freuen, wenn jemand eine Idee hätte, die das Problem löst...

Kurz, worum es mir geht. Ich hat eine MYSQL-Datenbank mit Bildinformationen, aus der ich gerne in zwei Schritten bestimmte Datensätze herausfiltern möchte...
Schritt eins ist mittels eines HMTL-Formulars eine erste Vorauswahl zu treffen nach den Kriterien Aufnahmeort und Aufnahmezeitraum, das hab ich auch hinbekommen.
Das ist das Ergebnis von Schritt eins, ausgegeben wird die bildnr und jeweils davor eine checkbox gesetzt, womit ich die weitere Auswahl treffen und die dann per Formular weitergeben möchte.
<form action='tierbilder1.php' method ='post'>
<?php
$ergebnis=mysql_query($anfrage) or die ("Fehlermeldung=".mysql_error());
echo "<p>Gefundene Tiere: ";
echo mysql_num_rows($ergebnis)."</p>";
echo "</p>";
echo"<table border='1' width='90 %'>";
echo "<th>Auswählen</th><th>Tiernr.</th>";
for ($i=0;$i<mysql_num_fields($ergebnis);$i++) ;
while ($row=mysql_fetch_assoc($ergebnis))
{ echo "<tr align='center'>";
echo '<td><input type="checkbox" name="bildauswahl" value='.$row['bildnr'].'></input></td>';
echo '<td><input type="text" name="bildnr" value='.$row['bildnr'].'></input></td><tr>';}
echo '<tr><td><input type="submit" value="Abfrage"></input></td>';
echo '<td><input type="reset"
value="Zurücksetzen"></input><td></tr>';
</table>
?>
</form>
Bis hierher funktioniert das so wie gedacht.
Das ist der Textauszug von tierbilder1.php.
<?php
$anfrage="SELECT DISTINCT b.bildnr FROM bilder b,
where b.bildnr = ('$_POST[bildauswahl]')
group by b.bildnr order by b.bildnr ";
$ergebnis=mysql_query($anfrage) or die ("Fehlermeldung=".mysql_error());
echo "<p>Gefundene Tiere: ";
echo mysql_num_rows($ergebnis)."</p>";
echo "</p>";
echo"<table border='1' width='90 %'>";
echo "<th>Auswählen</th><th>Tiernr.</th>";
for ($i=0;$i<mysql_num_fields($ergebnis);$i++) ;
while ($row=mysql_fetch_assoc($ergebnis))
{ echo "<tr align='center'>";
echo '<td>'.$row['bildnr'].'</td></tr>';}
echo "</tr>";
echo "</table>";
mysql_free_result($ergebnis); mysql_close();
?>
Leider erfolgt die Auswertung hier nicht wie erwünscht. Das Problem ist, das immer nur der Datensatz mit der höchsten Nummer als Ausgabe angezeigt wird, auch wenn ich vorher mehrere Checkboxen angeklickt hab, irgendwas scheint also mit dem Namen oder dem Value der Checkbox nicht zu stimmen. Der Name der Checkbox ist ja immer der gleiche, ich vermute, das es daran liegt, weiß aber nicht, wie ich den z. B. über eine Variable im oberen Script vergeben und im unteren Script abfragen kann, vielleicht würde dieses mein Problem lösen.
Ich würde mich freuen, wenn jemand eine Idee hätte, die das Problem löst...

Kommentar