formulardaten übergeben mit radio button

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

  • formulardaten übergeben mit radio button

    Hallo erstmal.
    Da ich mit meinem Latein bzw. php am Ende bin und auch intensives googeln und damit verbundene Suche in diversen Foren zu keinem Ergebnis geführt hat , hoffe ich hier auf Hilfe.

    Nachdem Datensätze aus der Datenbank mittels einer Suchfunktion ausgelesen und angezeigt wurden, soll nun die Möglichkeit bestehen, einen Datensatz mit einem Radio Button anzuwählen um diesen dann in einem weiteren Formular zu überarbeiten. Dafür sollen natürlich die bisherigen Daten schon direkt im Formular stehen.

    Dem Radio Button habe ich einen 'name' und einen 'value' zugeordnet. Der 'value' soll die laufende Nummer sein. Nur an der Stelle stehe ich nun seit zwei Tagen auf dem Schlauch und weiss nicht genau wie dem zweiten Script die Daten übergeben werden sollen.
    Ist das bis hierhin soweit richtig? Und wie geht es dann weiter?


    PHP-Code:
       $abfrage = ("SELECT * FROM wanderkino WHERE bemerkungen LIKE '$suchbegriff' ....");

        
    $ergebnis mysql_query($abfrage);


      while (
    $row =mysql_fetch_object($ergebnis))
         {
     

      
    $nr $row->nr;

       echo(
    '<td width=150>'.$row->nr.' <input type="radio" name="aendern" value='.$nr.'><td>');
      echo(
    '<td width=150>'.$row->jahr.'<td>'); 

    Im zweiten Script versuche ich dann auf die Daten zuzugreifen, aber es passiert gar nichts.

    PHP-Code:
     $abfrage = ("SELECT * FROM wanderkino WHERE nr = '.$aendern.'");

      
    $ergebnis mysql_query($abfrage);


      
    $altjahr = ($ergebnis ["jahr"]);



    echo(
    '<td><input type=Text name=neujahr value='.$altjahr.' size=10 maxlength=></td>'); 
    Ich glaube irgendwo habe ich hier harnebüschenen Unsinn geschrieben, aber ich weiss halt nicht wo.

  • #2
    1. informiere dich über register_globals (fang im manual an).
    2. benutze mysql_error() und E_ALL.
    3. lass dir die (zweite) query ausgeben und zeig sie mal hier.
    4. von welchem typ ist das feld `nr` in der tabelle?

    Kommentar


    • #3
      Ups, das ging aber schnell. Danke

      zu1. ) Also die Daten werden mit Post übergeben was im Suchformular ja auch funktioniert also gehe ich davon aus das die register_globals auf on stehen. (Verbessere mich, wenn ich nonsence schreibe)

      zu 2.) mysql_error gab keine Fehlermeldungen und die Notice von E_All, über undifined index habe ich eben unterschlagen, weil ich denke, dass die für dieses Problem nicht relevant sind.

      zu 3.) Wie lasse ich mir die query ausgeben, damit ich sie zeigen kann?

      zu 4.)'nr' ist vom Typ integer und wird über die auto increment erzeugt.

      Kommentar


      • #4
        1. die tatsache, dass sich die ganze welt von dieser technik abwendet, stört dich nicht?

        2. solange du dir sicher bist, dass es nicht relevant ist, ist es ok.

        3.
        PHP-Code:
        $q 'SELECT ...';
        echo 
        $q;
        mysql_query($q) or ... 
        4. du wirst gleich sehen, was für einen unfug du an die db sendest.

        Kommentar


        • #5
          1. um zu bemerken, dass sich die ganze Welt davon abwendet fehlt mir als Neueinsteiger das nötige Wissen. Aber ich lasse mich natürlich gerne eines Besseren belehren, und freue mich über jeden Hinweis.

          2. ich bin mir auch nicht so sicher, dass es nicht relevant ist, aber ich habe mehrere Stellen dazu gelesen, die das sagen, dass man eine Notice "undifined indx" vernachlässigen könne. Wenn das script erstmal läuft , wollte ich das aber beseitigen.

          3.

          MySQL meldet:
          #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$q = ("SELECT * FROM wanderkino WHERE nr = '.$aendern.'")' at line 1

          4. Ich weiss, dass es Unsinn ist den ich an die DB sende, aber ich weiss nicht was ich senden soll, damit es keiner ist.

          Kommentar


          • #6
            1. google
            3. und 4.
            Code:
            ... WHERE `nr` = 5
            wäre richtig. passe die query an.

            Kommentar


            • #7
              Nochmal danke, die query ist jetzt angepasst und laut meinem

              phymyAdmin lautet die genaue syntax:

              $abfrage = 'SELECT * FROM wanderkino WHERE `nr` = \'.$aendern.\'';


              und sie liefert keine Fehlermeldung mehr. Aber leider liefert das script sonst auch nichts. Irgendwie ist da immer noch entweder ein Fehler an anderer Stelle oder ein logischer Fehler.

              die Daten werden nicht ins Formular übernommen. Während ich darauf hoffe, dass noch jemand eine Idee hat, werde ich 'penizillins' Rat befolgen und noch mal was zu den register_globals lesen.

              Kommentar


              • #8
                die query ist immer noch falsch.
                1. sollst du sie stets ausgeben lassen und posten
                2. hat sie immer noch nicht die form, die ich angedeutet habe.

                Kommentar


                • #9
                  Leider verstehe ich nach ca 12 Stunden vor diesem Problem anscheinend keine Andeutungen mehr, denn ich weiss nicht genau worauf du hinaus willst.

                  Die von dir gesetzten Hochkommatas habe ich übernommen, ich habe es auch mit einer absoluten Zahl versucht (nämlich mit der 5), aber ich möchte doch die Werte übergeben, die mit dem Radio Button 'aendern' übergeben werden, also muss ich doch diese Variable abfragen, oder irre ich mich da?

                  der von mir gepostete code wird von phpmyAdmin widerstandslos genommen.

                  PHP-Code:
                  SELECT FROM wanderkino WHERE `nr` = '.$aendern.' 
                  in Deinem Beispiel sieht das dann so aus
                  PHP-Code:
                  SELECT FROM wanderkino WHERE `nr` = 
                  Bitte sei so nett und sage mir an welcher Stelle ich denn so penetrant auf der Leitung stehe.

                  Du hattest natürlich recht: meine php version ist 5.1.2. und damit sind meine register_globals ja Standardmäßig auf off und nicht wie ich geschrieben habe auf on.

                  Kommentar


                  • #10
                    PHP-Code:
                    $ergebnis mysql_query($abfrage);
                    $altjahr = ($ergebnis ["jahr"]); 
                    Du weisst aber schon was der Rückgabewert von mysql_query ist ? Richtig eine Resultat Ressource. Und eine Ressource kannst du niemals mittels echo ausgeben (wenn schon dann mit var_dump() und dann würdest du sehen, dass dies sicherlich nicht das gewünschte Resultat ist)
                    Du musst diese Ressource erst auslesen
                    PHP-Code:
                    $ergebnis mysql_query($abfrage);
                    while(
                    $erg=mysql_fetch_array($ergebnis)){
                        echo 
                    $erg['jahr'];

                    Nachzulesen im

                    Gruss

                    tobi
                    EDIT:

                    Sehe gerade, dass du es im ersten Teil ja richtig gemacht hast. Hast du denn im 2. Teil etwas vom Code unterschlagen ?


                    Zuletzt geändert von jahlives; 23.03.2006, 21:12.
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Original geschrieben von arthurdent
                      Bitte sei so nett und sage mir an welcher Stelle ich denn so penetrant auf der Leitung stehe.
                      sobald du anfängst, dir deine eigene query auszugeben, wirst du schnell sehen, was du verändern musst, um eine form zu erreichen, die meinem beispiel gleicht.

                      Kommentar


                      • #12
                        @jahlives: nein so genau wusste ich das nicht, denn ich bin mich erst mühsam am einarbeiten. Hatte aber zuerst den Code so wie von Dir verbessert, ist halt bei meinen ganzen Versuchen Heute dem Fehler auf die Spur zu kommen irgendwie verschüttet gegangen. Danke für den Hinweis, da hätte ich bestimmt nochmal ewig gesucht.

                        @penizillin: ja du hast Recht, es funktioniert so nicht wie ich das geschrieben habe und wenn ich eine fixe ID wie z.B. die 5 eingebe werden mir auch brav die Daten im Formular angezeigt. Aber das ist es doch nicht was ich eigentlich erreichen möchte. Es soll doch die 'nr' über die Auswahl mit den Radio Buttons übergeben werden. Wenn du also weißt wie ich das hinbekomme oder mir sagen kannst was genau mein Fehler ist, wäre es super wenn du mir das sagen könntest.

                        Kommentar


                        • #13
                          was du vorhast, ist mir klar.
                          du weißt, wie man strings erstellt?
                          PHP-Code:
                          $foo 42;
                          echo 
                          'foo = '$foo.'!'
                          so stelle auch die query zusammen.

                          Kommentar


                          • #14
                            Original geschrieben von penizillin
                            PHP-Code:
                            $foo 42;
                            echo 
                            'foo = '$foo.'!'
                            Original geschrieben von Douglas Adams

                            "Na schön", sagte Deep Thougt. "Die Antwort auf die Große Frage..."
                            "Ja..!"
                            "...nach dem Leben, dem Universum und allem...", sagte Deep Thougt. "Ja...!!"
                            "...lautet....", sagte Deep Thought und machte eine Pause.
                            "Ja...!"
                            "...lautet..."
                            "Ja...!!!..???"
                            "Zweiundvierzig", sagte Deep Thought mit unsagbarer Erhabenheit und Ruhe.
                            Das Problem scheint also in meiner Frage zu liegen. Es ist also nicht nur ein Fehler in meiner Syntax, sondern ein logischer Fehler. Das Beispiel zur Stringausgabe, kenne ich und weiss, dass ich es schonmal in einem Einführungsbuch gelsen habe. Ich verstehe halt nur nicht so genau wie mir das bei meiner Problemlösung behilflich sein kann. Ich erwarte ja auch keineswegs, dass hier meine Scripte für mich geschrieben werden. Ich fände es aber einfach klasse, wenn die Antworten auch kurze Begründungen hätten, damit arme Anfänger und Geisteswissenschaftler auch eine Chance haben zu verstehen.

                            Ich glaube verstanden zu haben, dass es etwas mit dem Typ der Variablen zu tun hat, weil die Eingabe mit der absoluten Zahl hat mir ja gezeigt, dass die Werte übergeben werden. Was ich aber halt nicht verstehe ist was ich nun zu tun habe und auch warum.

                            Kommentar

                            Lädt...
                            X