Brauche Banner-Klick-counter-script!!!



  • K, dann les ich mir mal die MySQL Tuts durch...

    sers



  • Welchen Spaltentyp soll ich denn für die 3 spalten nehmen???



  • CREATE link_table(
    ID INT AUTO_INCREMENT PRIMARY KEY,
    url VARCHAR(50),
    clicks INT,
    );

    Passt des so??



  • Also die DAtensätze hab ich jetzt mit PHPmyAdmin erstellt...
    So jetzt hab ich mir ne go.php erstellt mit folgendem code:

    <?
    $sql = 'SELECT url, clicks FROM link_table WHERE id = "'.$_GET['id'].'"'; 
    $result = mysql_query($sql); 
    list($url,$clicks) = mysql_fetch_row($result); 
    $clicks++; 
    $sql = 'UPDATE link_table SET clicks = "'.$clicks.'" WHERE id = "'.$_GET['id'].'"'; 
    mysql_query($sql); 
    header('Location: '.$url); 
    exit();
    ?>
    

    So dann rufe ich die in DAtensätzen gespeicherten URLs mit deren IDs auf:

    .../go.php?id=1

    Dann kommen folgende Fehlermeldungen:

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/mc/go.php on line 4
    
    Warning: Cannot modify header information - headers already sent by (output started at /usr/local/httpd/htdocs/mc/go.php:4) in /usr/local/httpd/htdocs/mc/go.php on line 8
    

    Wie kann ich die denn beheben?



  • bau mal nach dem result=mysql_query(result = mysql\_query(sql); ein echo mysql_error(); ein

    und für url würde ich schon mind. ein VARCHAR (255) nehmen



  • No Database Selected
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/mc/go.php on line 5
    
    Warning: Cannot modify header information - headers already sent by (output started at /usr/local/httpd/htdocs/mc/go.php:4) in /usr/local/httpd/htdocs/mc/go.php on line 9
    

    Mh ja, würd sagen der findet die datenbank net oder die wurde net ausgewählt...

    sers Mc



  • Du hast die Tutorials offenbar nicht richtig gelesen. Du musst natürlich noch vorher zur Datenbank connecten und eine DB auswählen:

    mysql_connect($db_server, $db_user, $db_pass);
    mysql_select_db($db_name);
    


  • Ja lol hab ich ja gesagt... 😃
    Ne weil bei dir der Code vom auslesen stand, und des conecten net dabei war hab ich gedacht des brauch man net. 🙂

    Naja ich probs jetzt nochmal mit conecten



  • K es funtzt! 😃
    So nur noch ein Prob.. Mit dem auslesen... Wie soll ich des machen? da hilft mir des tut glaub ich net viel weiter:

    http://tut.php-q.net/mysql-select-php.html#u1

    sers Mc



  • k funtzt jetzt, thx nochmal für deine großen bemühungen!!!

    sers Mc



  • so es gibt ein script weis aber ne wie es richtig geht das ist mit admin bereich aber leider alles englisch aber zum glück gibt es google chrome der das über setzt. also ich habe das Script auf meiner download seite aber hier ist erstmal meine demo seite under http://erzcommunity.er.funpic.de/links/ gebe da name demo und pw:demo ein zum testen bei fragen auf contakt zur download seite statt /links/ einfach /files/ eingeben.



  • Mc schrieb:

    <?
    $sql = 'SELECT url, clicks FROM link_table WHERE id = "'.$_GET['id'].'"'; 
    $result = mysql_query($sql); 
    list($url,$clicks) = mysql_fetch_row($result); 
    $clicks++; 
    $sql = 'UPDATE link_table SET clicks = "'.$clicks.'" WHERE id = "'.$_GET['id'].'"'; 
    mysql_query($sql); 
    header('Location: '.$url); 
    exit();
    ?>
    

    Hallo,

    das ist soooo unschön 😞 Ein SQL-Statement reicht vollkommen aus:

    $stmt = "UPDATE link_table SET clicks=clicks+1 WHERE id='".$_GET['id']."'";
    mysql_query($sql);
    

    LG



  • hmmz|off schrieb:

    sql=SELECTurl,clicksFROMlinktableWHEREid=".sql = 'SELECT url, clicks FROM link_table WHERE id = "**'._GET['id'].'**"';

    Und sowas wie das Fettgedruckte bitte GANZ schnell vergessen ... !



  • Für z.B. so Dinge würde sich mein PHP-ORM sehr gut eignen.

    Will mich damit auch jetzt hier nicht profilieren, wollte es nur mal erwähnen, denn es gibt ja nicht nur (m)ein ORM 😉 !!

    Aber SQL Kenntnisse würde ich mir dennoch Aneignen, falls da noch nich so viel Wissensbasis/Erfahrung vorhanden ist!

    So könnte zb. ein Counter aussehen der Daten über MySQL speichert mit meinem ORM.
    (verbindung zur Datenbank aufbauen, und setzen des Connectors wären nur 3 Zeilen mehr!)

    <?php
    
    $CDS= "counter extends stdID{ name text(1024);
                          calls bigint;
                        }";
    
    counter::$ormpc = new ORMC($CDS);
    
    class counter extends component {
    
      static $ormpc;
    
      static function Increment ($name) {
    
        $counter = counter::GetObject (array("name"=>$name));
    
        if(!$counter) {
            $counter = counter::NewObject ();
            $counter->name  = $name;
        }
    
        $counter->calls=$counter->calls+1;
    
      }
    
      static function Reset ($name) {
        $counter = counter::GetObject (array("name"=>$name));
        if($counter)
          $counter->calls=0;
      }
    
      static function Get ($name) {
        $counter = counter::GetObject (array("name"=>$name));
        if($counter)
          return $counter->calls;
        else
        return 0;
      }
    
    }
    
    ?>
    

    Wenn du mein PHP-ORM nutzen magst würde mich das unbestritten freuen, hilft mir ja auch bei der Weiterentwicklung.

    Und wenn garkein ORM in Frage kommt auch OK! War ja nur ein Vorschlag 😉 !

    mfg. Patrick


Anmelden zum Antworten