PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : if problem :frusty:



auron2008
24.12.2009, 00: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

kakuzu
24.12.2009, 01:16
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, 01: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

kakuzu
24.12.2009, 01:29
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, 09: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

kakuzu
24.12.2009, 10:45
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, 12: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:

kakuzu
24.12.2009, 13:09
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, 13: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:

FloMK
24.12.2009, 14:05
wo kommt das am besten hin?

functions.lib???

LG

auron2008
24.12.2009, 14:10
Ja kommt dort hin ^^ . Aber muss nich, will daran noch was dranbauen, brauchte nur das Grunddinge ^^

DimpleX
26.12.2009, 14:04
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