Änder mehere Datensätze mit unterschiedlichen werten..

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

  • #16
    Hier der Formular Code...

    PHP-Code:
     // Formular ausgeben um Pruefungsnamen ein zu tragen
                $sql = @mysql_query("SELECT pid, pruefnr, pruefname FROM ".$_CONFIG['db']['tbl.pruefnr']." 
    WHERE (tid='".$_POST['tid']."' ) ORDER BY pruefnr") or die ( mysql_error() );
                if (mysql_num_rows($sql) == 0) {
                    echo "Keine Daten Gefunden"; 
                } else {
                ?>
                <form action="eintragenpn.php" method="post">
                <input type="hidden" name="send_but" value="1">
                <input type="hidden" name="tid" value="<?=$_POST['tid']; ?>">
                
                <?php
                     
    echo "PID.&nbsp ";
                     echo 
    "Pruefnr.&nbsp ";
                     echo 
    "Pruefungsname. <br>";                     
                                           
                    while (
    $row mysql_fetch_array($sqlMYSQL_NUM)) {
                        echo 
    "$row[0]. ";
                         echo 
    "$row[1]. ";
                         echo 
    "<input type='hidden' name='pid[$row[0]]' >";
                          echo 
    ".$row[3]. <input type='text' name='pruefna[]' size='50'>. <br><br>";   
                        
        }
            
        }      
    ?>
                    <input type="submit" value="Eintragen">
            </form>
                <?php

    if (is_array($_POST['pruefna'][0])) {
                                    
    $count count($_POST['pruefna']);
                                    for (
    $I=0$I $count$I++) {   
                                    echo 
    $I ": " $_POST['pruefna'][$I] . "<br/>";            }
            }
        }
              }
            }
    In eintragenpn php kommen alle daten an, ergebniss aus print_r($_Post) ist:
    PHP-Code:
     Array (
      [
    send_but] => 
      
    [tid] => 
      
    [pid] => Array ( [1214] => [1215] => [1213] => [1212] => ) 
      [
    pruefna] => Array ( [0] => test1 [1] => test2  [2] => test3 [3] => test5 ) ) 
    Zuletzt geändert von TobiaZ; 30.07.2007, 23:05.

    Kommentar


    • #17
      value-attribute vergessen.

      Kommentar


      • #18
        Original geschrieben von penizillin
        value-attribute vergessen.
        Bitte wo value vegessen und warum ?
        Die daten werden gepostet.. Werte werden korreckt empfangen und was sollte in value stehen ?
        mfg ronaldl

        Kommentar


        • #19
          bei selfhtml und unter tut.php-q.net und peterkropff.de lernst du, wie man ein eingabefeld definiert.

          Kommentar


          • #20
            Original geschrieben von penizillin
            bei selfhtml und unter tut.php-q.net und peterkropff.de lernst du, wie man ein eingabefeld definiert.
            Das mit dem Vaue ist schon grundsätzlich klar, normalerweise würde da
            PHP-Code:
            value="<?=$_POST['pruefna']; ?>"
            stehen ist aber doch meiner Meinung nicht nötig da die Werte ja mit
            PHP-Code:
            <form action="eintragenpn.php" method="post"
            übereben werden ud auch ankommen. Oder habe ich da was falsch verstanden ?
            mfg Ronaldl
            Zuletzt geändert von ronaldl; 30.07.2007, 18:58.

            Kommentar


            • #21
              Was ist jetzt der Unterschied zwischen PID und TID? Oo

              also generell passt zu dem processing-code von mir eben ein Formular dieser Art:
              PHP-Code:
              <?php
              // Formular ausgeben um Pruefungsnamen ein zu tragen
              $sql mysql_query("SELECT pid, pruefnr, pruefname FROM 
              "
              .$_CONFIG['db']['tbl.pruefnr']." WHERE (tid='".$_POST['tid']."' ) 
              ORDER BY pruefnr"
              ) or die ( mysql_error() );
              if (
              mysql_num_rows($sql) == 0) {
                  echo 
              "Keine Daten Gefunden";
              } else {
                  
              ?>
                  <form action="eintragenpn.php" method="post">
                  <input type="hidden" name="tid" value="<?=$_POST['tid']; ?>">
                  
                  <?php
                  
              echo "PID.&nbsp ";
                  echo 
              "Pruefnr.&nbsp ";
                  echo 
              "Pruefungsname. <br>";
                  
                  while (
              $row mysql_fetch_assoc($result)) {
                      echo 
              '<p>';
                      echo 
              $row['pid'] . ". " $row['pruefnr'] . ". ";
                      
              ?>
                      <input type="hidden" name="pid[]" value="<?=$row['pid']?>" />
                      <input type="text" name="pruefna[]" value="<?=htmlspecialchars($row['pruefname'])?>" />
                      </p>
                      <?php
                  
              }
                  
                  
              ?>
                  <input type="submit" value="Eintragen" />
                  </form>
                  <?php
              }
              ?>


              // processing-code von oben
              <?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());
                  }
              }

              ?>
              nur das mit pid und tid passt nicht, weil ich da den Unterschied gar nicht verstehe...

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

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

              Kommentar


              • #22
                tid und pid

                Also PID ist die Pruefungs-ID und autoincrement
                tid ist die Turnier ID
                Es gibt also einige Turniere und in denen gibt es Pruefungen.

                Beide Werte werden nicht verändert tid ist wichtig damit die Daten in das richtige Turnier eingetragen wird.
                PID ist nur dan interessant wenn ich einen wert brauche,
                der dem Namen der ja nachgetragen wird, einen bestimten
                Datensatz zuweisen muss.

                Das ganze macht so wie jetzt von die geschrieben ist nicht.
                Nach meiner Änderung schreibt er aber nah wie vor in alle datensätze
                den gleichen Wert nähmlich den letzten der schleife.

                Grummel...

                mfg Ronaldl
                Zuletzt geändert von ronaldl; 30.07.2007, 21:48.

                Kommentar


                • #23
                  Dann zeig mal deinen aktuellen code und brich die anderen Code oben um, wegen scrollbalken!

                  Kommentar


                  • #24
                    Das ist mein letzter stand

                    Das ist eintragen PHP die nur den letzten wert einträgt:

                    PHP-Code:
                     print_r($_POST);
                    $tid $_POST['tid'];

                    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++;
                       }
                     }

                    Das ist das Form nochmal umgebrochen:

                    PHP-Code:
                    <?php
                    if (!isset($_POST['tid'])) {
                    ?>
                    <form action="<?=$PHP_SELF?>" method="post">
                    <b>Turnier:</b> <?=get_all_tournaments("tid"$_POST['tid']); ?>
                    <br>
                    <input type="submit" value="Weiter">
                    </form>
                    <?php
                    } else {
                    if (isset(
                    $_POST['send_but']) == "1") {
                            
                    } else {
                    echo 
                    "Turnier ("get_tournament_by_id($_POST['tid']) .")<br><br>";
                    //Pruefungen Zählen und Anzahl ausgeben
                    $result mysql_query("select count(*) from ".$_CONFIG['db']['tbl.pruefnr'].
                    WHERE (tid='"
                    .$_POST['tid']."')") or die ( mysql_error() );
                    while (
                    $row mysql_fetch_array($resultMYSQL_BOTH)) {
                    // Formular ausgeben um Pruefungsnamen ein zu tragen
                    $sql = @mysql_query("SELECT pid, pruefnr, pruefname FROM ".$_CONFIG['db']['tbl.pruefnr']."
                    WHERE (tid='"
                    .$_POST['tid']."' ) ORDER BY pruefnr") or die ( mysql_error() );
                    if (
                    mysql_num_rows($sql) == 0) {
                    echo 
                    "Keine Daten Gefunden"
                    } else {
                                
                    ?>
                    <form action="eintragenpn.php" method="post">
                    <input type="hidden" name="send_but" value="1">
                    <input type="hidden" name="tid" value="<?=$_POST['tid']; ?>">
                                
                    <?php
                    echo "PID.&nbsp ";
                    echo 
                    "Pruefnr.&nbsp ";
                    echo 
                    "Pruefungsname. <br>";                     
                                                           
                    while (
                    $row mysql_fetch_array($sqlMYSQL_NUM)) {
                    echo 
                    "$row[0]. ";
                    echo 
                    "$row[1]. ";
                    echo 
                    "<input type='hidden' name='pid[$row[0]]' >";
                    echo 
                    ".$row[3]. <input type='text' name='pruefna[]' size='50'>. <br><br>";   
                    }
                            
                    }
                    ?>
                    <input type="submit" value="Eintragen">
                    </form>
                    <?php

                    if (is_array($_POST['pruefna'][0])) {
                    $count count($_POST['pruefna']);
                    echo 
                    $I ": " $_POST['pruefna'][$I] . "<br/>";}
                    }
                    }
                    }
                    }

                    Kommentar


                    • #25
                      tu mir mal nen gefallen. Setz vor das

                      $sqlu = "UPDA... mal ein echo, also
                      PHP-Code:
                      echo $sqlu "UPDA... 
                      Was passiert? Was wird ausgegeben?


                      Und dann noch eine dumme fage mit ner dummen antwort: Was soll das bewirken?
                      PHP-Code:
                      while ($J $key
                      Wenn $key 0 ist, wird das update gar nicht ausgeführt und wenn $key = 3 halt 3 mal???

                      Kommentar


                      • #26
                        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.

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

                        LG

                        Kommentar


                        • #27
                          Ich versuche es so freundlich wie möglich zu sagen: Du bist als Programmierer vollkommen deplatziert.
                          Beschäftige dich mit den Dingen, die dir liegen, und nimm dir einen Programmierer für die anderen Tätigkeiten. Kostet zwar etwas Geld, dafür hast du dann auch ein Ergebnis was funktioniert, es schont deine Nerven, und es schon unsere Nerven.

                          Tut mir Leid, aber ich sehe bei dir so viel fehlendes Verständnis für die Dinge, da wird es so oder so darauf hinaus laufen, dass wir dir die Lösung komplett vorkauen...

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

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

                          Kommentar


                          • #28
                            Original geschrieben von TobiaZ
                            tu mir mal nen gefallen. Setz vor das

                            $sqlu = "UPDA... mal ein echo, also
                            PHP-Code:
                            echo $sqlu "UPDA... 
                            Was passiert? Was wird ausgegeben?
                            RL:
                            Das hier ...
                            PHP-Code:
                            UPDATE lenz_pruefnr SET pruefname ='pruef02' where tid='9'
                            UPDATE lenz_pruefnr SET pruefname ='pruef03' where tid='9'
                            UPDATE lenz_pruefnr SET pruefname ='pruef03' where tid='9'
                            UPDATE lenz_pruefnr SET pruefname ='pruef04' where tid='9'
                            UPDATE lenz_pruefnr SET pruefname ='pruef04' where tid='9'
                            UPDATE lenz_pruefnr SET pruefname ='pruef04' where tid='9' 

                            Und dann noch eine dumme fage mit ner dummen antwort: Was soll das bewirken?
                            PHP-Code:
                            while ($J $key
                            Wenn $key 0 ist, wird das update gar nicht ausgeführt und wenn $key = 3 halt 3 mal???
                            Nun ja hab versucht es sollte der erste wert eingetragen werden dann der Zweite das mit dem überschreiben ist schon klar aber die lösung des Problems nicht.

                            Kommentar


                            • #29
                              OffTopic:
                              @ghostgambler:Wie kann man etwas sehen, was nicht da ist?


                              @ronaldl: Na, das Ergebnis der Testausgabe zeig genau die vermutung von kuddeldaddeldu. Also beheben!

                              Kommentar


                              • #30
                                Du musst in deiner Schleife logischerweise auch $tid und $pruefname entsprechnd anpassen, damit es Sinn ergibt.
                                ich glaube

                                Kommentar

                                Lädt...
                                X