Bewertete Bilder nicht anzeigen

snoopy1972fc

Grünschnabel
ch habe leider nur wenig Ahnung von php+mysql.
Bin noch Anfänger, darum brauche ich Hilfe für mein Kinderfotovoting:
www.kinderfotowettbewerb.de
Ich hätte gerne, das Bilder, die bereits bewertet wurden nicht mehr angezeigt werden.
Wie kann man das ändern?

Hier das Script vom Voting:

PHP:
if($vote){
if($db) {
if(mysql_select_db($db_name,$db)) {
$sql="SELECT * FROM $db_table1 WHERE ip='$user' and vid='$vote_id_pic'";
$ergebnis=mysql_query($sql, $db);
if($ergebnis) {
while($zeile =mysql_fetch_array($ergebnis)) {
$vote_ip=$zeile["ip"];
$vote_vid=$zeile["vid"];
}
mysql_free_result($ergebnis);
} else {
echo "$sql falsch";
}
} else {
echo "Kontakt zur DAtenbank Fehlgeschlagen";
}
} else {}

if(mysql_select_db($db_name,$db)) {
$sql="SELECT * FROM $db_table WHERE id='$vote_id_pic'";
$ergebnis=mysql_query($sql, $db);
if($ergebnis) {
while($zeile =mysql_fetch_array($ergebnis)) {
$creator=$zeile["creator"];
}
mysql_free_result($ergebnis);
} else {
echo "$sql falsch";
}
} else {
echo "Kontakt zur DAtenbank Fehlgeschlagen";
}

if (($vote_ip != $user) && ($vote_vid != $vote_id_pic) && ($user != $creator)) {
mysql_select_db($db_table1,$db);
$insert="INSERT INTO $db_table1 (ip,vid) values('$user','$vote_id_pic')";
mysql_query($insert,$db);

mysql_select_db($db_table,$db);
$result = mysql_query("SELECT points, votes FROM $db_table WHERE id = '$vote_id_pic'");
list($points,$votes) = mysql_fetch_row($result);
$points = $points + $vote;
$votes++;

mysql_query("UPDATE $db_table SET points = '$points', votes = '$votes' WHERE id = '$vote_id_pic'");

mysql_select_db($db_table3,$db);
$result = mysql_query("SELECT  vote FROM $db_table3 WHERE user = '$user'");
list($vote) = mysql_fetch_row($result);
$vote++;

mysql_query("UPDATE $db_table3 SET vote = '$vote' WHERE user = '$user'");
} else {

if ($user == $creator) {
 $uservoting = "<br>".$index[2]."";
 $rand_zahl = $id;
} else {
$ipvoting = "<br><center>".$index[3]."";
$rand_zahl = $id;
}

}

} else {
$rand_zahl = $start;
}
 
Wie identifiest du den User?
Muss er sich einloggen?
Gibt es eine SessionID?
Wie sieht die Tabelle aus zum speichern der Bewertung?

Das Script hilft mir dabei nicht viel und du willst ja auch keine fertige Lösung sondern Hilfe bekommen ;)

Als Tipp: Muss sich der User registrieren und einloggen, ist er über eine UserID eindeutig identifizierbar. Speichert man nun die ImageID, die UserID sowie den Vote in einer Tabelle ab, kann man prüfen, ob User XY schon Bild XY bewertet hat.

Falls nicht, könntest du alternativ die aktuelle SessionID des Besuchers speichern, damit er pro Besuch nur einmalig abstimmen darf.

Für weiteres obige Fragen beantworten ;)



Gruß Radhad
 
Ja, ich kann die Use ID und die Bild ID abfragen
In der Tabelle ist die Bild ID und der Name der Benutzer gespeichert, die bewertet haben.
 
Zuletzt bearbeitet:
> Ich hätte gerne, das Bilder, die bereits bewertet wurden nicht mehr angezeigt werden

Hmmm, ich würde das etwas anders machen.
Wenn für ein Bild schon einmal bewertet wurde, kann man diese Bild nicht noch einmal bewerten, wird aber dennoch angezeigt.

Vielleicht gibt es eine Tabelle für Voting, wo die UserID und die BildID einfach eingetragen werden (punkte etc..).
Und beim Aufruf des Bildes wird diese Tabelle einfach abgefragt.
 
> Die Abfrage gibt es schon

Jo auch ne Voting-Tabelle dazu ?
ID | UserID | BildID

Naja, dann SELECT und abfragen, ob das Bild schon beim User steht.
Falls nicht, Bild anzeigen, falls doch, Bild sperren oder Ersatzbild etc...
So in etwa ....
 
Dann musst du die Abfrage so gestalten, dass die Bilder nicht angezeigt werden, die schon vom User beurteilt wurden wie z.B. "AND imageid IS NOT (SELECT imageid FROM tbl.name WHERE userid = ".$_SESSION["userid"].")" oder so ähnlich (grober Vorschlag).
 
Zurück