mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 23:31 Benutzername: Passwort: Auto-Login

Thema: PHP/MySQL >> Problem bei DB-Update per Formular vom 16.03.2013


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP/MySQL >> Problem bei DB-Update per Formular
Autor Nachricht
babeinthewoods
Threadersteller

Dabei seit: 16.03.2013
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 16.03.2013 22:03
Titel

PHP/MySQL >> Problem bei DB-Update per Formular

Antworten mit Zitat Zum Seitenanfang

Guten Abend,

ich habe ein PHP-MySQL-Problem und bitte um Hilfe.

Folgender Sachverhalt zum Verständnis:

Es existieren drei Dateien. Eine problemlose dbconnect.php, sowie eine ajax.php und eine selectboxen.php.

Die ajax.php enthält ein Affenformular mit method "post".
Dieses Formular besteht aus zwei per Ajax verketteten Selectboxen, je einem input type "text" für Benutzer und Passwort und einem input type "submit".

Die Verkettung der Selectboxen funktioniert.

Gewünscht ist dass die Werte aus den beiden inputs mit type "text", im Rahmen eines MySQL-Updates, in die entsprechenden Zellen der DB-Tabellenspalten benutzer und passwort eingetragen werden, welche zu der per Selectboxen ausgewählten Tabellen-Benutzer-Kombination gehören.

Ich habe dies durch Deklaration von Variablen und deren Eintragung in`s MySQL-Statement versucht.
Aber der gewünschte Effekt tritt nicht ein.

Die DB samt entsprechenden Tabellen, existiert natürlich bereits und die DB connection steht ebenfalls.

Über konstruktive Unterstützung würde ich mich freuen.

Im Voraus vielen Dank.

Anbei die relevanten Codes.

Der Code aus der ajax.php:
Code:
<?php
   include("dbconnect.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Datensatz ändern</title>
            <script type="text/javascript" src="http://www.google.com/jsapi"></script>
            <script type="text/javascript">google.load("jquery", "1.3.1");</script>
            <script type="text/javascript">
                $(document).ready(function()
                    {
                        $("#table").change(function()
                            {
                                var table=$(this).children('option:selected').val();
                                $("#user").load("selectboxen.php",{value: table});
                            }
                        );
                    }
                );
            </script>
           
        <style type="text/css">
            label
                {
                    padding-right: 10px;
                }
        </style>   
    </head>
   
    <body>
        <form method="post" action="ajax.php">
                <select id="table" name="tableselect">
                    <option value="0">Bitte Tabelle auswählen</option>
                    <option value="1">login</option>
                    <option value="2">logout</option>
                </select>
               
                <select id="user" name="userselect">
                </select>
               
                <p><label>Benutzer</label><input type=text name="benutzer"></p>
                <p><label>Passwort</label><input type=text name="passwort"></p>
               
                <input type="submit" value="Änderung speichern">
        </form>
       
        <?php
            $table = $_POST["tableselect"];
            $userselect = $_POST["userselect"];
            $benutzer = $_POST["benutzer"];
            $passwort = $_POST["passwort"];
           
            $passwort = md5($passwort);
           
            $update = mysql_query("UPDATE $table SET benutzer = '$benutzer', passwort = '$passwort' WHERE benutzer = '$userselect'");
        ?>
    </body>
   
</html>

Der Code aus der selectboxen.php:
Code:
<?php
   include("dbconnect.php");
?>

<?php
   if($_POST["value"]==1){
?>

   <option>Bitte Benutzer auswählen</option>
                  <?php
                     $ergebnisid = mysql_query("SELECT benutzer FROM login");
                     while($row = mysql_fetch_object($ergebnisid))
                     {
                        echo("<option>");
                        echo $row->benutzer;
                        echo("</option>");
                     }   
                  ?>
   
<?  }
   elseif($_POST["value"]==2){
?>

    <option>Bitte Benutzer auswählen</option>
                        <?php
                            $ergebnisid = mysql_query("SELECT benutzer FROM logout");
                            while($row = mysql_fetch_object($ergebnisid))
                            {
                                echo("<option>");
                                echo $row->benutzer;
                                echo("</option>");
                            }   
                        ?>
    <?
    }
    ?>
  View user's profile Private Nachricht senden
xaos

Dabei seit: 06.10.2004
Ort: Kargath
Alter: -
Geschlecht: -
Verfasst Sa 16.03.2013 22:55
Titel

Antworten mit Zitat Zum Seitenanfang

Firebug/Chrome Dev-Tools/console.log/echo/var_dump...

Ab Php 5.5 ist die mysql-Api deprecated, es empfiehlt sich mal Überlegungen in Richtung mysqli oder PDO_MySQL anzustellen...

Und ich hoffe die fehlende Prüfung der Daten ist weil du es für hier gekürzt hast...


Zuletzt bearbeitet von xaos am Sa 16.03.2013 22:57, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
babeinthewoods
Threadersteller

Dabei seit: 16.03.2013
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 16.03.2013 23:00
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo xaos,

vielen Dank für Deine Hinweise.
Ich werde diesbezüglich sehen, ob es mir weiter hilft.
Hast Du zufällig auch schon einen kokreten Verdacht, wo mein Problem liegt?
  View user's profile Private Nachricht senden
babeinthewoods
Threadersteller

Dabei seit: 16.03.2013
Ort: -
Alter: -
Geschlecht: -
Verfasst So 17.03.2013 12:11
Titel

Antworten mit Zitat Zum Seitenanfang

Ich möchte mich nochmal bei xaos für seinen Beitrag bedanken.
Ich habe versucht seine Vorschläge umzusetzen, habe aber nicht genug Erfahrung und bräuchte konkretere Unterstützung.
Über etwas ausführlichere Hilfe, für einen Anfänger in Sachen PHP, würde ich mich sehr freuen.
Was habe ich hinsichtlich der Variablen falsch gemacht?
  View user's profile Private Nachricht senden
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 109
Geschlecht: Männlich
Verfasst So 17.03.2013 17:57
Titel

Antworten mit Zitat Zum Seitenanfang

brech den vorgang in kleinere schritte runter und prüfe diese schritt für schritt.
freunde dich mit console.log(), print_r() und den server logs (http/php/mysqk) an.
wenn du festgestellt hast _was_ nicht funktioniert und dafür keine lösung weist, frag noch einmal Lächel
  View user's profile Private Nachricht senden
babeinthewoods
Threadersteller

Dabei seit: 16.03.2013
Ort: -
Alter: -
Geschlecht: -
Verfasst So 17.03.2013 18:13
Titel

Antworten mit Zitat Zum Seitenanfang

hallo remote,

vielen Dank. Das mache ich jetzt mal.
  View user's profile Private Nachricht senden
babeinthewoods
Threadersteller

Dabei seit: 16.03.2013
Ort: -
Alter: -
Geschlecht: -
Verfasst So 17.03.2013 19:44
Titel

Antworten mit Zitat Zum Seitenanfang

hallo remote,

nochmal vielen Dank für Deine Tipps.

Dank print_r habe ich meinen Fehler schnell gefunden.

Ich hatte in der Selectbox named tableselect, als Values der einzelnen Options, die Indexnummern angegeben.
Nun wurden diese natürlich auch in die Variable "geschrieben".
Da meine DB-Tabellen aber login und logout heißen und nicht 1 und 2, konnten die Values aus den "text"-Inputs, natürlich auch nicht als Ersetzung in der DB dienen. Die Tabellennamen haben einfach nicht übereingestimmt.

@xaos: Du wolltest mit deinen Tipps sicher auf das selbe hinaus, wie remote. Daher auch Dir nochmal ganz herzlichen Dank.

Ihr seid super!!!

Einen schönen Sonntagabend
  View user's profile Private Nachricht senden
 
Ähnliche Themen Problem mit UPDATE (php und MySQL)
Problem mit mysql UPDATE
[php] mysql update & f-/-open/-puts - problem
mysql update funktioniert nicht
[PHP / MYSQL] Update geht nicht
MySQL - Update mit AND-Verknüpfung möglich?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.