kostenloser Webspace werbefrei: lima-city


UPDATE eines MYSQL-Datenbanksatz

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    r***a

    Und wiedermal ein Problemchen....


    Hier das Formular (Auszug):

    <?PHP
    include "dbconnect.php";
    $id_get = $HTTP_GET_VARS["id"];
    $abfrage = "SELECT * FROM mietobjekte WHERE id LIKE '$id_get'";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_array($ergebnis, MYSQL_ASSOC))
    {
    ECHO"
    <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>
    <title>Eingabeformular</title>
    </head>
    <body>
    <table border='0' width='100%' id='table1' cellspacing='0'>
    <tr>
    <td height='30' bgcolor='#F2F2F2'>
    <p align='center'><b><font face='Arial'>Eingabemaske f?r Mietobjekte mit der Datenbanknummer: ".$row['id']."</font></b></td>
    </tr>
    </table>
    &nbsp;<table border='1' width='100%' id='table5'>
    <tr>
    <td bgcolor='#C0C0C0'>
    <p align='center'><font face='Arial'><b>Allgemeine Objektdaten</b></font></td>
    </tr>
    </table>
    <br>
    <form action='update_miet.php' method='post' name='miet_eingabe'>
    <input type='hidden' name='id' value='".$id_get."'>
    <table border='1' width='100%' id='table2'>
    <tr>
    <td width='25%' bgcolor='#F2F2F2'><font face='Arial'><b>Objekt-Nummer:</b></font></td>
    <td width='25%'><font face='Arial'>
    <input value='".$row['obj_nr']. "' size='20' name='obj_nr' style='font-weight: 700'></font></td>
    <td width='25%' bgcolor='#F2F2F2'><font face='Arial'><b>Kaltmiete pro m?:</b></font></td>
    <td width='25%'><font face='Arial'>
    <input size='10' value='".$row['kaltmiete_m2']."' name='kaltmiete_m2' style='font-weight: 700'><b> </b>
    </font><b><font face='Arial'>?</font></b></td>
    </tr>
    <tr>
    <td width='25%' bgcolor='#F2F2F2'><font face='Arial'><b>Ort:</b></font></td>
    <td width='25%'><font face='Arial'>
    <input size='20' value='".$row['ort']."' name='ort' style='font-weight: 700'></font></td>
    <td width='25%' bgcolor='#F2F2F2'><font face='Arial'><b>Kaltmiete gesamt:</b></font></td>
    <td width='25%'><font face='Arial'>
    <input size='10' value='".$row['kaltmiete_ges']."' name='kaltmiete_ges' style='font-weight: 700'><b> ?</b></font></td>
    </tr>

    Hier das Update Script





    <?PHP
    include("dbconnect.php"); //Kontaktaufnahme mit Datenbank
    $obj_nr = $HTTP_POST_VARS["obj_nr"]; //variablen werden vom Formular ?bernommen
    $ort = $HTTP_POST_VARS["ort"];
    $strasse = $HTTP_POST_VARS["strasse"];
    $id = $HTTP_POST_VARS["id"];
    $kaltmiete_m2 = $HTTP_POST_VERS["kaltmiete_m2"];
    $kaltmiete_ges = $HTTP_POST_VARS["kaltmiete_ges"];
    $nebenkosten_m2 = $HTTP_POST_VARS["nebenkosten_m2"];
    $nebenkosten_ges = $HTTP_POST_VARS["nebenkosten_ges"];
    $flaeche = $HTTP_POST_VARS["flaeche"];
    $wohnungsart = $HTTP_POST_VARS["wohnungsart"];
    $lage_whg = $HTTP_POST_VARS["lage_whg"];
    $lage_haus = $HTTP_POST_VARS["lage_haus"];
    $ausstattung_1 = $HTTP_POST_VARS["ausstattung_1"];
    $ausstattung_2 = $HTTP_POST_VARS["ausstattung_2"];
    $ausstattung_3 = $HTTP_POST_VARS["ausstattung_3"];
    $ausstattung_4 = $HTTP_POST_VARS["ausstattung_4"];
    $ausstattung_5 = $HTTP_POST_VARS["ausstattung_5"];
    $ausstattung_6 = $HTTP_POST_VARS["ausstattung_6"];
    $ausstattung_7 = $HTTP_POST_VARS["ausstattung_7"];
    $ausstattung_8 = $HTTP_POST_VARS["ausstattung_8"];
    $ausstattung_9 = $HTTP_POST_VARS["ausstattung_9"];
    $ausstattung_10 = $HTTP_POST_VARS["ausstattung_10"];
    $mietbeginn = $HTTP_POST_VARS["mietbeginn"];
    $kaution = $HTTP_POST_VARS["kaution"];
    $provision = $HTTP_POST_VARS["provision"];


    $aendern = "UPDATE
    mietobjekte
    SET
    obj_nr = '$obj_nr',
    ort = '$ort',
    strasse = '$strasse',
    flaeche = '$flaeche',
    wohungsart = '$wohnungsart',
    kaltmiete_m2 = '$kaltmiete_m2',
    kaltmiete_ges = '$kaltmiete_ges',
    nebenkosten_m2 = '$nebenkosten_m2',
    nebenkosten-ges = '$nebenkosten_ges',
    lage_whg = '$lage_whg',
    lage_haus = '$lage_haus',
    ausstattung_1 = '$ausstattung_1',
    ausstattung_2 = '$ausstattung_2',
    ausstattung_3 = '$ausstattung_3',
    ausstattung_4 = '$ausstattung_4',
    ausstattung_5 = '$ausstattung_5',
    ausstattung_6 = '$ausstattung_6',
    ausstattung_7 = '$ausstattung_7',
    ausstattung_8 = '$ausstattung_8',
    ausstattung_9 = '$ausstattung_9',
    ausstattung_10 = '$ausstattung_10',
    kaution = '$kaution',
    provision = '$provision',
    mietbeginn = '$mietbeginn',
    datum = NOW()
    WHERE
    id = '$id'";
    $update = mysql_query($aendern);
    ECHO "Daten wurden ordentlich an die Datenbank ?bermittelt, Fenster kann geschlossen werden";
    ?>



    Er spuckt zwar keine Fehlermeldung aus, aber geupdatet wird auch net
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. nach NOW() kommt ein ";"

    ausserdem w?rde ich hinter "$update = mysql_query($aendern);" ein "or die" setzen... damit bei fehlgeschlagener Eintragung auch ne "Fehlermeldung" kommt. Bsp:
    $update = mysql_query($aendern) or die ("Daten konnten nicht eingetragen werden weil der Scripter besoffen war");
  4. Autor dieses Themas

    r***a

    Gemacht wie befohlen, aber nu spuckt er ja wie gewollt oder eben nicht ne Fehlermeldung aus....warum nur heul*
  5. 0******a

    Weil das mit dem Semikolon hinter dem now() v?lliger Quark war. Du hattest das schon richtig.
    Wird die Tabelle insgesamt nicht upgedatet oder geht es nur um die Spalte datum? W?re auch ganz nett, wenn du den Aufbau der Tabelle (Spaltenname und Spaltentypen) mal posten w?rdest.
  6. Autor dieses Themas

    r***a

    id int(11)
    obj_nr text
    ort text
    strasse text
    flaeche text
    wohnungsart text
    kaltmiete_m2 text
    kaltmiete_ges text
    nebenkosten_m2 text
    nebenkosten_ges text
    lage_whg text
    lage_haus text
    ausstattung_1 text
    ...
    ausstattung_10 test
    kaution text
    provision text
    mietbeginn text
    bild text
    datum date
    aktiv int(1)
  7. 0******a

    ?ndere mal die WHERE-Klausel ab:
    Alt:
    WHERE
    id = '$id'";

    Neu:
    WHERE
    id = $id";

    Laut deiner Angaben zum Tabellenaufbau ist die Spalte id vom Typ int, daher wird der ?bergebene Wert nicht in Hochkommata oder Anf?hrungsstriche eingeschlossen.
    Die vorhin vorgeschlagene ?nderung mit dem Semikolon nach NOW() hast du hoffentlich auch r?ckg?ngig gemacht. Dann solltest du statt NOW() die Funktion CURDATE() benutzen. NOW() ist f?r Spalten von dem Typen DATETIME, du benutzt sie aber auf eine Spalte mit dem Typen DATE.

    Alt:
    datum = NOW()

    Neu:
    datum = CURDATE()
  8. Autor dieses Themas

    r***a

    $aendern = "UPDATE
    mietobjekte
    SET
    obj_nr = '$obj_nr',
    ort = '$ort',
    strasse = '$strasse',
    flaeche = '$flaeche',
    wohungsart = '$wohnungsart',
    kaltmiete_m2 = '$kaltmiete_m2',
    kaltmiete_ges = '$kaltmiete_ges',
    nebenkosten_m2 = '$nebenkosten_m2',
    nebenkosten-ges = '$nebenkosten_ges',
    lage_whg = '$lage_whg',
    lage_haus = '$lage_haus',
    ausstattung_1 = '$ausstattung_1',
    ausstattung_2 = '$ausstattung_2',
    ausstattung_3 = '$ausstattung_3',
    ausstattung_4 = '$ausstattung_4',
    ausstattung_5 = '$ausstattung_5',
    ausstattung_6 = '$ausstattung_6',
    ausstattung_7 = '$ausstattung_7',
    ausstattung_8 = '$ausstattung_8',
    ausstattung_9 = '$ausstattung_9',
    ausstattung_10 = '$ausstattung_10',
    kaution = '$kaution',
    provision = '$provision',
    mietbeginn = '$mietbeginn',
    datum = CURDATE()
    WHERE
    id = $id";
    $update = mysql_query($aendern) or die ("Daten konnten nicht ge&auml;ndert werden");
    ECHO "Daten wurden ordentlich an die Datenbank ?bermittelt, Fenster kann geschlossen werden";
    ?>

    so habsch nun geht aber immernoch net :-( menno

    kanns heirran liegen?

    Formular:

    include "dbconnect.php";
    $id_get = $HTTP_GET_VARS["id"];
    $abfrage = "SELECT * FROM mietobjekte WHERE id LIKE '$id_get'";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_array($ergebnis, MYSQL_ASSOC))
    {
    ECHO"
    ....
    <input type='hidden' name='id' value='".$id_get."'>
    ....
    ";
    ?>

  9. 0******a

    Auf jeden Fall. Wo kommt das denn her?
  10. Autor dieses Themas

    r***a

    na das das formular mit dem die daten eingegeben bzw. ge?ndert werden sollen hier der quelltext:

    sollte er zu lang sein oder nich wichtig bitte l?sch es direkt oder so liebster aller mods ;-)

    <?PHP
    include "dbconnect.php";
    $id_get = $HTTP_GET_VARS["id"];
    $abfrage = "SELECT * FROM mietobjekte WHERE id LIKE '$id_get'";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_array($ergebnis, MYSQL_ASSOC))
    {
    ECHO"
    <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>
    <title>Eingabeformular</title>
    </head>
    <body>
    <table border='0' width='100%' id='table1' cellspacing='0'>
    <tr>
    <td height='30' bgcolor='#F2F2F2'>
    <p align='center'><b><font face='Arial'>Eingabemaske f?r Mietobjekte mit der Datenbanknummer: ".$row['id']."</font></b></td>
    </tr>
    </table>
    &nbsp;<table border='1' width='100%' id='table5'>
    <tr>
    <td bgcolor='#C0C0C0'>
    <p align='center'><font face='Arial'><b>Allgemeine Objektdaten</b></font></td>
    </tr>
    </table>
    <br>
    <form action='update_miet.php' method='post' name='miet_eingabe'>
    <input type='hidden' name='id' value='".$id_get."'>
    <table border='1' width='100%' id='table2'>
    <tr>
    <td width='25%' bgcolor='#F2F2F2'><font face='Arial'><b>Objekt-Nummer:</b></font></td>
    <td width='25%'><font face='Arial'>
    <input value='".$row['obj_nr']. "' size='20' name='obj_nr' style='font-weight: 700'></font></td>
    <td width='25%' bgcolor='#F2F2F2'><font face='Arial'><b>Kaltmiete pro m?:</b></font></td>
    <td width='25%'><font face='Arial'>
    <input size='10' value='".$row['kaltmiete_m2']."' name='kaltmiete_m2' style='font-weight: 700'><b> </b>
    </font><b><font face='Arial'>?</font></b></td>
    </tr>

    [...] gek?rzt

    <tr>
    <td width='33%' bgcolor='#F2F2F2'>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width='33%' bgcolor='#F2F2F2'><b><font face='Arial'>Kaution:</font></b></td>
    <td><font face='Arial'>
    <input size='20' name='kaution' style='font-weight: 700'></font></td>
    </tr>
    <tr>
    <td width='33%' bgcolor='#F2F2F2'><b><font face='Arial'>Provision:</font></b></td>
    <td>
    <select name='provision' size='1'>
    <option selected><font face='Arial' color='#FF0000'><b>provisionsfrei</b></font></option>
    <option><font face='Arial'>1 Monatskaltmiete zzgl. MwSt</option>
    <option>2 Monatskaltmieten zzgl. MwSt</option>
    <option>3 Monatskaltmieten zzgl. MwSt</option>
    </font>
    </select></font></td>
    </tr>
    </table>
    <p>&nbsp;</p>
    <p><br>
    <input name='senden' type='image'
    onmouseover='this.src='images/but_senden_blue.gif''
    onmouseout='this.src='images/but_senden.gif''
    onmousedown='this.src='images/but_senden_blue_down.gif''
    onmousedown='return check()'
    onmouseup='this.src='images/but_senden_blue.gif''
    src='images/but_senden.gif' value=Login onSubmit='return check()'>
    </form>
    </p>
    <!-- <form name='mf' target='_blank' action='hochladen.php' method='post' enctype='multipart/form-data'>
    <input type='submit' NAME='senden' VALUE='Bild hochladen'>
    Bild: <input type='file' name='bilddatei' value='durchsuchen'> -->
    </form>
    </body>
    </html>
    ";
    }
    ?>
  11. 0******a

    Na ja, die betreffende Stelle hattest du ja bereits schon gepostet gerade. L?uft es denn jetzt?
  12. Autor dieses Themas

    r***a

    ne kommt immernoch fehlermeldung von wegen daten konnten nicht ge?ndert werden....
  13. 0******a

    Gib doch mal als Fehlermeldung folgendes aus:

    Alt:
    $update = mysql_query($aendern) or die ("Daten konnten nicht ge?ndert werden");

    Neu:
    $update = mysql_query($aendern) or die ("Daten konnten nicht ge?ndert werden<br>Abfrage: " . $aendern);

    Entweder findest du selbst den Fehler oder poste sonst halt die Ausgabe.

    Die Ausgabe mit die() solltest du aus Sicherheitsgr?nden aber wieder zur?ck?ndern, wenn das Problem hier gel?st ist.
  14. Autor dieses Themas

    r***a

    folgendes wird ausgegeben:

    UPDATE mietobjekte SET obj_nr = '1254', ort = 'Bautzen', strasse = 'Wendische Str.', flaeche = '83,00', wohungsart = '2', kaltmiete_m2 = '', kaltmiete_ges = '', nebenkosten_m2 = '', nebenkosten-ges = '', lage_whg = ' 1.OG', lage_haus = '', ausstattung_1 = '', ausstattung_2 = '', ausstattung_3 = '', ausstattung_4 = '', ausstattung_5 = '', ausstattung_6 = '', ausstattung_7 = '', ausstattung_8 = '', ausstattung_9 = '', ausstattung_10 = '', kaution = '', provision = 'provisionsfrei', mietbeginn = '', datum = CURDATE() WHERE id = 104
  15. 0******a

    Der Fehler ist:
    Alt:
    $aendern = "UPDATE
    mietobjekte
    SET
    [...]
    nebenkosten-ges = '$nebenkosten_ges',
    [...]
    WHERE
    id = $id";

    Neu:
    $aendern = "UPDATE
    mietobjekte
    SET
    [...]
    nebenkosten_ges = '$nebenkosten_ges',
    [...]
    WHERE
    id = $id";

    Voll ?bersehn...
    Aber lass mal die anderen ?nderungen auch drin.
  16. Autor dieses Themas

    r***a

    menno geht immernoch net...

    aber danke das du diesen....schhhhh kleinen Fehler gefunden hast, hab das 3 mal durchgelesen gehabt nach fehlern und nix gefunden

    fehler liegt wohl in line 7 Undefined variable: HTTP_POST_VERS hab mal error_reporting(E_ALL); gemacht

    [...]
    4 $obj_nr = $HTTP_POST_VARS["obj_nr"]; //variablen werden vom Formular ?bernommen
    5 $ort = $HTTP_POST_VARS["ort"];
    6 $strasse = $HTTP_POST_VARS["strasse"];
    7 $id = $HTTP_POST_VARS["id"];
    8 $kaltmiete_m2 = $HTTP_POST_VERS["kaltmiete_m2"];
    9 $kaltmiete_ges = $HTTP_POST_VARS["kaltmiete_ges"];
    10 $nebenkosten_m2 = $HTTP_POST_VARS["nebenkosten_m2"];
    11 $nebenkosten_ges = $HTTP_POST_VARS["nebenkosten_ges"];
    [...]

    dies steht ja im formular des der fehler? ich weis frage doppelt... :-)

    <input type='hidden' name='id' value='".$id_get."'>
  17. 0******a

    Na dann schau doch mal in die Zeile 7 *g*

    Hier die Fehler, die ich gefunden habe:
    update_miet.php:
    alt:
    $kaltmiete_m2 = $HTTP_POST_VERS["kaltmiete_m2"];

    neu:
    $kaltmiete_m2 = $HTTP_POST_VARS['kaltmiete_m2']; //VARS statt VERS


    alt:
    wohungsart = '$wohnungsart', // Zeile 38

    neu:
    wohnungsart = '$wohnungsart',


    Das solltest du auch ?ndern (ist aber in dieser Version von MySQL kein Fehler):
    miet_aendern.php:
    alt:
    $abfrage = "SELECT * FROM mietobjekte WHERE id like '$id_get'";

    neu:
    $abfrage = "SELECT * FROM mietobjekte WHERE id = $id_get";


    Danach sollte es funktionieren.
  18. Autor dieses Themas

    r***a

    ich danke dir vielmals.....

    ich hab die scripte bestimmt 8-10 mal selbst durchgelesen und nix gefunden was soooo einfach war...

    das nennt man wohl betriebsblind....

    und das mit dem like bei der abfrage wurde mir noch gesagt sei besser als = ...aber ich werd dir selbstverst?ndlich mehr geh?rt schenken
  19. 0******a

    Das LIKE ist eigentlich f?r Vergleiche von Strings. Da du aber eine ID (Nummer) vergleichst, macht das keinen Sinn.
    Ausserdem fehlen in deinem Skript noch die ganzen Parameter?berpr?fungen (f?r Hacker stehen T?r und Tor offen) und das Abfangen von Fehlern (z.B. nach Ausf?hrung von mysql_query()). Aber das kriegst du schon alles noch hin ;-)
  20. Autor dieses Themas

    r***a

    Parameter?berpr?fungen? ?hm

    EDIT 0-checka
    Problem per PN erkl?rt, da zu sehr vom Thema abweichend
  21. 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!