kostenloser Webspace werbefrei: lima-city


Fehler mit Funktion: Query gibt falsche Daten aus.

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    w*****d

    Nun denn, zu sp?ter Stunde erscuhe ich euren Rat.

    Die folgende Funktion arbeitet nicht ganz, wie sie soll. Ein bestimmtes update bereitet mir Kopfzerbrechen. Unzwar ist in der Variable $ans aus unbestimmten Gr?nden nur ResourceID #5 gespeichert. Allerdings sollte (in diesem Fall) eine 0 enthalten sein.

    Dadurch gibt das letzte Update einen Fehler aus und bricht das Skript ab. Nunja, ist klar, das ich soetwas nicht m?chte, oder? ;)


    Nundenn, hier der Code:

    function is_built($dorfid)
    {
    if(isset($dorfid))
    {
    
    $isquery_1 = mysql_query("SELECT * FROM is_build WHERE dorfid = '" . $dorfid . "'") OR die("isquery" . mysql_error());
    $isquery = mysql_fetch_array($isquery_1) OR die("Kann String nicht durchz?hlen. Leerer String?");
    $time = time();
    if($isquery['ende'] <= $time)
    {
    $fertig = 1;
    #Bauauftrag aus der Liste l?schen;
    $delete = mysql_query("DELETE FROM is_build WHERE dorfid = '" . $dorfid . "'") OR die("Delete" . mysql_error());
    #
    #Updaten der relevanten Tabellen/Spalten
    #
    $bau = $isquery['bauid'];
    switch ($bau)
    {
    case 1:
    $tobuild = "schmiede";
    break;
    case 2:
    $tobuild = "huette";
    break;
    case 3:
    $tobuild = "kaserne";
    break;
    case 4:
    $tobuild = "alchimistenturm";
    break;
    case 5:
    $tobuild = "badehaus";
    break;
    case 6:
    $tobuild = "springbrunnen";
    break;
    default:
    die("Der angegebene Wert ist nicht verf?gbar! Script wird abgebrochen");
    break;
    }
    
    $ans1 = mysql_query("SELECT '" .$tobuild. "' FROM doerfer WHERE id = '" . $dorfid . "'") Or die("ans" . mysql_error());
    $ans++;
    $update = mysql_query("UPDATE ?doerfer? Set '" . $tobuild . "' = '" . $ans . "' WHERE ?id? = '" . $dorfid . "'") OR die("update" . mysql_error());
    
    #Fertig den an die Anwendung ?bergeben. (Wert true)
    return $fertig;
    }
    Else
    {
    echo "Sie m?ssen noch " . $ende - $time . " Sekunden warten, bis der Bau fertig gestellt wird!";
    $fertig = 0;
    #Fertig den an die Anwendung ?bergeben. (Wert false)
    return $fertig;
    }
    
    
    }
    Else 
    {
    echo "FATAL_ERROR:Die Variable 'dorfid' wurde nicht gesetzt!";
    }
    #Ende der Funktion
    }



    ?brigens: ich w?re euch sehr verbunden, wenn ihr nicht na meienr Technik herumm?keln w?rdet. Ich wei? selber, das das hier h?chst wahrscheinlich sehr umst?ndlich gel?st ist, aber es arbeiet. zumindest gr??tenteils.


    Die Ausgegebene Fehlermeldung ist ?brigens:

    PHP-Parser schreib:
    updateYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?doerfer? Set 'schmiede' = 'schmiedf' WHERE ?id? = '13'' at


    Danke im Voraus.

    PS: Ich hoffe, das auch zu solchen Zeiten noch flei?ige Programmierer wachen und schreiben.

    Beitrag ge?ndert am 25.03.2006 23:08 von warlord
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s*n

    Also, dieser Query:
    $update = mysql_query("UPDATE ?doerfer? Set '" . $tobuild . "' = '" . $ans . "' WHERE ?id? = '" . $dorfid . "'") OR die("update" . mysql_error());


    erzeugt also den Fehler:

    PHP-Parser schreib:
    updateYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?doerfer? Set 'schmiede' = 'schmiedf' WHERE ?id? = '13'' at


    Bin mir jetzt nicht sicher aber ich glaube dass MySQL ein Problem damit hat, dass du eine Tabelle (schmiede) in >'< anstatt >`< bzw. bei dir >?< setzt. Deswegen hier mein L?sungsvorschlag (einfach die >'< bei der Tabelle schmiede durch >?< ersetzt):

    $update = mysql_query("UPDATE ?doerfer? Set ?" . $tobuild . "? = '" . $ans . "' WHERE ?id? = '" . $dorfid . "'") OR die("update" . mysql_error());


    Beitrag ge?ndert am 26.03.2006 11:28 von svn
  4. Autor dieses Themas

    w*****d

    Hmmm. Nach einigem hin under her hat es sich erledigt!

    Dein Tipp hat ?brigens auch was bewirkt! :P

    danke!
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!