Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] sql update zuweisung mit dropdown

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] sql update zuweisung mit dropdown

    hallo,

    ich hänge wieder mal an einer sache.
    ich möchte ein sql-update durchführen bei dem das WHERE mittels dropdown definiert wird.

    das input feld habe ich so definiert:

    PHP-Code:
    <form method="POST" action="../q_update_script.php">
        
        <table>
            <tr>
                <td>Match: </td>
                <td>
                <select> 
                    <?php 
                        $sql 
    "SELECT Datum, Heim, Gast FROM invest_sys WHERE Datum BETWEEN '2014-09-16' AND '2014-12-10'"
                        
    $result mysql_query($sql) OR die(mysql_error()); 
                            while(
    $row mysql_fetch_assoc($result)) { 
                        echo 
    "<option>" $row['Datum'] . ' | ' $row['Heim'] . ' : ' $row['Gast'] . "</option>"
                    } 
                    
    ?> 
                </select>
                </td>
            </tr>
            <tr>
                <td>Quote: </td><td><input type="text" name="quote" required/></td>
            </tr>
        </table>
        
        <input type="submit" name="quote_entry" value="Eintragen"/>
    </form>
    das ganze wird dann so vom script verarbeitet:

    PHP-Code:
        $quote $_POST['quote'];


        if(isset(
    $_POST['quote_entry'])) {
        
        
    $sql "UPDATE invest_sys SET Quote ='".$_POST['quote']."' WHERE Heim = '".$row['Heim']."' AND Gast = '".$row['Gast']."'";
        
    $query mysql_query($sql);
        
        echo 
    "Quoten-Update eingetragen";
        
        }else{
            echo 
    "Fehler";

        } 
    das definieren der quote funktioniert, doch bei der zuweisung der variablen scheitert es dann.

    wenn ich das ganze ausführe bekomme ich die Fehlermeldung:
    "Notice: Undefined variable: row in C:\xampp\htdocs\ratnoize\q_update_script.php on line 18"

    was die im 2. php-abschnitt definierte zeile
    PHP-Code:
    $sql "UPDATE invest_sys SET Quote ='".$_POST['quote']."' WHERE Heim = '".$row['Heim']."' AND Gast = '".$row['Gast']."'";
        
    $query mysql_query($sql); 
    betrifft.

    kann mir jemand sagen wo ich dabei den fehler gemacht habe bzw warum er die variablen aus dem formular nicht akzeptiert?

    PS: ich weiß ich muss das ganze noch auf mysqli oder PDO umstellen, darum wird sich in ca. 2 wochen gekümmert.


  • #2
    Das was du abschickst landet im $_POST Array. In deinem Update-script gibt es kein $row.
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      Nutze PDO oder MySQLi. Dies wurde dir bestimmt schon 20 mal gesagt.
      Deine Querys sind weiterhin SQL-Injection anfällig. Verwende im Zusammenhang mit PDO/MySQLi Prepared Statements. Wurde dir auch schon mehrmals gesagt.

      Freut mich dass ich helfen konnte.
      Zitat von derwunner
      "Ein FISI ist auf gut-deutsch der Netzwerker. Das heißt Du gehst rauß zum Kunden oder auf die Straße und verlegst Leitungen" - derwunner 2015

      Kommentar


      • #4
        PHP-Code:
        $sql "UPDATE invest_sys SET Quote ='".$_POST['quote']."' WHERE Heim = '".$row['Heim']."' AND Gast = '".$row['Gast']."'"
            
        $query mysql_query($sql); 
        "Notice: Undefined variable: row in C:\xampp\htdocs\ratnoize\q_update_script.php on line 18"
        kann mir jemand sagen wo ich dabei den fehler gemacht habe
        Du hast den Fehler damit schon gefunden, gratuliere. Brauchst ihn nur noch zu beheben. $row gibt es nicht, wurde oben ja schon erwähnt.

        Generelle Anmerkung noch: Es ist übrigens nicht die Aufgabe des Forums, deine Fehler (vor allem so offensichtliche) zu finden/beheben, das ist ein Trugschluss. Debugging ist etwas ganz normales was zum Programmieren dazu gehört und deine Fehler findest du bitte selbst, in dem Fall hat das PHP schon für dich gemacht.
        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          1. Gib dem Dropdown nen name:
          PHP-Code:
          <select name="some_name"
          2. Gib den Options ne eindeutige ID als Value:
          PHP-Code:
          echo '<option value="' $some_id '">' $row['Datum'] . ' | ' $row['Heim'] . ' : ' $row['Gast'] . "</option>"
          3. Update By Id:
          PHP-Code:
          $sql "UPDATE invest_sys SET Quote ='".$_POST['quote']."' WHERE id_feld='".$POST['some_name']."' 
          Als Id legst du dir am besten nen integer auto_increment feld in der DB an.

          Kommentar


          • #6
            super, vielen vielen dank @-misc-
            anfangs hat es zwar nicht geklappt aber dann hab ich in das sql-SELECT den spaltennamen der ID eingefügt und die value in der option so definiert.

            PHP-Code:
            <option value=" . $row['bet_id'] . "
            funktioniert aber wie es soll.
            echt super, du bist echt der hammer.

            @hausl: niemand hat euch damit beauftragt meine datei zu debuggen. ich bin dir für deine bisherigen hilfeleistungen wirklich sehr dankbar, möchte dich jedoch dennoch darauf hinweisen dass -misc- mit weitaus weniger text in seiner antwort um ein vielfaches effizienter war und mir damit wirklich sehr bei der fehlerbehebung weitergeholfen hat.
            ich weiß ja nicht was dich dazu veranlasst auf einmal so sarkastisch, arrogant und herblassend zu antworten aber es sollte dir schon bewusst sein dass das sehr provokant und kontraproduktiv ist.

            wenn du hilfe bei etwas benötigst bei dem du dir gerade erst wissen aneignest und man dir genauso begegnet würdest du es bestimmt auch nicht willkommen heißen.

            Kommentar


            • #7
              @hausl: niemand hat euch damit beauftragt meine datei zu debuggen
              Du hattest - abgesehen von der sehr eindeutigen Fehlermeldung von PHP - auch davor schon einige Hinweise bekommen, siehe zB #2. Du hättest ja auch einfach mal debuggen können.

              möchte dich jedoch dennoch darauf hinweisen dass -misc- mit weitaus weniger text in seiner antwort um ein vielfaches effizienter war und mir damit wirklich sehr bei der fehlerbehebung weitergeholfen hat.
              Na klar, weil es quasi "deine" Lösung war. Zwischen sich nicht auskenen und sich darüber keine Kopf machen (= einarbeiten und selbst anschauen) wollen(!), ist ein Unterschied.

              Und warscheinlich schaust du dir das hier auch nicht mehr an, bis dir jemand deine DB löscht und dann kommt das große Wehklagen.. ich hoffe ich irre mich

              Zitat von CrocoBlack Beitrag anzeigen
              Nutze PDO oder MySQLi. Dies wurde dir bestimmt schon 20 mal gesagt.
              Deine Querys sind weiterhin SQL-Injection anfällig. Verwende im Zusammenhang mit PDO/MySQLi Prepared Statements. Wurde dir auch schon mehrmals gesagt.

              Freut mich dass ich helfen konnte.
              Achja.. und Anfänger sein, ist keine Ausrede.

              LG
              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                was ist dein problem? wenn du ein problem mit meinen themen hast beantworte sie einfach nicht.
                dass du das mysqli/pdo thema anspricht beweist dass du meine beiträge nichtmal vollständig liest bevor du kritik übst, genauso wie crocoblack.
                sonst hättet ihr diesen satz im anfangspost beachtet:

                PS: ich weiß ich muss das ganze noch auf mysqli oder PDO umstellen, darum wird sich in ca. 2 wochen gekümmert.

                das zitieren von sätzen die nichts mit der thematik zu tun haben kannst du dir sparen, ich hab gehört dass man sich mit trolling nicht beliebt macht.

                Und warscheinlich schaust du dir das hier auch nicht mehr an, bis dir jemand deine DB löscht und dann kommt das große Wehklagen.. ich hoffe ich irre mich
                durch deinen arroganten und sarkastischen schriftverkehr gehe ich davon aus dass du daran interessiert bist dafür verantwortlich zu sein wodurch ich diese zeile als drohung verstehe. sollte es zu einer unrechtmäßigen manipulation durch dritte kommen werde ich dich dafür zur verantwortung ziehen und rechtliche schritte gegen dich einleiten. alle nötigen daten für eine gerichtliche klage werden vom betreiber dieser seite bzw. dem hosting provider in logfiles dokumentiert.

                bitte beachte dass dieser beitrag als "erledigt" markiert ist und keine weiteren beiträge von nöten sind.

                ich würde einen admin/mod oder wie auch immer man das in internetforen nennt darum bitten dieses thema zu schließen dass keine weiteren beiträge gepostet werden können.

                danke

                Kommentar


                • #9
                  Peinlich, ich wette, wenn man dir den Post in 2 Jahren zeigt wirst du dich in Grund und Boden schämen
                  Relax, you're doing fine.
                  RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                  Kommentar


                  • #10
                    PS: ich weiß ich muss das ganze noch auf mysqli oder PDO umstellen, darum wird sich in ca. 2 wochen gekümmert.
                    Du glaubst ja gar nicht, wie oft wir das lesen.
                    Aber die Erfahrung zeigt, daß das eben nie passieren wird. Das sind Sätze, um sich vor der Umstellung zu drücken, weil man da keinen Bock drauf hat.
                    Das Script soll erstmal laufen, das ist es was ihr wollt. Aber Tipps, die dafür sorgen, daß ihr zukunftssicher arbeitet, die wollt ihr nicht

                    Ich wette, wenn Du zu Deinem Script in einem halben Jahr ne weitere Frage hast, hat sich in Bezug MySQLi/PDO nichts weiter getan,
                    weil das kommt ja später...
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Peinlich, ich wette, wenn man dir den Post in 2 Jahren zeigt wirst du dich in Grund und Boden schämen
                      dann soll es so sein.

                      @arne: das kann schon sein, ist aber dennoch kein grund seine eigene meinung in andere beiträge zu interpretieren.
                      die erfahrung zeigt dass in internetforen meist keine lösungsvorschläge erbracht werden sondern versucht wird mit sätzen wie: "such in google" ( die man dann über google im 1. ergebnis findet) oder "Du hast den Fehler damit schon gefunden, gratuliere. Brauchst ihn nur noch zu beheben." posts zu sammeln im in der virtuellen welt einen tollen fiktiven status zu ertrollen. ebenso wie sarkasmus in internetforen auf eine hohe soziale inkompetetnz im realen leben zurückzuführen ist.

                      internet-portale wie diese sollen dazu dienen sich wissen aneignen zu können, aber das wollt ihr nicht.

                      jetzt stell dir mal vor du hast ein problem mit deinem auto und kennst dich nicht aus.
                      als antwort vom mechaniker bekommst du:
                      wenn sich das so und so anhört und sich das fahrzeug so und so verhält ist es offensichtlich was repariert werden muss.
                      also geh und behebe dieses offensichtliche problem selbst.

                      zeiten in denen separierten menschen information vorenthalten wurde und systematisch hetze gegen sie betrieben wurde hatte es vor einigen jahren schon mal gegeben.

                      aber immer wieder schön mitzubekommen dass die schutzstaffel der internetforen dazu berufen fühlen nebnsächliches in beiträgen zu hervorzuheben.

                      ich habe nicht umsonst eine zeitangabe zur mysqli/pdo thematik angegeben.

                      Kommentar


                      • #12
                        jetzt stell dir mal vor du hast ein problem mit deinem auto und kennst dich nicht aus.
                        als antwort vom mechaniker bekommst du:
                        wenn sich das so und so anhört und sich das fahrzeug so und so verhält ist es offensichtlich was repariert werden muss.
                        also geh und behebe dieses offensichtliche problem selbst.
                        Schlechtes Beispiel, Du vergisst, daß der Mechaniker gutes Geld dafür bekommt, mir den Fehler zu beheben.
                        Bezahlst Du mir den gleichen Lohn, wenn ich Dein Script repariere?!
                        Dann schreib mich an oder nutze die Scriptbörse hier im Forum...

                        Hier wird Hilfe zur Selbsthilfe gegeben, mehr nicht!
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          es wäre egal welches beispiel ich verwendet hätte, es wäre für dich so und so schlecht.
                          von geld war hier nicht die rede sondern davon wie man das problem behebt, ich habe nichts davon erwähnt dass der mechaniker das problem reparieren soll, es ging lediglich um das erhalten der information was das problem ist und wie es zu beheben ist (damit du es vl mit der erhaltenen information selbst beheben kannst).

                          wie andere user ihre hilfestellung leisten möchten bleibt denen wohl noch selbst überlassen.

                          ich habe wie schon erwähnt niemanden damit beauftragt mein script zu reparieren sondern danach gefragt wie ich den fehler selbst beheben kann was unter dem von dir erwähnten begriff "selbsthilfe" zu definieren ist.

                          ich finde es nett dass du mir die möglichkeit gibst dich direkt anzuschreiben ich denke allerdings dass das in nächster zukunft nicht passieren wird da ich eher verärgert über diese ignoranten antworten bin.

                          bei so einem benehmen unter einem anonymen deckmantel im internet braucht man sich nicht wundern wenn man in eine klischeehafte schublade mit der aufschrift "sheldon cooper" gesteckt wird.

                          Kommentar


                          • #14
                            es ging lediglich um das erhalten der information was das problem ist und wie es zu beheben ist (damit du es vl mit der erhaltenen information selbst beheben kannst).
                            Zitat von VPh
                            Das was du abschickst landet im $_POST Array. In deinem Update-script gibt es kein $row.
                            ganz nebenbei, hat VPh in dem Moment nichts anderes gemacht, als die Notice für Dich zu übersetzen und anders zu formulieren.
                            Das hast Du allein nicht hinbekommen?!

                            Zitat von CrocoBlack
                            Nutze PDO oder MySQLi. Dies wurde dir bestimmt schon 20 mal gesagt.
                            Deine Querys sind weiterhin SQL-Injection anfällig. Verwende im Zusammenhang mit PDO/MySQLi Prepared Statements. Wurde dir auch schon mehrmals gesagt.
                            Auch das sind sachdienliche Hinweise auf Verbesserung Deines Codes/Scripts!

                            Zitat von hausl
                            Generelle Anmerkung noch: Es ist übrigens nicht die Aufgabe des Forums, deine Fehler (vor allem so offensichtliche) zu finden/beheben, das ist ein Trugschluss. Debugging ist etwas ganz normales was zum Programmieren dazu gehört und deine Fehler findest du bitte selbst, in dem Fall hat das PHP schon für dich gemacht.
                            Das ist quasi eine Kurzfassung der Forenrichtlinien.

                            Alle drei Antworten sind weitesgehend sachlich und betreffen Dein Problem und die gewünschte Problemlösung.
                            Aber das willst DU nicht annehmen, also hast Du auch keinen Grund Dich zu beschweren...

                            ich finde es nett dass du mir die möglichkeit gibst dich direkt anzuschreiben ich denke allerdings dass das in nächster zukunft nicht passieren wird da ich eher verärgert über diese ignoranten antworten bin.
                            Das war auch nicht mein Ziel, aber wenn Du schon einen Absatz weiter unten einen Vergleich mit Sheldon Cooper machst, verrate ich Dir gerne, daß mein Vorschlag mich anzuschreiben Sarkasmus war. Davon versteht Sheldon ja auch nicht viel...
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar

                            Lädt...
                            X