komme nicht weiter

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

  • komme nicht weiter

    hallo alle zusammen
    ich komme absolut nicht mehr weiter vieleicht bin ich auch wieda ein bischen zu blöd aber bisher (ausser ganz zu anfang) habe ich meine immer gefunden naja... fogendes ich möchte mehrere Datensätze aus einer Tabelle in ein Textfeld setzen und die datensätze bearbeiten und wieder zurück in dieselbe datenbank abspeichern

    mein ansatz ist wie folgt
    PHP-Code:
    <form method="POST" action="spieltag_michael_eintarge.php?submit&ID">

    <?
    echo "<table>";
    echo "<tr>";
    echo $var10;
    echo "</table>";
    echo "<table bgcolor=#006699>";
    echo    "<th>ID</th>",
        "<th>Rang</th>",
        "<th>Spieler</th>",
        "<th>Position</th>",
        "<th>Note</th>",
        "<th>Punkte</th>",
        "<th>Tore</th>",
        "<th>Gegentore</th>",
        "<th>Vorlagen</th>",
        "<th>Karten</th>",
        "<th>Eigentore</th>";
    #    echo"<th>Spieltag</th>";
    #    echo"<th></th>";
    ##############################################################
    #if ($Spieltag = $_POST['Spieltag']) {
            while ($row=mysql_fetch_array($result1,MYSQL_NUM)) {
    #        while ($ar=mysql_fetch_array($result1,MYSQL_ASSOC)) {
    print_r ($row[3]);
    ###################################################################################################
    //Abwechselnde Farbgestaltung der Ausgabe Reihen
            ?>
            <tr align="center" bgcolor="#<? echo ($i++%2 ==1) ? 'ebebeb' : 'CCCCCC'; ?>">
            <?
    //Ende Farbgestaltung
    ###################################################################################################
    echo    "<td>","<input type=\"text\" name=\"ID\" size=\"2\" value=\"$row[0]\">","</td>",
        "<td>","<input type=\"text\" name=\"status\" size=\"2\" value=\"$row[3]\">","</td>",
        "<td>","<input type=\"text\" name=\"Spieler\" size=\"15\" value=\"$row[4]\">","</td>",
        "<td>","<input type=\"text\" name=\"Position\" size=\"10\" value=\"$row[6]\">","</td>",
        "<td>","<input type=\"text\" name=\"Note\" size=\"3\" value=\"$row[7]\">","</td>",
        "<td>","<input type=\"text\" name=\"Punkte\" size=\"3\" value=\"$row[8]\">","</td>",
        "<td>","<input type=\"text\" name=\"Tore\" size=\"3\" value=\"$row[9]\">","</td>",
        "<td>","<input type=\"text\" name=\"Gegentore\" size=\"3\" value=\"$row[10]\">","</td>",
        "<td>","<input type=\"text\" name=\"Vorlagen\" size=\"3\" value=\"$row[11]\">","</td>",
        "<td>","<input type=\"text\" name=\"Karten\" size=\"3\" value=\"$row[12]\">","</td>",
        "<td>","<input type=\"text\" name=\"Eigentore\" size=\"3\" value=\"$row[13]\">","</td></tr>";
    echo"</table>";
    print_r ($row[0]);
    ?>
    <input type="hidden" name="ID" value="<?echo $row[0];?>">
    <input type="submit" name="submit" value="Spielerwert eintragen">
    </form>
    die annehmende datei sieht dann so aus

    PHP-Code:

    include("formate.php");
    include(
    "dbconnect.php");
    include(
    "var/variable.php");
    echo 
    "<br>";
    print_r ($_POST);
    $update "UPDATE spieltage SET Note='$row[7]' WHERE ID='$row[0]' AND Manager='managername'";
    mysql_query ($update) or die ("Konnte Datensatz Spielerwerte zu \"Spieltag\" -Tabelle"." nicht hinzufügen: " .mysql_error() );
    echo 
    "Der Datensatz wurde erfolgreich eingetragen";
    echo 
    "<br>";
    ?> 
    es wird jeweils immer nur der letze datensatz im POST mitgenommen aber auch nicht geschrieben bzw es werden nur die bestehenden daten aus der datenbank mitgenommen und nicht die neu eingetragenen. wo liegt der fehler?

    gruss
    y1302
    _______________________________________
    jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

    bye

    y1302

  • #2
    hmm,

    du hast dir nicht zufälligerweise mal den erzeugten html-quellcode angeschaut!?

    - wo wird deine while geschlossen?
    - zwei felder gleichen namens, naja ....
    - wenn du mehrere datensätze ändern willst, solltest du den inputs namen der form name[id] geben, um sie nachher auseinanderzuhalten
    OffTopic:
    goiler code!
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Guten Morgen

      erst mal schönen dank für deine Antwort mit den hilfreichen tips. manachmal sieht man
      echt den wald vor lauter bäumen nicht. die while schleife wird vor dem HTML kram
      geschlossen der Quelltext hat mir vor deinen Tipps nur eine Spieler ausgegeben, nach den
      Änderung dur das einfache hinzufügen von [] sah der Quelltext so aus das für jeden
      Feldnamen ein Array angelegt wurde. Nur bei ID nicht, weil dieser name wie du
      festgestellt hattest doppelt vorkam. manchnmal sind es die einfachen dinge auf die man
      nicht so einfach kommt oder man ist voll blind auf jeden fall werden jetz für alle
      feldnamen Arrays angelegt (auch für ID). dafür erstmal schönen dank.
      werde jetzt erst mal versuchen das er die neuen daten in die Datenbank reinschreibt
      das klappt noch nicht so ganz. hättest du da ne idee?
      liege ich falsch wenn ich sage das es an der schreibweise vom einzutragenden Array liegt?
      naja werd noch mal ein bisschen probieren.

      Ansonsten meld ich mich noch mal

      ciao

      Michael
      _______________________________________
      jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

      bye

      y1302

      Kommentar


      • #4
        hmm,

        mach doch mal nach dem absenden
        PHP-Code:
        echo '<pre>';
        print_r($_POST);
        echo 
        '</pre>'
        du brauchst das (äußere) array doch nur elementweise durchlaufen und die queries basteln ...
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          @derHund

          erstmal schönen dank für den Hinweis

          PHP-Code:
          echo '<pre>';
          print_r($_POST);
          echo 
          '</pre>'
          gibt einem glat den quellcode des arrays der seite wieder.
          sieht bei mir so aus

          Array
          (
          [ID] => Array
          (
          [0] => 2
          [1] => 4
          [2] => 5
          [3] => 6
          [4] => 7
          [5] => 10
          [6] => 11
          [7] => 12
          [8] => 16
          [9] => 17
          [10] => 18
          [11] => 3
          [12] => 8
          [13] => 9
          [14] => 13
          [15] => 14
          [16] => 15
          [17] => 19
          [18] => 20
          [19] => 21
          )
          etc....

          wie müsste dann ansatzweise die query aussehen...

          meine Query
          PHP-Code:
          $update =" UPDATE tabelle SET Note='$row[7]' WHERE ID='"$_POST["ID".$row[0]]."' AND Manager='managername'";
          mysql_query... 
          lieg ich da völlig falsch
          _______________________________________
          jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

          bye

          y1302

          Kommentar


          • #6
            lieg ich da völlig falsch
            ja!

            supi übrigens, wie du die indizies des arrays vergeben hast, was steht nochmal in [11]?

            und das
            Code:
            [ID] => Array
            soll wohl auch nicht so sein?
            ID sollte doch eher eine zahl sein?!

            und wo du hier
            PHP-Code:
            T Note='$row[7]' WHERE ID='"$_POST["ID".$row[0]]."' 
            jeweils das $row[] herkriegst, würd mich interessieren ...
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              @derHund

              sorry habe wohl etwas voreilig geantwortet denn ich glaube (ich weiss glauben heisst nicht
              wissen) es jetzt verstanden zu haben im nachfolgenden code habe ich eine kleine Beschreibung eingebaut so wie ich es verstanden habe
              es funktioniert jetzt auf jeden fall
              PHP-Code:
              ?>
              <form method="POST" action="spieltag_eintragen.php?submit&ID">
              <?
              echo "<table>";
              echo "<tr>";
              echo $var10;
              echo "</table>";
              echo "<table bgcolor=#006699>";
              echo    "<th>ID</th>",
                  "<th>Rang</th>",
                  "<th>Spieler</th>",
                  "<th>Position</th>",
                  "<th>Note</th>",
                  "<th>Punkte</th>",
                  "<th>Tore</th>",
                  "<th>Gegentore</th>",
                  "<th>Vorlagen</th>",
                  "<th>Karten</th>",
                  "<th>Eigentore</th>";
              #    echo"<th>Spieltag</th>";
              #    echo"<th></th>";
              ##############################################################
              //if abfrage vom select definieren
              if ($Spieltag = $_POST['Spieltag']) {
              //while schleife vom result aufbauen
                      while ($row=mysql_fetch_array($result)) {
              ###################################################################################################
              //Abwechselnde Farbgestaltung der Ausgabe Reihen
                      ?>
                      <tr align="center" bgcolor="#<? echo ($i++%2 ==1) ? 'ebebeb' : 'CCCCCC'; ?>">
                      <?
              //Ende Farbgestaltung
              ###################################################################################################
              //Ablauf Erklärung
              /*für das feld input type=\"text\" einen namen vergeben der dann als Array fungiert und für jede tabellenspalte ein Elemement beginnend
               bei [0] anlegt z.B. name=\"ID \" wird zu dem Array $_POST["ID".$row[0]]  welches man dann mit print_r($_POST["ID".$row[0]]); abrufen kann
              will man nur den Wert der in dem Array ID steht, also den indizies haben, so wird er mit print_r($ID[0]); oder print_r($ID[1]);
              aufgerufen und so weiter. Dieser Indizies ist dann der wert der in dem Textfeld neu eingetragen wurde und dem POST array übergeben wurde.
              das value=\"$row[0]\" in der ID zeile ist das array zur ersten spalte der tabelle abhängig vom ergebnis der abfrage (result) und  wird 
              über die while Schleife aus der datenbank in das Textfeld eingetragen. die vorgehende if abfrage bezieht sich auf einen select bereich die
              nur einen wert als vergleich für eine WHERE anweisung durchführt*/ 
              echo    "<td>","<input type=\"text\" name=\"ID[]\" size=\"2\" value=\"$row[0]\">","</td>",
                  "<td>","<input type=\"text\" name=\"status[]\" size=\"2\" value=\"$row[3]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Spieler[]\" size=\"15\" value=\"$row[4]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Position[]\" size=\"10\" value=\"$row[6]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Note[]\" size=\"3\" value=\"$row[7]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Punkte[]\" size=\"3\" value=\"$row[8]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Tore[]\" size=\"3\" value=\"$row[9]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Gegentore[]\" size=\"3\" value=\"$row[10]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Vorlagen[]\" size=\"3\" value=\"$row[11]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Karten[]\" size=\"3\" value=\"$row[12]\">","</td>",
                  "<td>","<input type=\"text\" name=\"Eigentore[]\" size=\"3\" value=\"$row[13]\">","</td></tr>";
              //while schleife schliessen
              }
              //if anweisung beenden
              }
              else
              echo "<h4>Bitte einen Spieltag ausw&auml;hlen!</h4><br>";
              echo "</table>";
              echo "<br>";
              die spieltag_eintragen.php sie dann so aus:
              PHP-Code:
              <?
              include("formate.php");
              include("dbconnect.php");
              include("var/variable.php");
              $update = "UPDATE spieltage SET Note='".$Note[0]."', Punkte='".$Punkte[0]."', Tore='".$Tore[0]."', Gegentore='".$Gegentore[0]."', Vorlagen='".$Vorlagen[0]."', Karten='".$Karten[0]."', Eigentore='".$Eigentore[0]."' WHERE ID='".$ID[0]."' AND Manager='michael'";

              mysql_query ($update) or die ("Konnte Datensatz Spielerwerte zu \"Spieltag\" -Tabelle"." nicht hinzufügen: " .mysql_error() );
              echo "Der Datensatz wurde erfolgreich eingetragen";
              echo "<br>";    
              ?>
              vielleicht kann es ja jemand gebrauchen der dasselbe problem hat.
              so langsam verstehe ich das ganze (glaube ich)

              also besten dank nochmal für deine Denkanstösse

              michael
              _______________________________________
              jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

              bye

              y1302

              Kommentar

              Lädt...
              X