Datenbank aendern

Hi,

wenn ich das richtig sehe, versuchst du eine Variable mit if($gezeigt == "ja") abzufragen, die du vorher nie definiert hast.

Was du machen müsstest, um die If-Abfrage zu realisieren, ist ein Formular das beim Senden der Daten auf die PHP-Datei zugreift. Dort kannst du dein verstecktes Feld einbauen. In deiner PHP-Datei fragst du dann, je nach Methode (im <form> tag method="post" oder method="get") die Daten mittels $gezeigt = $_POST["gezeigt"]; oder $gezeigt = $_GET["gezeigt"]; ab.

Stell dir das so vor:

Du hast ein Glas, in dem sitzt ein kleiner Mann. Wenn der Mann sagt: mach das Glas auf, machst du es auf. Aber da der man im Glas sitz kannst du nicht hören was er sagt, also wirst du das Glas nie öffnen.

Verstehst was ich meine? :D

Außerdem ist es nicht sinnig die das Hidden-Objekt so zu verwenden. Der Wert ist "ja" dauerhaft gegeben. Also brauchst du auch keine If abfrage, da ja klar ist, dass das Hidden-Objekt immer den Wert "ja" hat.

Bau doch einfach mal die If-Abfrage raus, und gucke ob es dann geht :)
 
Zuletzt bearbeitet:
Du hast ein Glas, in dem sitzt ein kleiner Mann. Wenn der Mann sagt: mach das Glas auf, machst du es auf. Aber da der man im Glas sitz kannst du nicht hören was er sagt, also wirst du das Glas nie öffnen.
:-)

Bau doch einfach mal die If-Abfrage raus, und gucke ob es dann geht :)
Das wird ihm vermutlich eine ganze Menge undefined Variables einhandeln ;)
 
So ich habe jetzt das gemacht der neue Script sieht so aus:

PHP:
<?php

include ('connect.php');
mysql_connect($host, $user, $pw);
mysql_select_db($database);


{
    $sql = " UPDATE mitglieder SET per_nummer='$per_nummer', per_name='$per_name', per_bewilligung='$per_bewilligung', per_erw='$per_erw', per_kinder='$per_kinder', per_gesamt='$per_gesamt', per_wohnort='$per_wohnort', WHERE per_id=$welcher";
    $erg = mysql_query($sql);


    $erg = mysql_query($sql);

    while (list($per_id, $per_nummer, $per_name, $per_bewilligung, $per_erw, $per_kinder,
        $per_gesamt, $per_wohnort) = mysql_fetch_row($erg))
    {

?>
   <form action='aender1.php?welcher=<?php echo $welcher; ?>' method='post' name='formi'>
        <input type='hidden' name='gezeigt' value='ja'></input>
        <table border='0' cellpadding='5' cellspacing='0' bgcolor='#E0E0E0'>
             <tr>
                 <td align='right'>
                     Nummer:
                 </td>
                 <td>
                     <input name='per_nummer' value='<?php echo $per_nummer; ?>' type='text' size='30' maxlength='40'>
                 </td>
            </tr>

             <tr>
                 <td align='right'>
                     Name:
                 </td>
                 <td>
                     <input name='per_name' value='<?php echo $per_name; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>

             <tr>
                <td align='right'>
                     Bewilligung:
                </td>
                <td>
                    <input name='per_bewilligung'value='<?php echo $per_bewilligung; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>

             <tr>
                 <td align='right'>
                     Erw:
                </td>
                <td>
                    <input name='per_erw' value='<?php echo $per_erw; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
             <tr>
                 <td align='right'>
                     Kinder:
                 </td>
                 <td>
                     <input name='per_kinder' value='<?php echo $per_kinder; ?>' type='text' size='30' maxlength='40'>
                 </td>
            </tr>
            <tr>
                 <td align='right'>
                     Gesamt:
                </td>
                <td>
                    <input name='per_gesamt' value='<?php echo $per_gesamt; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
            <tr>
                <td align='right'>
                    Wohnort:
                </td>
                <td>
                    <input name='per_wohnort' value='<?php echo $per_wohnort; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
            <tr>
                <td align='right'>
                    Formular:
                </td>
                <td>
                     <input type='submit' value='Absenden'>
                     <input type='reset' value='Abbrechen'>
                </td>
            </tr>
            </table>
            <br><br>
             <a href='index.php'>Zurück zur Startseite</a><br><br> 
    </form>
<?php

    }
}
mysql_close();

