Willkommen in der Webstatt Zum Webstatt Blog und Stories
F4n4T!C F4n4T!C am 22.09.09 21:32

Also zum Problem.
Ich habe eine Gästeliste programmiert. Speziell schaut man sich ein Event an, und man kann sich dann als angemeldeter User in eine Gästeliste eintragen. Nun kann man sich derzeit noch tausendmal eintragen. Da nicht abgefragt wird, ob man bereits für dieses Event eingetragen ist.

Nun wollte ich eine einfach Abfrage schreib en, klappt aber nicht :(
Vieleicht kann mir jemand helfen was ich verkehrt mache.
<?php

if($u=="gaesteliste") {
echo genTitel('04/16/14','In Gästeliste eintragen');

?>
<script type=text/javascript>
...
</script>
<?php
if (!@mysql_num_rows(mysql_query("SELECT * FROM ".$dbx."_events_gaesteliste WHERE event='$wert1' AND user='$wert2'")) <>0) /* Prüfen ob bei der event id bereits die user ID eingetragen ist */

{
$result = @mysql_query("INSERT INTO ".$dbx."_events_gaesteliste (event,user) VALUES ('".$s."','".$usrd[id]."')");

else { echo "Dieser Eintrag existiert schon";} /* Verbieten des erneuten Eintragens */
echo "<script type=text/javascript>
function Weiterleitung()
{ parent.window.location.href = \"index.php?d=events&s=".$s."\"; }
window.setTimeout(\"Weiterleitung()\",1500);
</script>
<img src=icon/03/16/02.png width=16 height=16 align=absmiddle> Der Kommentar wurde erfolgreich hinzugefügt.";
}

echo "<form method=post name=gast><input type=hidden name=iframe value=events><input type=hidden name=i value=k><input type=hidden name=s value=\"".$s."\"><input type=hidden name=u value=kommentar><table border=0 cellspacing=0 cellpadding=5 width=100% height=200><tr><td valign=top></td><td align=right></td></tr><tr><td colspan=2 align=right><input type=hidden value=Eintragen class=formbutton></td></tr></table></form>";
}

?>


Über Hilfe wäre ich dankbar :(

netcup.de Warum gibt es hier Werbung?
nuit nuit am 23.09.09 02:43

if (!@mysql_num_rows(mysql_query("SELECT * FROM ".$dbx."_events_gaesteliste WHERE event='$wert1' AND user='$wert2'")) <>0) /* Prüfen ob bei der event id bereits die user ID eingetragen ist */
?

boolean wert in einer if prüfen?

F4n4T!C F4n4T!C am 23.09.09 19:42

Quote
Original von nuit
if (!@mysql_num_rows(mysql_query("SELECT * FROM ".$dbx."_events_gaesteliste WHERE event='$wert1' AND user='$wert2'")) <>0) /* Prüfen ob bei der event id bereits die user ID eingetragen ist */
?

boolean wert in einer if prüfen?

mhh, nun muss man sagen bin ich kein gott in Mysql und PHP, was ist ein boolean? Ich hab mir das Fragment eher zusammen gewürschelt :)

Spiro am 24.09.09 11:16

boolean = Wahrheitswert (true, false bzw. 0 und 1)

Ich habe für einen simplen Hack für unser Forum geschrieben, bei denen man sich zu Events anmelden kann.
Da das Board schon eine Eventfunktion besaß habe ich lediglich eine zusätzliche Spalte in der Eventtabelle hinzugefügt, in der die teilnehmenden User mittels ID und mit Komma getrennt eingetragen werden.
Diese wir dann bei jeder Minipulation ausgelesen, an den Kommas getrennt und geprüft, ob der Wert schon vorhanden ist:

Das sieht in etwa so aus:

Einfaches Prüfen
if ($mybb->user['uid'] > 0) {
$arrPartiUsers = explode(",", $event['additionalusers']);
if(!in_array($mybb->user['uid'],$arrPartiUsers)) {
SIGNUP
} else {
SIGNOFF
}
}


Interaktion
if($arrAddUsers['additionalusers'] != "") {
$arrAddUser = explode(",", $arrAddUsers['additionalusers']);
} else {
$arrAddUser = array();
}
if($mybb->input['signin'] == TRUE && !in_array($mybb->user['uid'], $arrAddUser)) {
array_push($arrAddUser, $mybb->user['uid']);
} else {
if($mybb->input['signin'] == FALSE && in_array($mybb->user['uid'], $arrAddUser)) {
$key = array_search($mybb->user['uid'], $arrAddUser);
unset($arrAddUser[$key]);
}
}


$arrAddUser enthält dann die neuen User, bzw das Event ohne den User.

Die interessaten Funktionen sind:
in_array(); Liefert Bool als Rückgabe
array_push(); Liefert Bool als Rückgabe
array_search(); Liefert Schlüssel (Position) als Rückgabe

Für alles weitere sollte die PHP Dokumentation ausreichen

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt