Änder mehere Datensätze mit unterschiedlichen werten..

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

  • Änder mehere Datensätze mit unterschiedlichen werten..

    Hallo auch,
    ich möchte gerne mehrere Datensätze updaten in dem ich über ein Formular lere felder auffülle. Das Formular übergibt die daten an das folgende scipt und die daten kommen auch an.
    PHP-Code:
    <?php

    include_once("./common.inc.php");
    print_r($_POST);
    $tid $_POST['tid'];
    $varn $_POST['pruefna'];
    $pide $_POST['pidn'];
    if (
    is_array($pruefna[0])) {
                                    
    $count count($pruefna);
                                    for (
    $I=0$I $count$I++) {   
                                    echo 
    $I ": " $pruefna[$I] . "<br/>";            }
            }
            if (
    is_array($pid[0])) {
                                    
    $count count($pid);
                                    for (
    $j=0$I $count$j++) {   
                                    echo 
    $j ": " $pid[$j] . "<br/>";            }
            }
            
        
    $sqlu "UPDATE ".$_CONFIG['db']['tbl.pruefnr']." SET pruefname ='$varn[$I]' where tid='$tid' and pid='$pide[$j]' order by pid";                    
      
        
    $result1 mysql_query($sqlu) or die(mysql_error());   
        echo 
    $result1;    
         
    ?>
    Nur in die DB wird nichts eingetragen. Wie kann ich das lösen ?[PHP]
    Zuletzt geändert von goth; 29.07.2007, 23:58.

  • #2
    Regeln lesen! Code richtig formatieren ([[color=red]/[/color]PHP])!
    error_reporting richtig einstellen!
    Mal über mysql_connect nachdenken!

    Kommentar


    • #3
      So nun richtig php dargestellt...
      PHP-Code:
      <?php
      # Header 
      include_once("./common.inc.php");
      print_r($_POST);
      $tid $_POST['tid'];
      $varn $_POST['pruefna'];
      $pide $_POST['pidn'];

      if (
      is_array($varn[0])) {
      $count count($varn);
      for (
      $I=0$I $count$I++) {
      echo 
      $I ": " $varn[$I] . "<br/>"; }
      }
          
      $sqlu "UPDATE ".$_CONFIG['db']['tbl.pruefnr']." SET pruefname ='$varn[$I]' where tid='$tid' ";                    
        
          
      $result1 mysql_query($sqlu) or die(mysql_error());   
          echo 
      $result1;    
           
      ?>
      MySQL_Connect funktioniert ist getestet !
      Es geht darum wie das Update statement bzw $I formatiert werden muss damit alle datensätze einen unterschiedlichen wert erhalten nämlich den von dem array pruefna
      mfg Ronaldl

      Kommentar


      • #4
        Du musst für jeden Datensatz ein eigenes Update fahren.

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

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

        Kommentar


        • #5
          mach mich nicht schwach , das sind zwischen 10 und 75 datensätze, kann man das irgendwie über nen counter $i realisieren ?
          ich hab da in den lezten 2 Tagen 12 std. dran rumprobiert. hat da jemand ne idee zu ?

          Kommentar


          • #6
            hä?
            Query in die Schleife mit rein und fertig...

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

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

            Kommentar


            • #7
              ja hatte ich schon dann kann gleich alles datensatz für datensatz eintragen, die daten kommen aus einem Formular -> Dann kommt auch der schalter eintragen einmal prodatensatz...
              Hat vielleicht doch noch einer ne Idee dazu ?
              Vielen dank Ronaldl

              Kommentar


              • #8
                WAS ist dein Problem?

                Es steht fest, dass du pro Datensatz ein eigenes Update machen musst. Das hast du auch verstanden. Und setzt es auch offensichtlich um.

                Dann kommt auch der schalter eintragen einmal prodatensatz...
                Ja, Wenn du die Ausgabe in der Schleife machst, kommt die Ausgabe natürlich auch für jeden Datensatz. Aber was spricht dagegen die Ausgabe nach der Schleife zu machenß

                Kommentar


                • #9
                  Moment .... kann ja sein dasiich etwas begriffstutzig bin ...
                  Also ich hab ein form als liste erstellt welches mir aus einer Tabelle die PrüfungsID (pid) die Prüfungsnummer (pruefnr) anzeigt
                  und den Pruefungsnamen (pruefna) als Eingabefeld ausgibt. Nun pid und pruefna werden als Array an den oben geposteten
                  Code ( eintagenpn.php) übergeben.
                  Ich habe mir gedacht mit $I und SJ muesten sich doch die Arrayelement
                  pid[1] und Pruefna[1] verbinden lassen und mit update eintragen lassen .
                  $J und $J hochzählen ( +1) und wieder eintragen usw...
                  Nur das mit dem verbinden, Hochzählen +1 und dem übergeben an Update bekomme ich nicht hin.
                  Also mache ich doch was du mir oben sagtest oder ?
                  mfg Ronny

                  Kommentar


                  • #10
                    PHP-Code:
                    <?php
                    # Header 
                    include_once("./common.inc.php");
                    print_r($_POST);

                    if (isset(
                    $_POST['tid']) && isset($_POST['pruefna']) && 
                    is_array($_POST['tid']) && is_array($_POST['preufna'])) {
                        foreach (
                    $_POST['pruefna'] as $key => $pruefname) {
                            
                    $tid $_POST['tid'][$key];
                            
                            
                    $sqlu "UPDATE ".$_CONFIG['db']['tbl.pruefnr']." SET 
                    pruefname ='
                    $pruefname' where tid='$tid'";
                            
                    mysql_query($sqlu) or die(mysql_error());
                        }
                    }

                    ?>
                    Lesen verstehen, wenn es nicht 100%tig passt, überlegen warum, korrigieren.
                    Danach informierst du dich über magic_quotes und escapen von Strings die in MySQL-Queries eingebunden werden(!!!)

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

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

                    Kommentar


                    • #11
                      OffTopic:
                      Isset() kennt mehrere Parameter:
                      PHP-Code:
                      if (isset($_POST['tid'],$_POST['pruefna']) 

                      Kommentar


                      • #12
                        hm...cool, noch nie aufgefallen oO;

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

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

                        Kommentar


                        • #13
                          geändert funkt immer noch nicht

                          also $tid war kein array also tat sich nichts

                          ich habe bis jetzt das hier:
                          PHP-Code:
                           if (isset($_POST['pid']) && isset($_POST['pruefna']) && 
                          is_array($_POST['pid']) && is_array($_POST['pruefna'])) {
                              foreach (
                          $_POST['pruefna'] as $key => $pruefname) {
                                  
                          $pid $_POST['pid'][$key];

                                      
                          $J 0;
                                      while (
                          $J $key) {
                                  
                          $sqlu "UPDATE ".$_CONFIG['db']['tbl.pruefnr']." SET pruefname ='$pruefname' where tid='$tid'";
                                  
                          mysql_query($sqlu) or die(mysql_error());
                                  
                          $J++;
                                  } 
                          Die isset geschichte zählt artig $ Key hoch, SJ zählt hoch solange kleiner als $key nun war ich den Glauben $sqlu würde artig das array einmal Pro $J abarbeiten. Alle Varianten von Set pruefname = $key.$pruefname scheitern... es wrid immer nur der letzte wert in alle felder pruefname eingetragen. Warum ?

                          @ghostgambler
                          "Danach informierst du dich über magic_quotes und escapen von Strings die in MySQL-Queries eingebunden werden"
                          Wo? Das was ich gefunden habe war mir etwas zu abstract gibt es
                          auch was für newbies ?

                          Kommentar


                          • #14
                            Re: geändert funkt immer noch nicht

                            Ich habe keine Ahnung, was dein Code eigentlich machen soll. Aber
                            - isset() zählt nichts hoch,
                            - SJ kann ich gar nicht finden,
                            - ich hoffe du weißt, was "pruefname = $key.$pruefname" ergibt (vermutlich nichts sinnvolles, aber ich kenne dein Formular nicht),
                            - $tid != $pid!

                            Wo? Das was ich gefunden habe war mir etwas zu abstract gibt es auch was für newbies ?
                            magic_quotes
                            mysql_real_escape_string
                            SQL-Injection

                            Kommentar


                            • #15
                              Vielleicht solltest du erstmal dein Formular-Output-Code posten ... ich fürchte, dass das ziemliches Gemurkse ist ... mein Code hätte, rein theoretisch, so funktionieren können, wenn nicht, sollte man das Formular überdenken, bevor man großartig versucht in php Arrays aus irgendwelchen benannten keys zu konstruieren.

                              Und brich in deinem ersten Post die lange Zeile um. Ich hab auf 1280 Pixel einen horizontalen Scrollbalken...!

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

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

                              Kommentar

                              Lädt...
                              X