?>


jetzt gibt er mir diese Fehlmeldung raus:
Code:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\kassen system\aender1.php on line 23

Ich möchte gerne dass das Formular mir eine bestehenden Datensatz aus meiner datenbank verandert wenn sich z.b der wohnort endert
 
Bei Mysql-Fehlern macht sich ein or die(mysql_error()); immer ganz gut. Das sagt dir dann, wo sich der Fehler befindet.

Aber ich wage zu vermuten, dass es sich um die variable $welcher handelt. Sie wurde bis jetzt nie definiert.

Wenn du sie aus einem vorhergehendem Formular übergeben möchtest, mach das mittels einem Hidden-Objekt. dort setzt du als wert die ID und überträgst die daten mittels POST. Dann kannst du sie auslesen.

Ich frage mich sowieso woher du die ganzen variablen nimmst...die dürften alle leer sein. Deshalb fang ich mal bei 0 an.

Verstehe ich das richtig? Du hast ein Formular, das beim Drücken des <input type="submit"> daten übermittelt. Diese Daten sollen einen vorhandenen Datensatz in deiner Datenbank updaten.

Wenn das soweit richtig ist, musst du die Daten aus der vorhergehenden Seite auslesen.

// Edit

Achja, was mir auch aufgefallen ist: Wenn du Variablen in deinen MySQL Syntax setzt mach per_id='$welcher'


Bleibt immernoch die Frage, woher du die Variable $welcher hernimmst.

Ich gehe jetzt einfach mal davon aus, das du sie irgendwo definiert hast. Vielleicht hilft dir das ja etwas weiter:

PHP:
<?php

include ('connect.php');
mysql_connect($host, $user, $pw);
mysql_select_db($database);

switch($_GET["action"]) {
case "":

    $sql = " SELECT per_id, per_nummer, per_name, per_bewilligung, per_erw, per_kinder, per_gesamt, per_wohnort FROM mitglieder WHERE per_id = '$welcher'");
    $erg = mysql_query($sql) or die(mysql_error());

    while (list($per_id, $per_nummer, $per_name, $per_bewilligung, $per_erw, $per_kinder,
        $per_gesamt, $per_wohnort) = mysql_fetch_row($erg))
    {

?>
   <form action='aender1.php?action=save' method='post' name='formi'>
        <input type='hidden' name='welcher' value='<?php echo $welcher; ?>'></input>
        <table border='0' cellpadding='5' cellspacing='0' bgcolor='#E0E0E0'>
             <tr>
                 <td align='right'>
                     Nummer:
                 </td>
                 <td>
                     <input name='per_nummer' value='<?php echo $per_nummer; ?>' type='text' size='30' maxlength='40'>
                 </td>
            </tr>

             <tr>
                 <td align='right'>
                     Name:
                 </td>
                 <td>
                     <input name='per_name' value='<?php echo $per_name; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>

             <tr>
                <td align='right'>
                     Bewilligung:
                </td>
                <td>
                    <input name='per_bewilligung'value='<?php echo $per_bewilligung; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>

             <tr>
                 <td align='right'>
                     Erw:
                </td>
                <td>
                    <input name='per_erw' value='<?php echo $per_erw; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
             <tr>
                 <td align='right'>
                     Kinder:
                 </td>
                 <td>
                     <input name='per_kinder' value='<?php echo $per_kinder; ?>' type='text' size='30' maxlength='40'>
                 </td>
            </tr>
            <tr>
                 <td align='right'>
                     Gesamt:
                </td>
                <td>
                    <input name='per_gesamt' value='<?php echo $per_gesamt; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
            <tr>
                <td align='right'>
                    Wohnort:
                </td>
                <td>
                    <input name='per_wohnort' value='<?php echo $per_wohnort; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
            <tr>
                <td align='right'>
                    Formular:
                </td>
                <td>
                     <input type='submit' value='Absenden'>
                     <input type='reset' value='Abbrechen'>
                </td>
            </tr>
            </table>
            <br><br>
             <a href='index.php'>Zurück zur Startseite</a><br><br> 
    </form>
<?php

    }
