XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   max. anzahl in db (http://xhtmlforum.de/showthread.php?t=57690)

b74 13.07.2009 13:38

max. anzahl in db
 
ich habe ein nachrichtenscript geschrieben, ist zwar noch nich zu 100% fertig, aber im moment lkappt alles so, wie ich es will.
nun möchte ich sagen, dass jeder user nur maximal 20 nachrichten im postfach haben darf!

leider fehlt mir der befehl für eine begrenzung...

wäre nett wenn ihr mir helfen könntet.

Pablo 13.07.2009 13:43

Eine Möglichkeit:
Code:

SELECT COUNT(*) `num_pms` FROM `dvds` WHERE `uid` = 10
Wenn das Ergebnis >= 20 ist, Warnung/Fehler anzeigen.
Die Anzahl Nachrichten kannst du dann komfortabel über num_pms auslesen.

Mit IF() oder IF kannst Du eventuell beim speichern neuer Nachrichten direkt die Anzahl überprüfen, aber da bin ich mir gerade nicht ganz sicher, ob das immer so einfach geht.

b74 13.07.2009 13:57

ok danke, werd ich später mal ausprobieren

b74 13.07.2009 15:37

Ich habe das mal jetzt so gemacht, leider funzt es noch nich ganz:

$session = $_SESSION['username'];
$msg = "SELECT COUNT(*) FROM message WHERE username = '$session'";
$msg_query = mysql_query($msg);

if($msg > 20){
echo "<div class=\"error\">Maximale Anzahl an Nachrichten vorhanden!</div>";
}

Pablo 13.07.2009 15:44

PHP-Code:

$session $_SESSION['username'];
$msg "SELECT COUNT(*) FROM message WHERE username = '$session'";
$msg_query mysql_query($msg);

if(
$msg 20){
    echo 
"<div class=\"error\">Maximale Anzahl an Nachrichten vorhanden!</div>"

Richtiger Ansatz, fehler aber noch etwas:
mysql_fetch_assoc()

Das Ergebnis von mysql_query in eine Variable, diese durch o.g. Funktion jagen, das Ergebnis davon in eine andere Variable. Diese zweite Variable ist ein array in dessen Index "COUNT(*)" die gesuchte Zahl steht.

Würdest Du den von mir vorgeschlagenen SQL-Code verwenden, könntest Du im Array auf das schönere "num_pms" als index zugreifen.

b74 13.07.2009 16:02

;)

also ich würds jetz so lösen, aber leider funzt das auch noch nich ganz:

PHP-Code:

$session $_SESSION['username'];
$msg "SELECT COUNT(*) FROM message WHERE username = '$session'";
$msg_query mysql_query($msg);
$msg_row mysql_fetch_array($msg_query);

if(
$msg_row['receiver'] > 1){
echo 
"<div class=\"error\">Maximale Anzahl an Nachrichten vorhanden!</div>";



uspri 13.07.2009 16:09

Zitat:

Zitat von b74 (Beitrag 438578)
;)
also ich würds jetz so lösen, aber leider funzt das auch noch nich ganz:

Funzt nicht, ist keine Fehlerbeschreibung.
Versuche es mal so:

PHP-Code:

$session $_SESSION['username'];
$msg "SELECT COUNT(*) AS receiver FROM message WHERE username = '$session'";
$msg_query mysql_query($msg);
$msg_row mysql_fetch_array($msg_query);

if(
$msg_row['receiver'] > 1){
echo 
"<div class=\"error\">Maximale Anzahl an Nachrichten vorhanden!</div>";



Pablo 13.07.2009 16:11

Woher nimmst Du das
Code:

$msg_row['receiver']
?
Schau mal mit print_r() nach, wie die Variable msg_row aufgebaut ist. Dann solltest Du auch den richtigen Index finden, unter dem die gesuchte Zahl gespeichert ist.

@Uspri: Das "AS" ist nicht nötig. (Natürlich auch nicht falsch ;) )

b74 13.07.2009 16:16

@ uspri:

also es klappt immer noch, er fügt zwar noch ein, aber er zeigt mir folgende meldung:

Zitat:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web171/html/pages/Message.php on line 44
zeile 44 ist bei mir diese:
PHP-Code:

$msg_row mysql_fetch_array($msg_query); 


Praktikant 13.07.2009 16:18

Hast du vorher ne Datenbankverbindung aufgebaut?


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:46 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023