Änder mehere Datensätze mit unterschiedlichen werten..

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

  • #31
    Original geschrieben von kuddeldaddeldu
    Hi,

    In Deiner Update-Query schränkst Du ja auch nur auf $tid ein. D.h. in jedem Schleifendurchlauf überschreibst Du alle Datensätze, die diese $tid haben. Ich vermute, Du möchtest auch noch auf $pid einschränken.
    RL:
    ja und nein , die schleife sollte den array-zähler verbinden um den richtigen namen der richtigen pid zu zu ordnen.

    Was soll in Deiner Formularausgabe der SELECT count(*) mit anschließender while-Schleife um das gesamte Formular?

    PHP-Code:
     echo  "Das Turnier hat ";echo $row["count(*)"];echo " Pruefungen"
    Die zeile hab ich wohl beim kopieren und einrücken übersehen.


    LG

    Kommentar


    • #32
      OffTopic:
      Beim nächsten mal bitte so zitieren, dass man auch erkennen kann, wer was geschrieben hat,

      Kommentar


      • #33
        neue änderug..

        PHP-Code:
        echo $sqlu "UPDATE ".$_CONFIG['db']['tbl.pruefnr']." SET pruefname ='$pruefname' where tid='$tid' and
         '
        $key' = '$key.$pid'";echo "<br>";
                
        $sqlu "UPDATE ".$_CONFIG['db']['tbl.pruefnr']." SET pruefname ='$pruefname' where tid='$tid
        and '
        $key' = '$key.$pid'";
                
        mysql_query($sqlu) or die(mysql_error()); 
        Echo ausgabe ergibt:
        UPDATE lenz_pruefnr SET pruefname ='jetzt1' where tid='9' and '0' = '0.'
        UPDATE lenz_pruefnr SET pruefname ='V' where tid='9' and '1' = '1.'
        UPDATE lenz_pruefnr SET pruefname ='nun' where tid='9' and '2' = '2.'
        UPDATE lenz_pruefnr SET pruefname ='morgen' where tid='9' and '3' = '3.'

        nu die echo ausgabe wäre ok aber eintragen tut er es nicht...

        Kommentar


        • #34
          Ist nicht dein Ernst oder? Ich verordne jetzt erstmal ne runde Bett!

          '0' = '0.'
          na? was ist wohl 0 = 0? Richtig! True. Und somit trifft es auch auf alle Datensätze zu.

          Du hast nicht ansatzweise das umgesetzt, was dir gesagt wurde... Was soll das? 5 Minuten nachdenken, muss doch drin sein, wenn nicht, schlafen gehen.

          OffTopic:
          ich will den :wall: smilie!


          Was wird das eigentlich, wenn es fertig ist?
          Zuletzt geändert von TobiaZ; 30.07.2007, 23:58.

          Kommentar


          • #35
            Oh man, Du weisst echt nicht im geringsten, was Du da tust. Was ist bitte an
            UPDATE lenz_pruefnr SET pruefname ='jetzt1' where tid='9' and '0' = '0.'
            korrekt? Ich übersetze mal: Schreibe 'jetzt1' in die Spalte pruefname, und zwar bei allen Datensätzen, bei denen die Spalte tid den Wert 9 hat und '0' = '0.' ist.
            Formuliere Dein Ziel in ählicher Weise und übersetze in SQL

            Kommentar


            • #36
              nach änderung Problem...

              Hab da was verändert,
              PHP-Code:
              0:print_r($_POST);echo "<br>";
              1:
              2:if (isset($_POST['pid']) && isset($_POST['pruefna']) && 
              3is_array($_POST['pid']) && is_array($_POST['pruefna'])) {
              4:    foreach ($_POST['pruefna'] as $key => $pruefname ) {
              5:    foreach ( $_POST['pid']as $keyp => $pid ) {
              6:         $keyb $_POST['pid'][$key];
              7:         
              8:echo $sqlu "UPDATE ".$_CONFIG['db']['tbl.pruefnr']." SET pruefname ='$pruefname'
                where pid = '
              $keyp' "; echo "<br>";
              9:$sqlu "UPDATE ".$_CONFIG['db']['tbl.pruefnr']." SET pruefname ='$pruefname
                where pid = '
              $keyp' ";
              10:        mysql_query($sqlu) or die(mysql_error());
              11:}
              12:}
              13:}
              14:    ?> 
              Nun ja lasse ich zeile 5 weg macht er das richtig, aber der wert $keyb ist leer:
              Array ( [send_but] => 1 [tid] => 9
              [pid] => Array ( [1214] => [1215] => [1213] => [1212] => )
              [cou] => 4 [pruefna] => Array ( [0] => V [1] => b [2] => c [3] => f ) )
              UPDATE lenz_pruefnr SET pruefname ='V' where pid = ''
              UPDATE lenz_pruefnr SET pruefname ='b' where pid = ''
              UPDATE lenz_pruefnr SET pruefname ='c' where pid = ''
              UPDATE lenz_pruefnr SET pruefname ='f' where pid = ''
              und nix wird eingetragen.

              Kommt zeile 5 wieder dazu, hat $keyb den richtigen Wert, dann überschreibt er wieder alle datensätze mit dem letzten Buchstaben.
              Dann sieht es so aus:
              Array ( [send_but] => 1 [tid] => 9 [pid] => Array ( [1214] => [1215] => [1213] => [1212] => )
              [cou] => 4 [pruefna] => Array ( [0] => V [1] => b [2] => c [3] => f ) )
              UPDATE lenz_pruefnr SET pruefname ='V' where pid = '1214'
              UPDATE lenz_pruefnr SET pruefname ='V' where pid = '1215'
              UPDATE lenz_pruefnr SET pruefname ='V' where pid = '1213'
              UPDATE lenz_pruefnr SET pruefname ='V' where pid = '1212'
              UPDATE lenz_pruefnr SET pruefname ='b' where pid = '1214'
              UPDATE lenz_pruefnr SET pruefname ='b' where pid = '1215'
              UPDATE lenz_pruefnr SET pruefname ='b' where pid = '1213'
              UPDATE lenz_pruefnr SET pruefname ='b' where pid = '1212'
              UPDATE lenz_pruefnr SET pruefname ='c' where pid = '1214'
              UPDATE lenz_pruefnr SET pruefname ='c' where pid = '1215'
              UPDATE lenz_pruefnr SET pruefname ='c' where pid = '1213'
              UPDATE lenz_pruefnr SET pruefname ='c' where pid = '1212'
              UPDATE lenz_pruefnr SET pruefname ='f' where pid = '1214'
              UPDATE lenz_pruefnr SET pruefname ='f' where pid = '1215'
              UPDATE lenz_pruefnr SET pruefname ='f' where pid = '1213'
              UPDATE lenz_pruefnr SET pruefname ='f' where pid = '1212'

              Warum ist oben $keyb leer, bzw. warum gleicht er bei der zweiten nicht pid mit $keyb ab ?

              Kommentar


              • #37
                Als erstes erklärst du uns jetzt mal, warum du so unbedingt forschleifen benutzen willst. ich erkenne da keinen sinn. error_reporting ist an? (nur zur sicherheit)

                Was wird das eigentlich, wenn es fertig ist?
                Nen Durchblick werd ich dann wahrscheinlich immer noch nicht haben.

                Kommentar


                • #38
                  Überdenke den folgenden Abschnitt:
                  Code:
                  5:    foreach ( $_POST['pid']as [b]$keyp[/b]  => $pid ) {
                  6:         [b]$keyb[/b] = $_POST['pid'][$key];
                  Außerdem solltest du dich mit der richtigen Trennung von Strings und Variablen beschäftigen.
                  Nen Durchblick werd ich dann wahrscheinlich immer noch nicht haben.
                  Hier wird doch eh nur am Problem vorbei gedoktort ... :wall: (Berni!).
                  Zuletzt geändert von tontechniker; 31.07.2007, 23:33.
                  Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                  Kommentar


                  • #39
                    Hi,
                    Hier wird doch eh nur am Problem vorbei gedoktort ...
                    Und zwar mittels wildem Herumgestocher und das auch noch blind, mangels Kenntnissen...
                    Ronald, erzähl uns jetzt doch erstmal, was Du da eigentlich veranstalten willst. Wie TobiaZ schon sagt: Was wird das eigentlich...

                    LG

                    Kommentar


                    • #40
                      Prüfnamen ändern - das hab ja sogar ich verstanden ^^
                      Vielleicht solltet ihr einfach aufbauend auf meinem Code ihm irgendwas schustern... mir aber auch egal *nur sporadisch hier rein geblickt hat* - der Thread ist mir mittlerweile echt zu dumm

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #41
                        Na ja, was man aus seinem Gemurkse halt erkennen kann. Ich wollte eher den Sinn und Zweck wissen, vermute mal, Tobi auch.

                        Kommentar


                        • #42
                          Hallo liebe helfer...

                          Es kommen aus einem listenform in der datei eintragenpn.php zwei arrays an, das erste pruefna mit den daten die in der tabelle geändert werden sollen und pid mit den datensatz nummern.
                          foreach nimmt schrittweise $pruefname und erhöht $key um 1
                          es sind 4 Datensätze also hört foreach beim 4 auf..
                          $keyb = $_POST['pid'][$key]; soll pid den key zuordnen.
                          Ich denke doch ich habe das soweit richtig verstanden oder ?

                          Das funktioniert bis dahin das $pid lieder keinen wert hat.
                          also habe ich zeile 5 eingefügt nun habe ich zwar einen wert inallen variabel aber die schleife ist brei... ich wollte mit 2 dem zweiten foeach nur checken ob array pid auch ausgelesen werden kann die daten sind also da.. und verarbeitbar. Nur ist mir nur noch schleierhaft warum in der ersten version ohne zeile 5 $pid leer ist...

                          mfg Ronaldl

                          Kommentar


                          • #43
                            Die Frage war wohl eher was genau das Skript überhaupt machen soll - nicht, was dein Code tun soll.

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar


                            • #44
                              Oh mann, jetzt wirst du schon mit der Nase drauf gestoßen und kapierst es immer noch nicht. Können wir uns darauf einigen, dass du weiter knipst und die Sache jemanden anderes überlässt?

                              PHP-Code:
                              $keyb $_POST['pid'][$key]; 
                              Die Zuordnung, ob mit zweiter foreach()-Schleife oder ohne ist sowas von wirkungslos, weil du $keyB nirgends verwendest. Statt dessen verwendest du $keyP:
                              PHP-Code:
                              here pid '$keyp' 
                              Was soll der Unfug?

                              Durch die zweite foreach()-schleife und deinen Variablenmurks
                              PHP-Code:
                              foreach ( $_POST['pid']as $keyp => $pid 
                              definierst du hier zufällig doch mal die Variable $keyP

                              So, kannst du mir folgen? Dann bitte schleunigst beheben.

                              Auf deine restlichen äußerungen gehe ich mal nur am rande ein, um dich ein bisschen zu belehren.

                              Das funktioniert bis dahin das $pid lieder keinen wert hat.
                              $pid sofern du das aus der foreach-schleife meinst, hat natürlich keinen wert. Das hast du doch vorher schon überprüft:
                              ...[pid] => Array ( [1214] => [1215] => [1213] => [1212] => )...
                              Nur ist mir nur noch schleierhaft warum in der ersten version ohne zeile 5 $pid leer ist...
                              Hmm, redest du doch von einem anderen $pid? Es gibt aber gar kein anderes $pid. Da es nur in der angesprochenen foreach-schleife definiert wird. Aber nirgends vewendet wird. Höchstwahrscheinlich meinst du dein $keyp. Ist das soo schwer zwei variablen auseinander zu halten? Es ist dein Problem, also tu uns den gefallen und achte ein wenig auf die Qualität deiner Beiträge. ansosten ist es wirklich kein wunder, dass hier keiner mehr durchblickt und erst recht keiner dir helfen will.

                              Zeile 9 ist überflüssig. Es reicht nun wirklich $sql nur einmal zu definieren. dann brauchst du auch nicht immer zwei queries zu bearbeiten. Und es führt nicht so schnell zu falschen Testausgaben.

                              Die Frage war wohl eher was genau das Skript überhaupt machen soll
                              Ja genau, ich möchte gerne wissen, was das wird "wenn es fertig ist".
                              (Nach den beiden foreach-schleifen hab ich auch gefragt. Nur wurde die Frage direkt beantwortet, wohingegen ich auf die erste Frage auch nach mehrmaligen wiederholen keine Antwort lesen kann.)

                              Kommentar


                              • #45
                                Das werden eingabe Listen in welchen z.B. Kopfnummern von Pferden oder Prüfungnamen in die entsprechenden Tabellennamen nachgetragen oder verändert werden sollen.
                                Das ganze wird von mir auf Reiturnieren eingesetz.

                                Kommentar

                                Lädt...
                                X