tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
392
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Hey,
    Hier mein Problem:
    Ich habe ein Update-Script geschrieben, nur leider tut es nicht das, was es soll: Updaten

    Hier die Scripts:

    Das "Form-Script":
    PHP-Code:
    <?php
    $Host        
    "localhost";
    $User        "web488";
    $Password    "aiosdaösodkjasd";
    $DBName        "usr_web488_3";
    $TableName    "edit";

    $Link mysql_connect($Host$User$Password);
    mysql_select_db($DBName);

    $Query "SELECT
                *
              FROM
                  
    $TableName";
    $Result mysql_query($Query);
    $row mysql_fetch_array($Result);
    ?>




    <form action="edit.php" method="post">


    <input type="text" name="name" value="<?php echo " ".$row['name']." "?>" />

    <p>

      <select name="geschlecht">
        <option name="männlich">männlich</option>
        <option name="weiblich">weiblich</option>
      </select>

    <p>

      <input name="alter"    type="text"    value="<?php echo " ".$row['alter']." "?>" /> - Alter
    <p>

      <input name="hobbys"   type="text"    value="<?php echo " ".$row['hobbys']." "?>" /> - Hobbys
    <p>

      <input name="motto"    type="text"    value="<?php echo " ".$row['motto']." "?>" /> - Motto
    <p>

      <input name="datum"    type="text"    value="<?php echo " ".$row['datum']." "?>" /> - Geb.Datum
    <p>

    <input type="submit" value="submit" />

    </form>


    Und das Update-Script an sich
    PHP-Code:
    <?php
    $Host        
    "localhost";
    $User        "web488";
    $Password    "alsdhfjö-akljesfzhawöef";
    $DBName        "usr_web488_3";
    $TableName    "edit";

    $Link mysql_connect($Host$User$Password);
    mysql_select_db($DBName);

    $name         $_POST['name'];
    $geschlecht     $_POST['geschlecht'];
    $alter         $_POST['alter'];
    $hobbys     $_POST['hobbys'];
    $motto         $_POST['motto'];
    $datum         $_POST['datum'];

    $Query = ("UPDATE
                
    $TableName
              set
                  name='
    $name',
                geschlecht='
    $geschlecht',
                alter='
    $alter',
                hobbys='
    $hobbys',
                motto='
    $motto',
                datum='
    $datum'");
                
    $Result mysql_query($Query);
    header ("Location: form.php");

    ?>

    Ich hoffe mal, Ihr könnt mir helfen

    David
     

  2. #2
    Avatar von forsterm
    forsterm forsterm ist offline Mitglied Rubin
    Registriert seit
    Nov 2004
    Ort
    Bayern
    Beiträge
    1.328
    Hallo,
    lass dir doch mal die Fehlermeldung von mysql_error() ausgeben.

    mfg
    forsterm
     
    Wie man Fragen richtig stellt

    Wichtig:
    Bitte markiert eure beantworteten Fragen als "erledigt" (links unten auf "Erledigt" klicken).
    __________________
    .:Mitglied #26 des 1. offiziellen Sven Uwe Fan-Clubs:.

  3. #3
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Hi,

    alsooo....

    wenn du etwas updaten willst, gibt es dafür ja bereits eine ID, welche du diesem Teil den du updaten willst zugewiesen wurde. Mit dieser ID rufst du die Werte ja aus der DB ab. Das fehlt - zumindest bei meinem überfliegen des Codes - in deinem Code.

    Wenn du nun per Form-Tag die Daten übergibst, musst du um Fehler zu vermeiden per If die übergebenen Werte prüfen ob diese vorhanden sind. Wenn nicht folgt else.

    Danach folgt der Query:
    PHP-Code:
    <?php

    // WHERE um das Update einer ID in der DB zuzuweisen
    // LIMIT, damit nur ein Update durchgeführt wird
    mysql_query("UPDATE 
                    
    $TableName
                 SET
                        name = '
    $name',
                    geschlecht = '
    $geschlecht',
                     alter = '
    $alter',
                    hobbys = '
    $hobbys',
                    motto = '
    $motto',
                    datum ='
    $datum
                 WHERE 
                    id = ''
                 ORDER BY 
                     id 
                 LIMIT 1"
    ) or die (mysql_error()); 
    // header als umleitung und weg von dem script oder formular inkl. exit, welches das script beendet.
    header("Location: http://www.domain.de/index.php");
    exit();
    ?>
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  4. #4
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Aber wenn keine WHERE `id` = x, dann werden alle Datensätze geupdated, was anscheinend nicht der Fall ist, sonst hätte er seine Frage anders formuliert. Es liegt an dem alter Feld. Alter ist ein von mysql reserviertes Wort. Setz alter in ` `, also `alter`, dann gehts.

    PHP-Code:
    $Query = ("UPDATE
                `
    $TableName`
              SET
                `name`='
    $name',
                `geschlecht`='
    $geschlecht',
                `alter`='
    $alter',
                `hobbys`='
    $hobbys',
                `motto`='
    $motto',
                `datum`='
    $datum'"); 
    Geändert von mAu (11.05.06 um 22:23 Uhr)
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Lass mich raten, welche Fehlermeldung kommt:
    MySQL Error: You have an error near 'alter = '…'' near Line n
    Problem: Du verwendest einen von MySQL reservierten Begriff („alter“). Zeichne deine Spalten einfach explizit mit den so genannten Backticks (`, U+0060) als solche aus. Siehe dazu auch die Schreibweise von Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen.
     
    Markus Wulftange

  6. #6
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Ok, alter hatte ich nicht genannt - deshalb (mysql_error());

    Was macht es für einen Sinn, wenn er alle Inhalte in einer Tabelle upt? Das macht überhaupt keinen Sinn - eine Tabelle für eine Zeile?
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  7. #7
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Nein, aber er hat gesagt, dass nichts geupdated wird, also Schlussfolgere ich, dass etwas an der Query nicht stimmt und er nicht wissen will, warum nicht genau ein Datensatz editiert wird. Ok?
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  8. #8
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Das innerhalb des Query was nicht stimmt ist fakt. Das sollte er aber selbst durch die Fehlermeldung sehen.

    Wie auch immer er was gemeint hat ist letztlich Spekulation und Auslegungssache. Lassen wir sinnloses......
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  9. #9
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Zitat Zitat von saila
    Das macht überhaupt keinen Sinn - eine Tabelle für eine Zeile?
    Nicht unbedingt. Ich hab in dem Portal hier auf der Arbeit eine Tabelle mit dem Namen settings. Fuer jede Einstellung gibt es dort ein Feld.
    Und da alle Einstellungen global sind brauche ich nur eine Zeile in der Tabelle.
    Ich habe dadurch aber immer noch die Moeglichkeit spaeter durch hinzufuegen einer UserID zu erlauben, dass User einige Einstellungen fuer sich anpassen koennen.

    @David: Ich nehme mal an, dass das Passwort oben in Deinem Quelltext nicht Dein richtiges Passwort ist sondern das Ergebnis einer Tastaturvergewaltigung, richtig?
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  10. #10
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    hey Jungs,
    danke schon mal für die vielen Antworten

    Zu einigen von euch: Nein, es kam noch keine Fehlermeldung....
    @ Dennis: Jau, das ist das Ereignis des sinnlosen rumhacken auf der Tastatur

    P.s.: Ich habe es jetzt so probiert:
    $Query = "UPDATE
    $TableName
    SET
    `name`='$name'";
    und so weiter...
    jetzt es

    Danke mAu...
    Hab ich wohl übersehen die ``

    David
    Geändert von Kalma (12.05.06 um 07:33 Uhr)
     

  11. #11
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Noch ein kleiner Sicherheitshinweis: Beschäftige dich mal mit SQL-Injektionen.
     
    Markus Wulftange

Ähnliche Themen

  1. Update Script
    Von tioz im Forum PHP
    Antworten: 1
    Letzter Beitrag: 09.01.08, 21:42
  2. Pn-script... Problem mit DELETE/UPDATE...
    Von Tobbes im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 01.07.06, 01:28
  3. Problem bei Update Script
    Von Chaoslion im Forum PHP
    Antworten: 1
    Letzter Beitrag: 04.12.05, 13:22
  4. Update script bringt fehler
    Von cofter im Forum PHP
    Antworten: 16
    Letzter Beitrag: 25.01.05, 13:28
  5. Denkfehler im Update-Script?
    Von Hockeyfan4444 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 05.11.04, 16:35