Mit mysql Downloads zählen - Script läuft nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mit mysql Downloads zählen - Script läuft nicht

    Hallo,


    ich habe vor mit php eine Seite zu erstellen, die die Downloads pro Tag von 2 Dateien (dev und stable Version eines Programms) in einer MySQL Datenbank zählt, sodass man sie auf einer anderen Seite überblicken kann. Ausserdem soll es sich aus einer anderen MySQL-Tabelle die aktuelle Version holen (vor allem das ist glaub ich falsche geschrieben)

    Das ist der "Code" den ich mir zusammengeschrieben habe:
    PHP-Code:
    <?php
    /** 
    * Debugging 
    */ 
    error_reporting(E_ALL); #zeig alle Fehler 
    ini_set('display_errors''1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden 

    $MySQLhost "localhost";
    $MySQLuser "user";
    $MySQLpasswort "**********";
    $MySQLdb "q-main";
    $MySQLzähltabelle "Zähler";
    $MySQLversiontabelle "Version";
    $dev $_GET['dev'];
    $DatabasePointer = (mysql_connect($MySQLhost$MySQLuser$MySQLpasswort));
        
    mysql_select_db($MySQLdb$DatabasePointer);
        
    $ResultPointer mysql_query("SELECT Version FROM $MySQLversiontabelle"$DatabasePointer);
    $version = (@mysql_num_rows($ResultPointer));
    $URL"*";


    if (
    $dev == "false")
    {
      if(
    fopen($URL"r"))
      {
        
    $DatabasePointer mysql_connect($MySQLhost$MySQLuser$MySQLpasswort);
        
    mysql_select_db($MySQLdb$DatabasePointer);
        
    $datum date("Y-m-d");
        
    $ResultPointer mysql_query("SELECT Datum FROM $MySQLzähltabelle WHERE Datum='$datum'"$DatabasePointer);

        if(
    mysql_num_rows($ResultPointer) > 0)
        {
            
    mysql_query("UPDATE $MySQLzähltabelle SET stableHits=stableHits+1, WHERE Datum='$datum'"$DatabasePointer);
        }
        else
        {
            
    mysql_query("INSERT INTO $MySQLzähltabelle (Datum, stableHits) VALUES ('$datum', '1')"$DatabasePointer);
        }

        
    header("Location: $URL");
      }
    }
    if (
    $dev == "true")
    {
      
    $DatabasePointer mysql_connect($MySQLhost$MySQLuser$MySQLpasswort);
      
    mysql_select_db($MySQLdb$DatabasePointer);
      
    $datum date("Y-m-d");
      
    $ResultPointer mysql_query("SELECT Datum FROM $MySQLzähltabelle WHERE Datum='$datum'"$DatabasePointer);

      if(
    mysql_num_rows($ResultPointer) > 0)   
       {
       
    mysql_query("UPDATE $MySQLzähltabelle SET devHits=devHits+1,  WHERE Datum='$datum'"$DatabasePointer);
       }
      else
    {
         
    mysql_query("INSERT INTO $MySQLzähltabelle (Datum, devHits) VALUES ('$datum', '1')"$DatabasePointer);
    }
    header("Location: ...");
    }
    ?>>
    Also ich bin ein totaler Anfänger, also seid nicht zu streng mit mir
    Beim Aufruf der Seite kommt der Fehler "Parse error: syntax error, unexpected T_VARIABLE in .../www/index.php on line 15"
    Das ist, wegen der Debug-Zeilen (hab ich weggelassen) vorher, die Zeile
    "$version = (@mysql_num_rows($ResultPointer);"

    Leider kann ich da noch nichts verdächtiges erkennen.

    Ich hoffe das Script ist wenigstens ansatzweise richtig geworden
    Zuletzt geändert von bauerj; 02.12.2009, 18:01.

  • #2
    Zähl mal deine Klammern in der beanstandeten Zeile
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Zitat von bauerj Beitrag anzeigen
      Leider kann ich da noch nichts verdächtiges erkennen.
      Zähl mal die Klammern

      Und in der Zeile drunter fehlt das Semikolon.

      Zu spät. Quetschi
      Zuletzt geändert von AmicaNoctis; 02.12.2009, 15:53.
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Gut. War ja klar das mir gerade so ein Fehler passiert

        Jetzt ist es angepasst (auch oben im Post), aber es läuft immer noch nicht. (gleicher Fehler)
        Ist denn sonst alles richtig durchdacht?
        Was ist jetzt noch falsch?

        @AmicaNoctis Was ist das in deiner Signatur eigentlich mit 200 Zeichen? Hab ich doch eingehalten oder nicht?
        Zuletzt geändert von bauerj; 02.12.2009, 17:09.

        Kommentar


        • #5
          Jetzt fehlt dort was - und in der Zeile danach auch... solche Fehler solltest du aber in Zukunft alleine aufspüren zumal dir PHP eh sagt, wo das Problem liegt.

          @AmicaNoctis
          2fast4u
          Zuletzt geändert von Quetschi; 02.12.2009, 17:19.
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Also was mir direkt auffält ist folgendes:
            In dieser Zeile fehlt ein Semikolon
            PHP-Code:
            $dev $_GET['dev'

            müsste sein:
            $dev $_GET['dev']; 
            Diese Bedingung wird immer erfüllt:
            PHP-Code:
            if ($dev "false")

            müsste sein:
            if (
            $dev == "false"
            Ebenso hier:
            PHP-Code:
            if ($dev "true"

            Kommentar


            • #7
              - ich kann nicht mehr...

              i poste "2fast4u" und gleich hinter mir postet ein gewisser "2Bad4You".
              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
              Schön - etwas Geschichte kann ja nicht schaden.
              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

              Kommentar


              • #8

                Naja danke 2Bad4You und Quetschi ab jetzt komm ich (hoffentlich) alleine weiter

                Nicht ganz, ich habe noch mal aktualisiert, jetzt kommt er Fehler "Notice: Undefined index: dev in test.php on line 14
                >"

                Er meckert also weil er $_GET['dev'] nicht finden kann? Hm ich dachte das wäre auch vorhande wenn ich dev nicht übergebe...
                Zuletzt geändert von bauerj; 02.12.2009, 18:18. Grund: neuer Fehler

                Kommentar


                • #9
                  Zitat von bauerj Beitrag anzeigen
                  @AmicaNoctis Was ist das in deiner Signatur eigentlich mit 200 Zeichen?
                  120 Zeichen. Soweit ich sehe, hast du die eingehalten, ich komme auf 118. Wegen des "ä" sind es aber schon 119 (UTF-8 Multibyte Sequenz) und dann ist da vermutlich noch ein CR vor dem LF, was mitgezählt wird. In einem anderen Thread hab ich dasselbe Problem, da bemeckere ich mich selbst Ich werde das Skript demnächst korrigieren. Trotzdem sollten deine Zeilen nicht länger werden

                  Edit: Der Bildgenerator sollte jetzt richtig rechnen und wirklich erst ab 120 Zeichen meckern.
                  Zuletzt geändert von AmicaNoctis; 02.12.2009, 19:18.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Ja, das Bild wird nicht mehr angezeigt

                    Abgesehen von meinem vorherigem Problem, hab ich jetzt auch noch ein neues
                    Nach einsetzen von 1 als $dev taucht zwar der andere Fehler nicht mehr auf, aber dafür der hier:
                    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /data/multiserv/users/234845/projects/276891/www/msqlt.php on line 31
                    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '¤hler (Datum,stableHits) VALUES ('2009-12-03', '1')' at line 1
                    Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/234845/projects/276891/www/msqlt.php:31) in /data/multiserv/users/234845/projects/276891/www/msqlt.php on line 40

                    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /data/multiserv/users/234845/projects/276891/www/msqlt.php on line 51

                    Warning: Cannot modify header information - headers already sent by (output started at /data/multiserv/users/234845/projects/276891/www/msqlt.php:31) in /data/multiserv/users/234845/projects/276891/www/msqlt.php on line 59
                    >
                    Anscheinend hab ich meine ganze Abfrage falsch aufgebaut Ich weiß echt nicht mehr was dadran falsch ist, ... und wie das mit VALUE nach Zeile 31 kommt

                    OT: Werden die Smilys im Forum eigentlich zufällig angeordnet oder wie?

                    Kommentar


                    • #11
                      Ich würde Tabellennamen mit Umlauten ganz vermeiden. Wenn du trotzdem drauf bestehst, musst du schon die richtige Kodierung einhalten. Wie du siehst, meckert er über das was vom "ä" noch übrig ist. So gesehen, ist die Fehlermeldung eigentlich selbsterklärend.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Super Der Fehler wäre auch beseitigt.

                        Meine güte, ich brauch ja 3x soviel Zeit um alle Fehlerzu korrigieren als das Script zu schreiben

                        Kommentar


                        • #13
                          So, wenn ich jetzt mir phpmyadmin alle Einträge aus der Tabelle lösche läuft das Script einwandfrei, aber das mit INSERT, wenn also kein Eintrag drin ist, hat zur Folge, dass er einen neuen Eintrag in der Tabelle hinzufügen will, was aber weil Datum unique ist, nicht geht. Was sollte ich stattdessen benutzen?

                          Und: ist es hier klug, zu fragen ob das Datum größer als 0 ist, oser sollte ich lieber != nehmen?

                          Kommentar


                          • #14
                            Zitat von bauerj Beitrag anzeigen
                            was aber weil Datum unique ist, nicht geht. Was sollte ich stattdessen benutzen?
                            Kein unique. Ist beim Datum imho sowiewo Tinnef.
                            Zitat von bauerj Beitrag anzeigen
                            ist es hier klug, zu fragen ob das Datum größer als 0 ist, oser sollte ich lieber != nehmen?
                            Am Besten prüfst du auf ein korrektes Datumsformat.

                            Peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar

                            Lädt...
                            X