mehrdimensionales array mit foreach

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

    Comment


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

      Comment


      • #4
        Originally posted by bufffuchs View Post
        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.

        Comment


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

          PHP: mysql_real_escape_string - Manual

          Comment


          • #6
            komm hier auf kein grünen uweig

            stehe irgendwie auf dem schlauch

            Comment


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

              Comment


              • #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
                Last edited by bufffuchs; 27-03-2010, 16:33.

                Comment


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

                  Comment


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

                    Comment


                    • #11
                      Dann bau mal $Key noch mit ein, um deine Query dynamisch zu erstellen.
                      Last edited by TobiaZ; 27-03-2010, 17:43.

                      Comment


                      • #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
                        Last edited by bufffuchs; 27-03-2010, 17:51.

                        Comment


                        • #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???
                          Last edited by TobiaZ; 27-03-2010, 17:48.

                          Comment


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

                            Comment


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

                              Comment

                              Working...
                              X