Hallo
ich möchte gern eine Webseite programmieren, wo man Bilder bewerten kann. Die Daten zu den Bildern sind in einer MySql Datenbank abgelegt
folgenden Code hab ich schon:
das Problem, was ich jetzt habe ist, daß wenn ich auf bewerten klicke für newvote nix übergeben wird - das seh ich auch in der URL.
Erst beim zweiten mal auf bewerten klicken wird der Wert übergeben, der eigentlich beim ersten Vote hätte übergeben werden sollen und so setzt sich das permanent fort - also es wird immer der Wert übergeben, der eigentlich beim vorhergehenden abschicken hätte übergeben werden sollen.
Was hab ich falsch gemacht?
ich möchte gern eine Webseite programmieren, wo man Bilder bewerten kann. Die Daten zu den Bildern sind in einer MySql Datenbank abgelegt
folgenden Code hab ich schon:
PHP-Code:
<html>
<head>
<?php
function db_connect()
{
// Datenbank öffnen
$db = @mysql_connect('localhost', 'root', '') or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden");
mysql_select_db("ba_students",$db);
}
function zeige_bild($bildindex)
{
$sql_datei = "SELECT datei FROM auswertung WHERE id='$bildindex'";
$result = mysql_query($sql_datei);
$dateiname = mysql_result($result, 0, "datei");
echo ("Hier soll später das Bild aus der Datei $dateiname stehen! <br>");
}
function zeige_bewertungen($bildindex)
{
$sql = "SELECT * FROM auswertung WHERE id='$bildindex'";
$result = mysql_query ($sql);
$akt_name = mysql_result($result,0,"name");
$akt_wertung = mysql_result($result,0,"wertung");
$akt_anz_bew = mysql_result($result,0,"w_anzahl");
print "<br><center>$akt_name hat derzeit einen Vote von $akt_wertung bei insgesamt $akt_anz_bew Bewertungen.</center>";
}
function anz_id_bestimmen()
{
db_connect();
// Bestimmen wie viele Datensätze vorhanden sind
$sql_anzahl_id = "SELECT id FROM auswertung";
$anzahl_id = mysql_num_rows(mysql_query($sql_anzahl_id));
return $anzahl_id;
}
if ((isset($newindex)) && (isset($vote)))
{
$max_datensatz = anz_id_bestimmen();
//den übergebenen Vote erstmal anzeigen lassen - das speichern sollte dann kein Thema mehr sein
echo("es wurde der Vote $vote gespeichert<br>");
if ($newindex == $max_datensatz)
{
$index=1;
}
else
{
$index = $newindex + 1;
}
}
//else zweig soll nur beim ersten Aufruf durchlaufen werden
else
{
$anzahl = anz_id_bestimmen();
//Startindex beim ersten Aufruf durch Zufall bestimmen
$index = mt_rand() % $anzahl + 1;
}
?>
</head>
<body>
<?php
zeige_bild($index);
zeige_bewertungen($index);
// Eingabeformular
echo "<form action=index.php3?newindex=$index&vote=$newvote method=POST>\n";
echo "<center><input type=radio name=newvote value=1 > 1         ";
echo "<input type=radio name=newvote value=2 > 2         ";
echo "<input type=radio name=newvote value=3 > 3         ";
echo "<input type=radio name=newvote value=4 > 4         ";
echo "<input type=radio name=newvote value=5 > 5         ";
echo "<input type=radio name=newvote value=6 > 6";
echo "<br><br><input type='submit' name=gesendet value=bewerten></center>\n";
//mysql_close($db);
?>
</body>
</html>
Erst beim zweiten mal auf bewerten klicken wird der Wert übergeben, der eigentlich beim ersten Vote hätte übergeben werden sollen und so setzt sich das permanent fort - also es wird immer der Wert übergeben, der eigentlich beim vorhergehenden abschicken hätte übergeben werden sollen.
Was hab ich falsch gemacht?
Kommentar