php-neuling -> Mehrere Datensätze speichern

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

  • php-neuling -> Mehrere Datensätze speichern

    Hallo Zusammen,

    Ich habe mir mit MySQL eine Fussballtabelle erstellt die so aussieht:

    - id
    - team
    - spiele
    - siege
    - unentschieden
    - niederlagen
    - punkte

    Nun lese ich mit meinem PHP-File alle Einträge aus und gebe
    diese in einem Formular aus damit alle Einträge auf einmal
    bearbeitet werden können.

    Nun kommen wir zu meinem eigentlichen Problem. Bis anhin habe
    ich immer nur einzelne Einträge aus Tabellen bearbeitet, darum auch
    nie ein problem gehapt die daten wieder zurück zu schreiben. Nun
    habe ich aber eine Tabelle mit 12 Einträgen und möchte alle per
    Knopfdruck updaten und ich weiss nicht wie das geht.. also ich
    weiss nicht wie ich die Felder ansprechen muss.

    Also, nach dem ich meine Tabelle ausgegeben habe, alle Einträge
    über meine Maske bearbeitet habe rufe ich dann über meinem
    SUBMIT Button as file nochmals auf und geben das 'X' mit welches
    ich mit $_POST[save] abfrage:

    Danach sollen alle Einträge wieder zurück auf die Tabelle
    geschrieben werden mittels update:

    PHP-Code:
        // Eintrag sichern
        
    if ($_POST[save] == 'X') {
                 foreach(
    $_POST[id] as $idnr => $tdata)
                 {
                     
    $upd"UPDATE tabelle_team1 set team=$_POST[team],
                                    spiele=
    $_POST[spiele][$idnr], 
                         siege=
    $_POST[siege][$idnr],
                         unentschieden=
    $_POST[unentschieden][$idnr], 
                         niederlagen=
    $_POST[niederlagen][$idnr], 
                         punkte=
    $_POST[punkte][$idnr] where id=$tdata";

                    
    $res  =  mysql_query($upd) or die(mysql_error());
                

    Eigentlich sollte nun das Update auf meine Tabelle "tabelle_team1"
    erfolgen jedoch funktioniert das nicht. mysql_error meldet:
    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 '..' at line 1

    Das mit dem Syntax ist das eine.. glaube aber auch das ich die
    Felder aus dem $_POST falsch anspreche!?

    Vielleicht noch als erklärung, so gebe ich die Daten aus, welche ich
    gelesen habe:

    PHP-Code:
    while($res mysql_fetch_array($query)) {

    $color = ($a 2) ? "#FFFFFF" "#000000";    
    $a++;
    <
    input name='id[${res['id']}]' type='text' value=$res[id]
    <
    input name='team[${res['id']}]' type='text' value=$res[teamreadonly
    <input name='spiele[${res['id']}]' type='text' value=$res[spiele]
    <
    input name='siege[${res['id']}]' type='text' value=$res[siege]
    <
    input name='unentschieden[${res['id']}]' type='text' value=$res[unentschieden
    <
    input name='niederlagen[${res['id']}]' type='text' value=$res[niederlagen]
    <
    input name='punkte[${res['id']}]' type='text' value=$res[punkte
    So, nun hoffe ich habe ichs so gepostet wie man sollte.. danke für die Info
    gruss pascal
    Zuletzt geändert von paesc; 18.08.2005, 12:17.

  • #2
    willkommen.
    erst lesen bitte und post editieren:
    http://www.php-resource.de/forum/sho...threadid=50454

    Kommentar


    • #3
      Wie sieht denn das Formular im Quelltext aus, sind da die IDs eingetragen ?
      Also name[id].
      Oder erscheint die id evtl. erst garnicht ?

      Kommentar


      • #4
        Im Formular, welches ausgegeben wird sind die ID's im namen eingetragen.

        Also so:

        PHP-Code:
        <input name='id[1]' type='text' value=... 
        Und so für alle meine 12 Einträge.

        Gruss Pascal

        Kommentar


        • #5
          Du sollst dein Eingangsposting editieren!!!

          Kommentar


          • #6
            hab ich doch...
            was hättest denn gern genauer?

            wüsste nicht was ich noch mehr zu meinem problem sagen soll!

            pascal

            Kommentar


            • #7
              Du sollst endlich den horizontalen Scrollbalken entfernen. Penizillin hatte dich bereits darauf hingewiesen.

              Kommentar


              • #8
                Aha das war das problem..na sorry! dachte es hätte mit der beschreibung zu tun..

                gruss pascal

                Kommentar


                • #9
                  1. gewöhne dir an, die variablen und die strings zu trennen. kann sonst. u.u. problematisch werden.

                  d.h.
                  PHP-Code:
                  $x 'foo and '.$bar.' etc'
                  2. was soll das
                  PHP-Code:
                  $upd"UPDATE tabelle_team1 set... "
                  ?

                  3. lass dir die (richtige!) query ausgeben und zeig sie mal hier.

                  Kommentar


                  • #10
                    Original geschrieben von penizillin

                    2. was soll das
                    PHP-Code:
                    $upd"UPDATE tabelle_team1 set... "
                    ?
                    sorry, das habe ich beim editieren meines Eintrages übersehen, habs aber jetzt korrigiert: also wenn ich mir das query ausgeben lasse siehts folgendermassen aus: in diesem Beispiel halt nach dem ersten durchlauf:

                    PHP-Code:
                    UPDATE tabelle_team1 set team=Array,
                     
                    spiele=Array[1], siege=Array[1], unentschieden=Array[1],
                    niederlagen=Array[1], punkte=Array[1where id=
                    das einzige was hier richtig ist, ist das where id=1.. die "1" kommt nämlich aus meinem $tdata

                    PHP-Code:
                                 foreach($_POST[id] as $idnr => $tdata)
                                 {
                                     
                    $upd"UPDATE tabelle_team1 set team=$_POST[team],
                                                    spiele=
                    $_POST[spiele][$idnr], 
                                         siege=
                    $_POST[siege][$idnr],
                                         unentschieden=
                    $_POST[unentschieden][$idnr], 
                                         niederlagen=
                    $_POST[niederlagen][$idnr], 
                                         punkte=
                    $_POST[punkte][$idnr] where id=$tdata";
                                

                    Zuletzt geändert von paesc; 18.08.2005, 12:27.

                    Kommentar


                    • #11
                      aber das kann ja nicht richtig sein.
                      daher solltest du dem ersten drittel meines letzten postings mehr beachtung schenken, als du es bis jetzt getan hast.

                      Kommentar


                      • #12
                        Penizillin,

                        leider verstehe ich das:
                        PHP-Code:
                        $x 'foo and '.$bar.' etc'
                        nicht mal...

                        Was meinst du wo soll ich welche variabeln so trennen?

                        Kommentar


                        • #13
                          Was meinst du wo soll ich welche variabeln so trennen?
                          immer und überall!

                          http://www.php-resource.de/forum/sho...threadid=58111

                          Kommentar


                          • #14
                            ok, so?

                            PHP-Code:
                             foreach($_POST['id'] as $idnr => $tdata)
                             {
                            $upd"UPDATE tabelle_team1 
                            set team=
                            $_POST['team'][$idnr],
                            spiele=
                            $_POST['spiele'][$idnr], 
                            siege=
                            $_POST['siege'][$idnr],
                            unentschieden=
                            $_POST['unentschieden'][$idnr], 
                            niederlagen=
                            $_POST['niederlagen'][$idnr], 
                            punkte=
                            $_POST['punkte'][$idnr] where id=$tdata";
                                        

                            hmm, naja, nicht wirklich ..so krieg ich immer nen parse error..
                            PHP-Code:
                            Parse errorparse errorunexpected
                            T_ENCAPSED_AND_WHITESPACE

                            expecting T_STRING or T_VARIABLE or T_NUM_STRING 

                            Kommentar


                            • #15
                              nein. die variablen sollen außerhalb der strings stehen.

                              Kommentar

                              Lädt...
                              X