Archiv verlassen und diese Seite im Standarddesign anzeigen : if problem :frusty:
auron2008
24.12.2009, 01:10
Hi ^^ ,
also ich habe eine Funktion geschrieben, die bei jedem klick einen wert höher zählt. Nun soll sie nach 100 klicks den Zähler wieder auf 0 setzen, genau da liegt mein Problem :frusty:
so sieht meine Funktion aus :
// Verslosungsklick
function verslosungsklick ($klicks,$fuer) {
global $db_prefix;
$user = db_query("SELECT * FROM ".$db_prefix."_verlosung_klick WHERE uid = '".$fuer."'");
$userk = db_query("SELECT 'klicks' ".$db_prefix."_verlosung_klick WHERE uid = '".$fuer."'");
if (!mysql_num_rows($user)) {
db_query ("INSERT INTO ".$db_prefix."_verlosung_klick (uid,klicks) VALUES ('".$fuer."','".$klicks."')");
} else {
if($userk == 100)
{
db_query ("UPDATE ".$db_prefix."_verlosung_klick SET klicks = 0 WHERE uid='".$fuer."' ");
}else
{
db_query ("UPDATE ".$db_prefix."_verlosung_klick SET klicks=klicks +".$klicks." WHERE uid='".$fuer."' ");
}
}
}
er zählt zwar hoch, aber er macht bei 100 kein stopp, sondern macht weiter.
Könnt ihr mir helfen ? :yes:
lg auron2008
Hi ^^ ,
also ich habe eine Funktion geschrieben, die bei jedem klick einen wert höher zählt. Nun soll sie nach 100 klicks den Zähler wieder auf 0 setzen, genau da liegt mein Problem :frusty:
so sieht meine Funktion aus :
// Verslosungsklick
function verslosungsklick ($klicks,$fuer) {
global $db_prefix;
$user = db_query("SELECT * FROM ".$db_prefix."_verlosung_klick WHERE uid = '".$fuer."'");
$userk = db_query("SELECT 'klicks' ".$db_prefix."_verlosung_klick WHERE uid = '".$fuer."'");
if (!mysql_num_rows($user)) {
db_query ("INSERT INTO ".$db_prefix."_verlosung_klick (uid,klicks) VALUES ('".$fuer."','".$klicks."')");
} else {
if($userk == 100)
{
db_query ("UPDATE ".$db_prefix."_verlosung_klick SET klicks = 0 WHERE uid='".$fuer."' ");
}else
{
db_query ("UPDATE ".$db_prefix."_verlosung_klick SET klicks=klicks +".$klicks." WHERE uid='".$fuer."' ");
}
}
}
er zählt zwar hoch, aber er macht bei 100 kein stopp, sondern macht weiter.
Könnt ihr mir helfen ? :yes:
lg auron2008
ich nehme mal an das Klicks jeweils nur um 1 erhöht werden soll und das es sich auf den Aktuell eingeloggten user handelt.
Probiere mal folgendes aus
<?
// Verslosungsklick
function verslosungsklick () {
global $db_prefix;
$user = db_query("SELECT klicks FROM ".$db_prefix."_verlosung_klick WHERE uid = '".$_SESSION['uid']."'");
if (!mysql_num_rows($user)) {
db_query ("INSERT INTO ".$db_prefix."_verlosung_klick (uid,klicks) VALUES ('".$_SESSION['uid']."','1')");
} else {
$userk = mysql_fetch_array(db_query("SELECT 'klicks' FROM ".$db_prefix."_verlosung_klick WHERE uid = '".$_SESSION['uid']."'"));
if($userk['klicks'] >= 100) {
db_query ("UPDATE ".$db_prefix."_verlosung_klick SET klicks = 0 WHERE uid='".$_SESSION['uid']."' ");
} else {
db_query ("UPDATE ".$db_prefix."_verlosung_klick SET klicks=klicks + 1 WHERE uid='".$_SESSION['uid']."' ");
}
}
}
?>
PS: nun brauchst du nur verslosungsklick(); in die dateien einbinden wo die klicks gezählt werden sollen und dann wird bei dem User der geklickt hat 1 Klick gezählt und eingetragen.
auron2008
24.12.2009, 02:26
Genau so soll's laufen ^^ . Bei deinem code kommt nu folgende fehlermeldung :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/kaiperiu/public_html/lose4klicks/lib/functions.lib.php on line 235
$userk = mysql_fetch_array(db_query("SELECT 'klicks' ".$db_prefix."_verlosung_klick WHERE uid = '".$_SESSION['uid']."'"));
lg auron2008
Genau so soll's laufen ^^ . Bei deinem code kommt nu folgende fehlermeldung :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/kaiperiu/public_html/lose4klicks/lib/functions.lib.php on line 235
$userk = mysql_fetch_array(db_query("SELECT 'klicks' ".$db_prefix."_verlosung_klick WHERE uid = '".$_SESSION['uid']."'"));lg auron2008
kleiner fehler große Ursache ^^ aber auch leicht zu beheben da fehlt nur ein FROM zwischen klicks und der db ^^
$userk = mysql_fetch_array(db_query("SELECT 'klicks' FROM ".$db_prefix."_verlosung_klick WHERE uid = '".$_SESSION['uid']."'"));so muss es aussehn
PS: so als kleine Info am rande für zukünftig PHP scripte http://www.php-faq.de/q/q-sql-select.html
auron2008
24.12.2009, 10:29
Danke für deine Mühen ^^ , aber das läuft immernoch weiter, langsam verzweifel ich daran :frusty: , als ob er das if($userk['klicks'] >= 100) gar nich beachtet :frusty:
Hmm mir is gerad aufgefallen das die Uhrzeit hier links wann gepostet wird, eine Stunde vor geht wenn man ausgeloggt ist
Danke für deine Mühen ^^ , aber das läuft immernoch weiter, langsam verzweifel ich daran :frusty: , als ob er das if($userk['klicks'] >= 100) gar nich beachtet :frusty:
Hmm mir is gerad aufgefallen das die Uhrzeit hier links wann gepostet wird, eine Stunde vor geht wenn man ausgeloggt ist
könnte es vllt sein das in der datenbank etwas nicht stimmt? poste mir mal bitte den aufbau der Tabelle
auron2008
24.12.2009, 13:01
Hoffe das ist das was du meinst :
CREATE TABLE `vms_verlosung_klick` (
`uid` int(7) NOT NULL default '0',
`klicks` int(11) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
so hab ich die tabelle gebaut. Aber so richtig kapier ich's nich, wenn ich nur mal so das if($userk['klicks'] >= 5) in ein if($userk['klicks'] < 5) umwandle, dann schreibt er dauernd in die Tabelle klicks = 0 . D.h. dann für mich, das mit den Tabellen alles OK sein müsste.
:frusty:
Hoffe das ist das was du meinst :
CREATE TABLE `vms_verlosung_klick` (
`uid` int(7) NOT NULL default '0',
`klicks` int(11) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
so hab ich die tabelle gebaut. Aber so richtig kapier ich's nich, wenn ich nur mal so das if($userk['klicks'] >= 5) in ein if($userk['klicks'] < 5) umwandle, dann schreibt er dauernd in die Tabelle klicks = 0 . D.h. dann für mich, das mit den Tabellen alles OK sein müsste.
:frusty:
bin gestern wohl nicht ganz bei der sache gewesen.
hier nun der funktionstüchtige und getestete code
function verlosungsklick () {
global $db_prefix;
$user = db_query("SELECT klicks FROM ".$db_prefix."_verlosung_klick WHERE uid = '".$_SESSION['uid']."'");
if (!mysql_num_rows($user)) {
db_query ("INSERT INTO ".$db_prefix."_verlosung_klick (uid,klicks) VALUES ('".$_SESSION['uid']."','1')");
} else {
$userk = mysql_fetch_array(db_query("SELECT klicks FROM ".$db_prefix."_verlosung_klick WHERE uid = '".$_SESSION['uid']."'"));
if($userk['klicks'] >= 100) {
db_query ("UPDATE ".$db_prefix."_verlosung_klick SET klicks = 0 WHERE uid='".$_SESSION['uid']."' ");
} else {
db_query ("UPDATE ".$db_prefix."_verlosung_klick SET klicks=klicks + 1 WHERE uid='".$_SESSION['uid']."' ");
}
}
}
aufrufen mit
verlosungsklick();[/
auron2008
24.12.2009, 14:56
Dankeschön ^^ , nu klappt's . Könntest du mir aber bitte sagen warum mein's nich geklappt hat ? Möchte diesen Fehler kein zweites mal bauen.
lg auron2008 und ein frohes Fest :smile:
wo kommt das am besten hin?
functions.lib???
LG
auron2008
24.12.2009, 15:10
Ja kommt dort hin ^^ . Aber muss nich, will daran noch was dranbauen, brauchte nur das Grunddinge ^^
ja genau ,
darum heist die ja functions.lib ;)
ist die functions bibilothek (oder so) wo alle vorgefertigten functionen eingefügt werden
damit die einfach aufgerufen werden kann
DimpleX
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.