Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Fehler??

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Fehler??

    Hab mal wieder eine Frage..
    und zwar erstmal habe ich folgendes script

    Code:
    $userinfo = mxGetUserData();
    		$entry['uid']    = $userinfo['uid'];
    		$entry['nbname'] = $userinfo['uname'];
    		$entry['url']    = $userinfo['url'];
    		$entry['nukeuser'] = 1;
    #############################################################
    #cookie setzen und prüfen ob der angenommen wird
    $AblaufZeit=time()+18000;
    $AktuelleZeit=time();
    setcookie("Zeit",$AktuelleZeit,$AblaufZeit);
    $IP = $_SERVER['REMOTE_ADDR'];
    
    if ($_COOKIE["Zeit"]) {
    $cookietrue = "UPDATE
        mx44631_users
    SET
       reload = '0';
    WHERE
       uid = '".$entry['nbname']."'";
    mysql_query($cookietrue) OR die(mysql_error());
    echo $file;
    }
    else {
    		$reloadon = "SELECT reload
    						FROM mx44631_users
    						WHERE uid = '".$entry['nbname']."'";
    		mysql_query($reloadon) OR die(mysql_error());
    		$reloadon = $reloadnow;
    		
    		if ($reloadnow = 0) {
    		include "java.js";
    		$reloadsite = "INSERT INTO mx44631_users 
    						WHERE uid = '".$entry['nbname']."' 
    						Values (1)";
    		mysql_query($reloadsite) OR die(mysql_error());
    		}
    		else {
    		$activatecookies = "INSERT INTO mx44631_users 
    						WHERE uid = '".$entry['nbname']."' 
    						Values (0)";
    		mysql_query($activatecookies) OR die(mysql_error());
    		echo "<center>Bitte aktivier deine Cookies, ansonsten kannst du keine SMS verschicken</center>";
    		}
    }
    und ich bekomme folgende Fehlermeldung...kann selbst damit nix anfangen...

    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 '; WHERE uid = 'admin'' at line 4
    was habe ich falsch geschrieben??

  • #2
    Die Idee in der Fehlermeldung gefällt mir... :wink:

    Zitat von maser2005
    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 '; WHERE uid = 'admin'' at line 4

    Kommentar


    • #3
      ja welches manual soll ich denn durchgucken..und wenn nach was....habt ihr denn nicht eine Idee was dadran falsch ist??

      Kommentar


      • #4
        Hmm.. welches Manual? Gute Frage.. das MySQL-Manual könnte vielleicht gemeint sein.

        Kommentar


        • #5
          Die Fehlemeldung einmal ganz genau ansehen
          '; WHERE uid = 'admin''
          was macht denn das Semikolon da vor dem WHERE?
          Lass Dir nicht nur den Fehler sondern auch die komplette Abfrage mit ausgeben (in diesem Fall $cookietrue).

          Kommentar


          • #6
            '; WHERE uid = 'admin''
            Was mir da noch auffällt: uid klingt nach einem Integerwert.

            ..nur so'n Gedanke.

            Gruß
            Der Desian
            Wenn dich was ankotzt, machs besser.

            Kommentar


            • #7
              hat geklappt subba

              Danke..

              hab aber schon wieder ein neues Problem...

              ich habe folgenden Code:

              Code:
              $timeask = "SELECT time
              			FROM mx44631_ip
              			WHERE (IP = '$IP')";
              mysql_query($timeask);
              
              if ($timeask < time()-86400)
              { echo.....}
              else{
              echo...}
              So in der Datenbank wird ein Datum mit Uhrzeit geschrieben...diese if Funktion soll nur funktionieren wenn der Eintrag mehr als 24 h zurückliegt...im Moment wird das aber immer angezeigt warum....? bzw. weiß jemand wie es richtig heißen müsste...?

              Kommentar


              • #8
                So muss das aussehen:
                PHP-Code:
                <?php
                $sql 
                "SELECT time
                         FROM mx44631_ip
                         WHERE (IP = '
                $IP')";
                $res mysql_query($sql) or die ( mysql_error() );

                $timeask mysql_result($res);
                if (
                $timeask time()-86400)
                { echo.....}
                else{
                echo...} 
                ?>
                Und jetzt arbeite mal das hier (und die folgenden Seiten) durch:
                http://tut.php-q.net/mysql.html

                Kommentar


                • #9
                  also ich habe ziemlich viel gesucht weiß aber nicht warum ich jetzt aufeinmal folgende Fahlermeldung habe
                  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 'WHERE uid=2' at line 3
                  mein Quellcode sieht so aus..
                  Code:
                  $timeselect = "SELECT user_writetime 
                  			   FROM mx44631_users 
                           	   WHERE uid = '$uid'"; 
                  	$timequery = mysql_query($timeselect) or die ( mysql_error() ); 
                  	$timeresult = mysql_result($timequery, 0);
                  
                  if ($timeresult < time()-86400) {
                  	echo "<center>Es geht nicht</center>";
                  	}
                  else{
                  	echo "<center>Es geht wirklich</center>";
                  	}

                  Kommentar


                  • #10
                    Fehlerausgabe und Quelltext passen nicht zusammen.

                    Fehlertext: WHERE uid=2 -- keine Leerzeichen, keine Hochkomata um den Wert
                    Quellcode: WHERE uid = '$uid' -- Leerzeichen vor und nach dem Gleicheheitszeichen, Hochkomata um den Wert

                    Auf das Ratespiel "Was könnte sonst noch zwischenzeitlich geändert worden sein?" verzichte ich.

                    Kommentar


                    • #11
                      dazu sollte ich vielleicht sagen, dass mit $uid die 2 ausgelésen wird...so und jetzt pass ich die Fehlermeldung dem wirklichen Fehler an
                      also wenn ich nun den Quellcode nehm:
                      Code:
                      $timeselect = "SELECT user_writetime 
                                  FROM mx44631_users 
                                     WHERE uid = '$uid'"; 
                         $timequery = mysql_query($timeselect) or die ( mysql_error() ); 
                         $timeresult = mysql_result($timequery, 0); 
                      
                      if ($timeresult < time()-86400) { 
                         echo "<center>Es geht nicht</center>"; 
                         } 
                      else{ 
                         echo "<center>Es geht wirklich</center>"; 
                         }
                      bekomm ich diese Fehlermeldung....
                      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 'WHERE uid = '2'' at line 3

                      Kommentar


                      • #12
                        Die Syntax ist richtig. Mach mal var_dump($timeselect);

                        Kommentar


                        • #13
                          soll das dann so aussehen??

                          Code:
                          var_dump($timeselect) = "SELECT user_writetime 
                          			   FROM mx44631_users 
                                   	   WHERE uid='$uid'"; 
                          	$timequery = mysql_query(var_dump($timeselect)) or die ( mysql_error() ); 
                          	$timeresult = mysql_result($timequery, 0);
                          
                          if ($timeresult < time()-86400) {
                          	echo "<center>Du hast heute schon eine SMS geschrieben</center>";
                          	}
                          else{
                          	echo "<center>Es geht wirklich</center>";
                          	}
                          Hab ich ausprobiert...es erscheint gar nix mehr...also nur noch ein weißer Bildschirm....

                          Kommentar


                          • #14
                            Zitat von maser2005
                            soll das dann so aussehen??
                            [...]
                            Hab ich ausprobiert...es erscheint gar nix mehr...also nur noch ein weißer Bildschirm....
                            Seltsame Frage. Wenn da garnicht nichts mehr passiert (-->Fehler), dann kann das wohl nicht richtig sein.
                            Ein Blick ins Handbuch http://www.php.net/var_dump zeigt, dass es so, wie Du es eingebaut hast, keinen Sinn macht.

                            Einheitlicher Einrücken ist auch von Vorteil.
                            PHP-Code:
                            $timeselect "
                                SELECT
                                    user_writetime
                                FROM
                                    mx44631_users
                                WHERE
                                    uid='
                            $uid'";
                            var_dump($timeselect); // Infos zu $timeselect ausgeben.

                            $timequery mysql_query($timeselect) or die (mysql_error());
                            $timeresult mysql_result($timequery0);

                            if (
                            $timeresult time()-86400) {
                                echo 
                            "<center>Du hast heute schon eine SMS geschrieben</center>";
                            }
                            else {
                                echo 
                            "<center>Es geht wirklich</center>";

                            Kommentar


                            • #15
                              Nun gut...
                              wie soll dann aber das für diesen Befehl aussehen?
                              Code:
                              $timeschreiben = "INSERT INTO mx44631_users (user_writetime)
                              				  VALUES (NOW())
                              				  WHERE uid='$uid'";
                              mysql_query($timeschreiben) or die ( mysql_error() );[
                              Und es kommt jetzt diese Fehlermeldung
                              string(76) "SELECT user_writetime FROM mx44631_users WHERE uid='2'"

                              Kommentar

                              Lädt...
                              X