Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: if problem :frusty:

  1. #1
    Erfahrener Benutzer
    Registriert seit
    17.02.2009
    Beiträge
    356

    if problem :frusty:

    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

    so sieht meine Funktion aus :
    PHP-Code:
    // 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 ?

    lg auron2008

  2. #2
    Benutzer
    Registriert seit
    29.11.2009
    Beiträge
    89
    Zitat Zitat von auron2008 Beitrag anzeigen
    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

    so sieht meine Funktion aus :
    PHP-Code:
    // 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 ?

    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

    PHP-Code:
    <?
    // 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.


  3. #3
    Erfahrener Benutzer
    Registriert seit
    17.02.2009
    Beiträge
    356
    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

    PHP-Code:
    $userk  mysql_fetch_array(db_query("SELECT 'klicks' ".$db_prefix."_verlosung_klick WHERE uid = '".$_SESSION['uid']."'")); 
    lg auron2008

  4. #4
    Benutzer
    Registriert seit
    29.11.2009
    Beiträge
    89
    Zitat Zitat von auron2008 Beitrag anzeigen
    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

    PHP-Code:
    $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 ^^

    PHP-Code:
    $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


  5. #5
    Erfahrener Benutzer
    Registriert seit
    17.02.2009
    Beiträge
    356
    Danke für deine Mühen ^^ , aber das läuft immernoch weiter, langsam verzweifel ich daran , als ob er das if($userk['klicks'] >= 100) gar nich beachtet

    Hmm mir is gerad aufgefallen das die Uhrzeit hier links wann gepostet wird, eine Stunde vor geht wenn man ausgeloggt ist

  6. #6
    Benutzer
    Registriert seit
    29.11.2009
    Beiträge
    89
    Zitat Zitat von auron2008 Beitrag anzeigen
    Danke für deine Mühen ^^ , aber das läuft immernoch weiter, langsam verzweifel ich daran , als ob er das if($userk['klicks'] >= 100) gar nich beachtet

    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


  7. #7
    Erfahrener Benutzer
    Registriert seit
    17.02.2009
    Beiträge
    356
    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.

  8. #8
    Benutzer
    Registriert seit
    29.11.2009
    Beiträge
    89
    Zitat Zitat von auron2008 Beitrag anzeigen
    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.
    bin gestern wohl nicht ganz bei der sache gewesen.

    hier nun der funktionstüchtige und getestete code

    PHP-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
    PHP-Code:
    verlosungsklick();[/ 


  9. #9
    Erfahrener Benutzer
    Registriert seit
    17.02.2009
    Beiträge
    356
    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

  10. #10
    Erfahrener Benutzer Avatar von FloMK
    Registriert seit
    29.05.2009
    Beiträge
    317
    wo kommt das am besten hin?

    functions.lib???

    LG

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •