• ich hab ein problem und schon ewig daran gewerkelt es funktioniert einfach nicht...

    wir wollen auf unserer page einen lokalführer einbauen. Einfügen, löschen geht ganz normal, aber beim ändern passierts, dass zwar as query richtig ausgegeben wird, allerdings die db-einträge geleert werden und wir einfach nicht dahinterkommen warum.

    hier der lokalführer: http://www.bastarde.at/index.php?center=11
    zum testen (falls jemand lust dazu hat, derzeit haben wir noch keine beschränkungen): http://www.bastarde.at/index.php?center=11&neuesLokal=1

    und hier der update-code:

    Code
    $sql = "insert into lokale (LID, UID, Name, Inhaber, PLZ, Adresse, Ort, url, bpi, Beschreibung, logo, Foto1, Foto2, Bundesland, Staat, musik)".
        "VALUES ('', '".$userdata[user_id]."', '".ltrim(htmlentities($ndaten['name'], ENT_QUOTES, 'ISO8859-15'))."', '".ltrim(htmlentities($ndaten['inhaber'], ENT_QUOTES, 'ISO8859-15'))."',    ".
        "'".ltrim(htmlentities($ndaten['plz'], ENT_QUOTES, 'ISO8859-15'))."', '".ltrim(htmlentities($ndaten['Adresse'], ENT_QUOTES, 'ISO8859-15'))."', '".ltrim(htmlentities($ndaten['ort'], ENT_QUOTES, 'ISO8859-15'))."', ".
        "'".ltrim(htmlentities($ndaten['url'], ENT_QUOTES, 'ISO8859-15'))."', '".ltrim(htmlentities($ndaten['bpi'], ENT_QUOTES, 'ISO8859-15'))."', '".ltrim(htmlentities($ndaten['beschreibung'], ENT_QUOTES, 'ISO8859-15'))."', ".
        "'".$filename."', '".$fotoname."', '".ltrim(htmlentities($ndaten['foto2'], ENT_QUOTES, 'ISO8859-15'))."', ".
        "'".ltrim(htmlentities($ndaten['bundesland'], ENT_QUOTES, 'ISO8859-15'))."', '".ltrim(htmlentities($ndaten['staat'], ENT_QUOTES, 'ISO8859-15'))."', '".ltrim(htmlentities($ndaten['musik'], ENT_QUOTES, 'ISO8859-15'))."')";
     $result = $db->sql_query($sql);

    und hier die ausgabe des queries:
    UPDATE lokale SET Name = '12343', Inhaber = '', PLZ = '', Adresse = '', Ort = 'asdf', url = '', bpi = '12', Beschreibung = 'asdfg', logo = '', foto1 = '', Bundesland = '', Staat = ', musik = '' WHERE LID ='118'

  • Hmm, was hat das Insert-Statement direkt mit dem Update zu tun?

    Aber was mir sofort aufgefallen ist:

    Zitat

    Staat = ', musik = '' WHERE LID ='118'


    Nach dem Staat findet sich nur ein '... ;)

  • da hast du recht, hab das falsche rauskopiert (das insert geht ja) (das mit den htmlentities hab ich der übersichtlichkeit halber mal weggelassen)

    Code
    $sql = "UPDATE lokale SET Name = '". $daten[name] ."', Inhaber = '". $daten[inhaber] ."', ".
            "PLZ = '". $daten[plz] ."', Adresse = '". $daten[Adresse] ."', Ort = '". $daten[ort] ."', ".
            "url = '". $daten[url] ."', bpi = '". $daten[bpi] ."', Beschreibung = '". $daten[beschreibung] ."', ".
            "logo = '". $daten[logo] ."', foto1 = '". $daten[foto1] ."', Bundesland = '". $daten[bundesland] ."', ".
            "Staat = '". $daten[staat] ."', Musik = '". $daten[musik]."' WHERE LID ='".$daten[loid]."'";

    @staat: an dem liegts nicht, das hab ich wahrscheinlich nur schlampig kopiert

    das ganz eigenartige habe ich noch gar nicht geschrieben...
    wenn ich einen eintrag ändere ist er zuerst da, aktualisiere ich ist es weg
    wenn ich aber im browser zurück gehe und nochmals speichere funktionierts (und von da an funktionierts immer)
    (ich hoff das ist nachvollziehbar erklärt)

  • Ich habe 2 Vermutungen:
    - du führst beim editieren unabsichtlich ein DELETE query aus.
    - du überschreibst eine ID mit der Eintrag nicht mehr aufgefunden werden kann.

    Denn es ist unmöglich einem UPDATE query einen Datensatz zu löschen.

    Was passiert, wenn du über phpmyadmin das statemant ausführst. Wenn da alles funktioniert, dann hast du an einer anderen Stelle im Code einen Fehler.


    Lg,
    Reinhard

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!