Nicht mehr als zwei Beiträge Pro Woche

chrishelp

Mitglied
Hallo liebe Leute,

ich komm leider nicht weiter und zwar würde ich euch gerne fragen.

Wie bekomme ich es hin das ich innerhalb von 1 Woche nur zwei Beiträge schreiben darf.

z.b

Ein User loggt sich ein und möchte ein Termin für die Woche festlegen. Jetzt kommt die fehlermeldung "In dieser Woche gibt es schon 2 Termine" ?

Wie bekomme ich das ganze hin ? :(
 
Du zählst die Termine die in der jeweiligen Woche eingeschrieben sind, also zwischen timestamp1 (Montag) und timestamp2 (Sonntag). Wenn die Zahl gleich zwei ist, dann gibst du die Fehlermeldung aus und verhinderst so das Eintragen eines weiteren Termines.

Ist es das, was du willst, oder habe ich da etwas falsch verstanden?
 
Benutzt du eine Datenbank, z.B. MySQL? Dann kannst du doch einfach abfragen, wie viele Termine es in dieser Woche (oder in den letzten sieben Tagen) bereits gibt.

SQL:
SELECT 1 FROM termine
WHERE mitglied=123456 AND datum BETWEEN (NOW() - INTERVAL 7 DAYS) AND NOW()
LIMIT 2
 
super cpoly das werd ich direkt mal ausprobieren so meinte ich das

WHERE mitglied=12345 <-- was heißt jetzt mitglied ich will ja hier abfragen ob in dieser woche schon 2 termine vorhanden sind :)
 
Ich bin davon ausgegangen, dass jeder Benutzer maximal zwei Termine pro Woche eintragen kann und nicht global. Dann musst du die Bedingung eben weglassen.
 
Deine Abfrage muss ja irgendeinen Wert zurückliefern.
Entweder nimmst du dazu einen oder mehrere Feldnamen aus der Tabelle (username oder so). Oder wenn nicht wirklich ein Wert aus der Tabelle benötigt wird schreibst du halt einfach eine 1 hin (könnte auch etwas anderes in der Art sein).

Gruß Thomas
 
Ich weiß leider nicht wie ich das jetzt anstellen soll :/

$sql2 = @mysql_num_rows(@mysql_query("SELECT * FROM termine WHERE Datum BETWEEN (NOW() - INTERVAL 7 DAYS) AND NOW() LIMIT 2"));

if ($sql2 == true)
{
echo "<font color='#FF0000'>Achtung****** In dieser Woche gibt es schon 2 Klausuren für diese Klasse</font>";
echo "<br /><br />";
}

oder wie ? :(
 
Das hier müsste die richtige Abfrage sein:
SQL:
SELECT 1 FROM termine WHERE Datum BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() LIMIT 2

Und so würde ich es im Ganzen schreiben:
PHP:
$rs = mysql_query("SELECT 1 FROM termine WHERE Datum BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() LIMIT 2");
$anzahl = mysql_num_rows($rs);

if ($anzahl == 2) {
    echo "<font color='#FF0000'>Achtung! In dieser Woche gibt es schon 2 Klausuren für diese Klasse</font>";
    echo "<br /><br />";
}
 
Ich hab noch einen Zusatz. Wenn es wirklich um die Woche geht und nicht um den Zeitraum der letzten sieben Tage, dann kannst du es folgendermaßen machen.

SQL:
WHERE yearweek(datum) = yearweek(CURDATE())
 
Zurück