break 1;
case "save":
  $per_nummer = $_POST["per_nummer"];
  $per_name = $_POST["per_name"];
  $per_bewilligung = $_POST["per_bewilligung"];
  $per_erw = $_POST["per_erw"];
  $per_kinder = $_POST["per_kinder"];
  $per_gesamt = $_POST["per_gesamt"];
  $per_wohnort = $_POST["per_wohnort"];
  $welcher = $_POST["per_id"];
  $sql = "UPDATE mitglieder SET per_nummer='$per_nummer', per_name='$per_name', per_bewilligung='$per_bewilligung', per_erw='$per_erw', per_kinder='$per_kinder', per_gesamt='$per_gesamt', per_wohnort='$per_wohnort', WHERE per_id='$welcher'");
  $erg = mysql_query($sql);
  
  // hier dann der Header oder dein htmlgedoehns
  
break 1;
}
mysql_close();

?>

Da das nur gerade mal schnell geschrieben ist, ist natürlich jeder angehalten Fehler anzumerken :)
 
Das habe ich schon um die datenbank zuschreiben ist dieses

PHP:
<?php


  include('connect.php');
   mysql_connect($host, $user, $pw);
   mysql_select_db($database);
  if (isset($_POST['gezeigt']))
     {

       print"<a href=mitgliederanzeigen.php>Mitgliederanzeigen</a>";
       

            $per_nummer = $_POST['per_nummer'];
                $per_name = $_POST['per_name'];
                $per_bewilligung = $_POST['per_bewilligung'];
                $per_erw = $_POST['per_erw'];
                $per_kinder = $_POST['per_kinder'];
                $per_gesamt = $_POST['per_gesamt'];
                $per_wohnort = $_POST['per_wohnort'];
                
           $sql = "INSERT INTO mitglieder(nummer,name,bewilligung,erw,kinder,gesamt,wohnort) VALUES ('$per_nummer','$per_name','$per_bewilligung','$per_erw','$per_kinder','$per_gesamt','$per_wohnort')";
           $erg = mysql_query($sql);

      }
 else {
print"<form name='form1' action='' method='post' align='center'>

           <table border='0' bgcolor='#BBBBBB' width='300pt'>
           <tr>
           <td></td>
           <td><input type='hidden' name='gezeigt' value='ja'></td>
           </tr>
           <tr>
           <td>Nummer:</td>
           <td><input type='text' name='per_nummer' value='' maxlength='30' tabindex='1'></td>                                                                               </tr>
            <tr>
                 <td>Name:</td>
                 <td><input type='text' name='per_name' value='' maxlength='30' tabindex='2'></td>                                                                                 </tr>
                  <tr>
    <td>Bewilligung:</td>
    <td><input type='text' name='per_bewilligung' value='' maxlength='20' size='20'></td>
   </tr>
   <tr>
    <td>Erw.:</td>
    <td><input type='text' name='per_erw' value='' maxlength='30'></td>
   </tr>
   <tr>
    <td>Kinder:</td>
    <td><input type='text' name='per_kinder' value='' maxlength='30'></td>
   </tr>
   <tr>
    <td>Gesamt:</td>
    <td><input type='text' name='per_gesamt' value='' maxlength='20' size='20'></td>
   </tr>
   <tr>
    <td>Wohnort:</td>
    <td><input type='text' name='per_wohnort' value='' maxlength='30'></td>
   </tr>
   
        <td>
        <td><input type='submit' name='sender' value='eintragen' tabindex='10'></td>                                                              </tr>
                           </table>
                           </form>";  }
mysql_close();

            ?>
Das geht auch


Nun möchte ich gerne das ich in den datensatz überschreiben/ändern kann und dies bekomme ich nicht hin und brauche hilfe

PHP:
<?php

include ('connect.php');
mysql_connect($host, $user, $pw);
mysql_select_db($database);

switch($_GET["action"]) {
case "":

    $sql = " SELECT per_id, per_nummer, per_name, per_bewilligung, per_erw, per_kinder, per_gesamt, per_wohnort FROM mitglieder WHERE per_id = '$welcher'");
    $erg = mysql_query($sql) or die(mysql_error());

    while (list($per_id, $per_nummer, $per_name, $per_bewilligung, $per_erw, $per_kinder,
        $per_gesamt, $per_wohnort) = mysql_fetch_row($erg))
    {

?>
   <form action='aender2.php?action=save' method='post' name='formi'>
        <input type='hidden' name='welcher' value='<?php echo $welcher; ?>'></input>
        <table border='0' cellpadding='5' cellspacing='0' bgcolor='#E0E0E0'>
             <tr>
                 <td align='right'>
                     Nummer:
                 </td>
                 <td>
                     <input name='per_nummer' value='<?php echo $per_nummer; ?>' type='text' size='30' maxlength='40'>
                 </td>
            </tr>

             <tr>
                 <td align='right'>
                     Name:
                 </td>
                 <td>
                     <input name='per_name' value='<?php echo $per_name; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>

             <tr>
                <td align='right'>
                     Bewilligung:
                </td>
                <td>
                    <input name='per_bewilligung'value='<?php echo $per_bewilligung; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>

             <tr>
                 <td align='right'>
                     Erw:
                </td>
                <td>
                    <input name='per_erw' value='<?php echo $per_erw; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
             <tr>
                 <td align='right'>
                     Kinder:
                 </td>
                 <td>
                     <input name='per_kinder' value='<?php echo $per_kinder; ?>' type='text' size='30' maxlength='40'>
                 </td>
            </tr>
            <tr>
                 <td align='right'>
                     Gesamt:
                </td>
                <td>
                    <input name='per_gesamt' value='<?php echo $per_gesamt; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
            <tr>
                <td align='right'>
                    Wohnort:
                </td>
                <td>
                    <input name='per_wohnort' value='<?php echo $per_wohnort; ?>' type='text' size='30' maxlength='40'>
                </td>
            </tr>
            <tr>
                <td align='right'>
                    Formular:
                </td>
                <td>
                     <input type='submit' value='Absenden'>
                     <input type='reset' value='Abbrechen'>
                </td>
            </tr>
            </table>
            <br><br>
             <a href='index.php'>Zurück zur Startseite</a><br><br> 
    </form>
<?php

    }
break 1;
case "save":
  $per_nummer = $_POST["per_nummer"];
  $per_name = $_POST["per_name"];
  $per_bewilligung = $_POST["per_bewilligung"];
  $per_erw = $_POST["per_erw"];
  $per_kinder = $_POST["per_kinder"];
  $per_gesamt = $_POST["per_gesamt"];
  $per_wohnort = $_POST["per_wohnort"];
  $welcher = $_POST["per_id"];
  $sql = "UPDATE mitglieder SET per_nummer='$per_nummer', per_name='$per_name', per_bewilligung='$per_bewilligung', per_erw='$per_erw', per_kinder='$per_kinder', per_gesamt='$per_gesamt', per_wohnort='$per_wohnort', WHERE per_id='$welcher'");
  $erg = mysql_query($sql);
  
  // hier dann der Header oder dein htmlgedoehns
  
break 1;
}
mysql_close(); 
?>

Hallo Weedo,

Hab dein Script mal eingebaut und der wirft mir diese fehler meldung raus

Parse error: syntax error, unexpected ')' in C:\wamp\www\kassen system\aender2.php on line 18
 
Zuletzt bearbeitet:
jetzt gibt er mir diese meldung

Code:
Unknown column 'per_id' in 'field list'


wenn ich das richtig verstehe ist das feld id nicht da?
 
Was muss ich jetzt machen ich möchte ja das ich das formular sehe und die daten eingeben kann und diese dann in der Datenbank verändert wird.
 
Zurück