fritz schneider: function und formular - Wie geht das?

Servus,

habe eine functions.php erstellt - alle Funktionen funktionieren auch außer diese, welche mit Formularen zu tun haben. Also, dass die Werte in den Formularfeldern korrekt in die Datenbank eingetragen werden.

inhalt der uebersicht.php
------------------------------------
<?php
include "functions.php";

if ($aktion == "aendern") {
  aendern();
}
elseif ($aktion == "aendern_a") {
 aendern_a();
}
elseif ($aktion == "loeschen") {
 loeschen();
}
elseif ($aktion == "loeschen_a") {
 loeschen_a();
}
elseif ($aktion == "neu") {
 neu();
}
elseif ($aktion == "neu_a") {
 neu_a();
}
elseif ($aktion == "zeigen") {
 zeigen();
}
else {
 zeigen();
}
?>
--------------------------------------------

hier ist das Formular welches mit der Funktion aendern()
--------------------------------------------
// Funktion ÄNDERN FORMULAR

function aendern()
{
include "header.php";
include "dbconfig.php";
$id = $_GET['id'];
$link = mysql_connect($dbhost, $dbuser, $dbpass)
        or die ("Could not connect");
          mysql_select_db ($dbname)
        or die ("Could not select database");
         $query="SELECT * FROM $dbtable WHERE id = $id";
         $result = mysql_query ($query)
             or die ("Query failed");
while($line = mysql_fetch_array($result))
{
  print "<font color='#ff0000'>Ändern des Accounts bei: <b>$line[url]</b></font><br><br>
<form action='uebersicht.php?aktion=aendern_a' method='get'>
<table border='0'>
<tr>
<td align='right'><b><font size='2'>Name:</b></td>
<td><input type='text' class='textinput' size='30' name='name' value='$line[name]'></td>
</tr>}

mysql_close($link);
 print "<tr>
<td> </td><td><input type='submit' class='submit' value='Abschicken'>
</td>
</tr>
</table>
</form>";
include "footer.php";
}

-------------------------------------------------

Abschließend hier noch die funktion aendern_a worin die daten in die datenbank eingetragen werden soll:
-------------------------------------------------
// Funktion Ändern OK
function aendern_a () {
header( 'refresh: 1; url=uebersicht.php?aktion=zeigen&orderby=deadline&sort=DESC' );
include "header.php";
include "dbconfig.php";
$user_id = $_GET['id'];
$link = mysql_connect($dbhost,$dbuser,$dbpass);
if(!mysql_select_db($dbname)) {
  print("Datenbank nicht gefunden !"); die; }
$insert = "UPDATE $dbtable SET name = '$name' WHERE id = '$user_id'";
if(!mysql_query($insert,$link)) {
    print("Fehler beim Ändern !"); die; }
mysql_close($link);
print("<br><br><b><font color='#ff0000' size='3'>Projekt geändert !");
include "footer.php";
}
-----------------------------------------------

ich erhalte die fehlermeldung "Query failed" und weiß absolut nicht wieso es nicht funzt - liegt es vielleicht an

<form action='uebersicht.php?aktion=aendern_a' method='get'>

das dort eine andere url eingegeben werden muss?

ciao fritz

p.s. sorry, dass das posting so lang geworden ist - aber so sind alle daten vorhanden.

  1. <form action='uebersicht.php?aktion=aendern_a' method='get'>

    Also einen GetQuery in einer action hab ich noch nie gesehen und kann mir auch nicht vorstellen dass das geht. Wenn dann würd ich die variable aktion so übergeben:

    print '
    <form action="uebersicht.php" method="post">
    <input type="hidden" name="aktion" value="' . aender_a . '">
    usw.
    </form>';

    Man achte auch auf die " in den html tags keine '.

    Das hat zwar nix mit nem query fehler zu tun, aber vielleicht hilfts trotzdem weiter...

    Sorry 24 geht weiter... ;-)

    Stephan

    1. hi stephan,

      Man achte auch auf die " in den html tags keine '.

      Das hat zwar nix mit nem query fehler zu tun, aber vielleicht hilfts trotzdem weiter...

      Sorry 24 geht weiter... ;-)

      nö hat auch nicht funktioniert - er hat zwar jetzt keine fehlermeldung ausgespuckt, dafür wurden die geänderten daten aber nicht in die datenbank überschrieben.

      hast du vielleicht noch eine idee?

      ciao fritz

      1. Kommando zurück!

        hab den Fehler gefunden, undzwar ist es die Superglobale $_GET wenn es per post übergeben wird, geht das ja schlecht ;-)

        danke nochmal

        ciao fritz