mehrdimensionales array mit foreach

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

  • mehrdimensionales array mit foreach

    hy. ich habe ein problem :d

    unszwar habe ich 4 input felder
    <input type="text" name="tore_heim1[]" size="10" maxlength="10">
    <input type="text" name="tore_gast1[]" size="10" maxlength="10">
    <input type="text" name="tore_heim1[]" size="10" maxlength="10">
    <input type="text" name="tore_gast1[]" size="10" maxlength="10">

    hintergrund davon ist, das wir fussball auf der console spielen und diese in eine db eintragen.
    nun will ich aber mit einem rutch gleich mal 5 spiele eintragen und abschicken (nicht jedes einzeln wie bisher).
    meine frage ist. wie gestalte ich die php abfrage das er alle einträgt in die db.
    zur zeit ist es so:

    PHP-Code:
    if($_POST['eintragen'] == "Eintragen"){
    echo 
    "<pre>";
    print_r($_POST);
    echo 
    "</pre>";

        foreach (
    $_POST[tore_heim1] as $heim) {
            echo 
    $heim."\r\n";
        }
        foreach (
    $_POST[tore_gast1] as $gast){
            echo 
    $gast."\r\n";
        }


        

            if(
    $_POST[tore_heim1] == $_POST[tore_gast1]) $s_team 0;
            if(
    $_POST[tore_heim1] > $_POST[tore_gast1]) $s_team $_POST[iduser_heim];
            if(
    $_POST[tore_heim1] < $_POST[tore_gast1]) $s_team $_POST[iduser_gast];

            echo(
    "INSERT INTO ****************_daten (heim,gast,idteams_heim,idteams_gast,tore_heim,tore_gast,s_teamid,tag,monat,jahr,zeit,komment)
                             VALUES (
                                 '
    $_POST[iduser_heim]',
                                 '
    $_POST[iduser_gast]',
                                 '
    $_POST[idteams_heim]',
                                '
    $_POST[idteams_gast]',
                                '
    $heim',
                                '
    $gast',
                                '
    $s_team',
                                '
    $_POST[tag]',
                                '
    $_POST[monat]',
                                '
    $_POST[jahr]',
                                NOW(),
                                '
    $_POST[komment]')
                            "
    );
        

    das einzige was sich immer ändert sind die tore halt. datum und team bleibt gleich sowie heim und gast team

  • #2
    Was hast du bisher versucht? Woran scheiterst du?

    Kommentar


    • #3
      PHP-Code:
          foreach ($_POST[tore_][heim] AS $Key => $Value){
              
              
              if(
      $Value == $_POST[tore_][gast]) $s_team 0;
              if(
      $Value $_POST[tore_][gast]) $s_team $_POST[iduser_heim];
              if(
      $Value $_POST[tore_][gast]) $s_team $_POST[iduser_gast];

              echo(
      "INSERT INTO ****************_daten (heim,gast,idteams_heim,idteams_gast,tore_heim,tore_gast,s_teamid,tag,monat,jahr,zeit,komment)
                               VALUES (
                                   '
      $_POST[iduser_heim]',
                                   '
      $_POST[iduser_gast]',
                                   '
      $_POST[idteams_heim]',
                                  '
      $_POST[idteams_gast]',
                                  '
      $Value',
                                  '
      $_POST[tore_][gast]',
                                  '
      $s_team',
                                  '
      $_POST[tag]',
                                  '
      $_POST[monat]',
                                  '
      $_POST[jahr]',
                                  NOW(),
                                  '
      $_POST[komment]')
                              "
      ); 
      habe den code mal geändert.
      leider ist im insert der wert $_POST[tore_][gast] leer.
      hier mal die array ausgabe direkt nach dem senden der daten
      PHP-Code:
      Array
      (
          [
      iduser_heim] => 2
          
      [iduser_gast] => 1
          
      [idteams_heim] => 11
          
      [idteams_gast] => 14
          
      [tore_] => Array
              (
                  [
      heim] => Array
                      (
                          [
      0] => 2
                          
      [1] => 5
                      
      )

                  [
      gast] => Array
                      (
                          [
      0] => 1
                          
      [1] => 5
                      
      )

              )

          [
      tag] => 27
          
      [monat] => 03
          
      [jahr] => 2010
          
      [komment] => 
          [
      eintragen] => Eintragen

      Kommentar


      • #4
        Zitat von bufffuchs Beitrag anzeigen
        leider ist im insert der wert $_POST[tore_][gast] leer.
        http://www.php.net/manual/en/languag...string.parsing
        http://www.php.net/manual/en/languag...es.array.donts
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Escapen nicht vergessen! Das ist eine der größten Sicherheitslücken, die ständig ausgenutzt wird.

          PHP: mysql_real_escape_string - Manual

          Kommentar


          • #6
            komm hier auf kein grünen uweig

            stehe irgendwie auf dem schlauch

            Kommentar


            • #7
              $_POST['tore_']['gast'] ist ein Array uns kein skalarer Wert. Außerdem vergisst du überall Hochkommas um die Strings zu schreiben.

              Dreh mal das Error Reporting und die Fehlerausgabe an, dann müsste dir PHP haufenweise Fehlermeldungen um die Ohren hauen.

              Kommentar


              • #8
                also
                [COLOR=#0000bb]error_reporting[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]E_ALL[/COLOR][COLOR=#007700]);
                [/COLOR][COLOR=#0000bb]ini_set[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'display_errors'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700]);

                bringt keine fehler.


                kann mir einer sagen was anstatt [/COLOR]$_POST['tore_']['gast'] in den insert muss
                Zuletzt geändert von bufffuchs; 27.03.2010, 17:33.

                Kommentar


                • #9
                  Guck dir den Inhalt von $_POST['tore_']['gast'] mittels print_r() oder var_dump() an, dann siehst du es selber.

                  Kommentar


                  • #10
                    PHP-Code:
                    array(2) {
                      [
                    0]=>
                      
                    string(1"wert"
                      
                    [1]=>
                      
                    string(1"wert"

                    kommt das raus. bin nicht grad gross bewandert in php. baue schon ewig daran dewegen stehe ich nun auf dem schlauch

                    Kommentar


                    • #11
                      Dann bau mal $Key noch mit ein, um deine Query dynamisch zu erstellen.
                      Zuletzt geändert von TobiaZ; 27.03.2010, 18:43.

                      Kommentar


                      • #12
                        um das nochmal zu verdeutlichen mit buchstaben

                        das ist der vollständige insert den er zur zeit macht

                        PHP-Code:
                        Array
                        (
                            [
                        iduser_heim] => 1
                            
                        [iduser_gast] => 1
                            
                        [idteams_heim] => 14
                            
                        [idteams_gast] => 14
                            
                        [tore_] => Array
                                (
                                    [
                        heim] => Array
                                        (
                                            [
                        0] => a
                                            
                        [1] => c
                                        
                        )

                                    [
                        gast] => Array
                                        (
                                            [
                        0] => b
                                            
                        [1] => d
                                        
                        )

                                )

                            [
                        tag] => 27
                            
                        [monat] => 03
                            
                        [jahr] => 2010
                            
                        [komment] => 
                            [
                        eintragen] => Eintragen
                        )
                        INSERT INTO ****************_daten  (heim,gast,idteams_heim,idteams_gast,tore_heim,tore_gast,s_teamid,tag,monat,jahr,zeit,komment)
                        VALUES 
                        '1''1''14''14',  'a''''1''27','03''2010',NOW(), '')  
                        INSERT INTO ****************_daten  (heim,gast,idteams_heim,idteams_gast,tore_heim,tore_gast,s_teamid,tag,monat,jahr,zeit,komment)
                        VALUES 
                        '1''1','14','14','c','','1','27','03','2010',NOW(),'')
                        array(
                        2) {
                          [
                        0]=>
                          
                        string(1"b"
                          
                        [1]=>
                          
                        string(1"d"

                        a und c trägt er bei heim ein. nur die werte b und d sollen bei gast rein andhand der foreach und dem vorhandenen key
                        Zuletzt geändert von bufffuchs; 27.03.2010, 18:51.

                        Kommentar


                        • #13
                          formatier das ganze doch bitte so, dass man es noch schnell lesen kann.

                          BTW: Wenn du sowieso mehrere Queries absendest, dann verwende doch bitte die SET-Variante (INSERT INTO tbl SET spalte=wert, spalte2=wert2...) Dann wird die Query für Außenstehende und auch dich später viel leichter zu erfassen.

                          a und c trägt er bei heim ein. nur die werte b und d sollen bei gast rein andhand der foreach und dem vorhandenen key
                          Wenn du es mit HEIM kannst, warum kannst du das nicht auch auf GAST anwenden???
                          Zuletzt geändert von TobiaZ; 27.03.2010, 18:48.

                          Kommentar


                          • #14
                            ao formatiert. jerzt seht ihr ja das die werte a,c in die spalte tore_heim eingetrageb werden. nun müssen nur noch die werte b,d in tore_gast rein

                            der foreach sieht so aus
                            PHP-Code:
                            foreach ($_POST[tore_][heim] AS $key => $value){
                            hier der insert

                            Kommentar


                            • #15
                              "Der" Foreach interessiert aber gar nicht. Wir brauchen den Code an dem du versuchst, die Werte in die Query zu pressen.

                              Kommentar

                              Lädt...
                              X