Problem mit Array-Werten, Array erweitern

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

  • Problem mit Array-Werten, Array erweitern

    Schönen guten Abend zusammen,

    komme auch mit Hilfe vieler Threads hier nicht so richtig weiter:
    hole wie folgt daten aus der DB:
    PHP-Code:
        while ($zeile=mysql_fetch_array($ergebnis,MYSQL_ASSOC))
    {
        echo 
    "<tr>
            <td><input name='box[]' type='text' value='
    $zeile[folge]' size='3' maxlength='3'>
                    <input name='id[]' type='hidden' id='id' value='
    $zeile[id]'></td>
          </tr>"
    ;

    Nun möchte ich die Abhängigkeit vom Textfeld und der Datensatz ID mir zum Test ausgeben lassen, mach ich so:
    PHP-Code:
    if(isset($_REQUEST['box'])) {

    foreach (
    $_REQUEST['box'] as $key => $element ){    
                echo 
    "<b>$element</b> $id <br>";
    }

    Für die box[]-Werte klappt das ja.
    Ich weiß, das mir die id-Werte nicht angezeigt werden, weil Sie im Array fehlen. Und das ist mein Problem. Wie muß das Array aussehen, das mir die Werte von 'id[]' mit ausgegeben werten??

    Wer hat nen Tip, oder nen Beitrag zum nachlesen für mich??

    Danke für Eure Mühe

  • #2
    so?

    PHP-Code:
    while ($zeile=mysql_fetch_array($ergebnis,MYSQL_ASSOC))
    {
        echo 
    '<tr>
            <td><input name="box['
    .$zeile['id'].']" type="text"
                  value="'
    .$zeile['folge'].'" size="3" maxlength="3"></td>
          </tr>'
    ;

    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Danke, sieht für die Abfrage gut aus, aber nun bekomme ich in der Ausgabe
      PHP-Code:

      if(isset($_REQUEST['box'])) {

      foreach (
      $_REQUEST['box'] as $key => $element ){    
                  echo 
      "<b>$element</b> $id <br>";
      }

      leider immer noch nicht die zeile[id]-Werte hin. Und die brauch ich, da ich dann mit hilfe der id anstelle des echo ein Update auf die DB machen kann.

      Kommentar


      • #4
        wo wird $id definiert? und warum nutzt du nicht $key?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Das ist ja mein Problem, bekomme für $key einfach keinen zweite Wert zustande. Bastel da immer Syntaxfehler rein. Das meinte ich ja in meiner Überschrift. Array wert hinzufügen, .. und dann auslesen

          habs jetzt mal so probiert, bekomme aber keine Ausgabe:
          PHP-Code:
          if(isset($_REQUEST['box'])) {
          $ds = array ("ds1" => array($_REQUEST['box'],  $_REQUEST['id']));
          foreach(
          $ds as $wert){
          echo 
          "<b>".$wert[0]."</b>".$wert[1]."<br>";
          }

          Zuletzt geändert von ; 15.04.2005, 21:12.

          Kommentar


          • #6
            zeig mal ein stückchen generierten html-code basierend auf dem code-beispiel von mir bitte.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Auszug aus dem Html-Code, generiert mit deiner While schleife:
              PHP-Code:
              <td>
                <
              input name="box[3]" type="text" value="conan" size="3" maxlength="3">
              </
              td></tr>
              <
              tr>
              <
              td>
                <
              input name="box[4]" type="text" value="alibaba" size="3" maxlength="3">
              </
              td></tr

              Kommentar


              • #8
                dann mache mal nach dem senden des formulars ein print_r($_POST['box'])
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Danke @ Abraxax für Deine Hilfe,
                  bin jetzt auf folgende gloreiche Idee gekommen:
                  PHP-Code:
                  if(isset($_REQUEST['box'])) {
                      echo 
                  count($_REQUEST['box']);
                          for (
                  $i=0$i count($_REQUEST['box']); $i++){
                          
                  $ds = array ("ds" => array($_REQUEST['box'][$i],  $_REQUEST['id'][$i]));
                              while (list ( 
                  $key$val) = each ($ds)){
                              echo 
                  "$key => $val[0] $val[1]<br>";
                          }
                      }

                  weiß nicht, obs die feine englische ist, funktioniert aber.

                  Kommentar


                  • #10
                    hier der Vollständigkeit halber, mit update Anweisung für MySQL:
                    PHP-Code:
                    if(isset($_POST[senden])){
                        if(isset(
                    $_REQUEST['box'])) {
                            echo 
                    count($_REQUEST['box']);
                                for (
                    $i=0$i count($_REQUEST['box']); $i++){
                                
                    $ds = array ("ds" => array($_REQUEST['box'][$i],  $_REQUEST['id'][$i]));
                                    while (list ( 
                    $key$val) = each ($ds)){
                                    echo 
                    "$key => $val[0] $val[1]<br>";
                                    
                                    
                    $sql="UPDATE ai_objekte SET folge='$val[0]' WHERE id='$val[1]'";
                                        
                                        if(
                    mysql_query($sql$db))
                                        {
                                            
                    //Ausgabe für ERFOLGREICHER EINTRAG in die DB
                                            
                    echo "<p><span class='erfolgreich'> - Eintrag wurde ge&auml;ndert</span></p>\n";                    
                                        }
                                            else
                                        {
                                            echo 
                    "Fehler aufgetreten.<br>Bitte noch einmal probieren\n";
                                        }
                    //Ende Else mysql_query        
                        
                                
                    }
                            }
                        }

                    Kommentar


                    • #11
                      du hast dir nicht wirklich print_r($_POST['box']) angesehen. oder?

                      denn wenn, dass hättest du sehen müssen, dass die id schon der index des array's ist. somit wäre dein extra-id-feld fürn a.a.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Doch habe ich, wußte aber nicht, wie ich das Array dann splitten soll, um an beide werte ranzukommen. Lerne aber gern weiter dazu

                        Kommentar


                        • #13
                          du hast es mit deinem list() ja schon gemacht.
                          alternativ halt auch foreach()

                          PHP-Code:
                          foreach($_POST['box'] as $key => $val)
                              echo 
                          $key .' - '.$val.'<br />'
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            $val im echo ist ok. Da stehen die Werte drinne, wie sie sein sollen. Aber in der $key wird hier nur das Array durchgezählt und fängt bei "0" an. hier soll aber der wert meiner Variablen aus der $zeile[id] stehen. Die brauche ich doch, um die Update später wieder richtig setzten zu können.

                            hier mal zum vergleich die beiden ausgaben

                            20 Datensätze wurden geändert // Richtige werte und Id-Nummern
                            ds => 1 3 - Eintrag wurde geändert
                            ds => 2 2 - Eintrag wurde geändert
                            ds => 3 4 - Eintrag wurde geändert
                            ds => 5 5 - Eintrag wurde geändert
                            ds => 8 8 - Eintrag wurde geändert
                            ds => 9 7 - Eintrag wurde geändert
                            ds => 10 16 - Eintrag wurde geändert
                            ds => 13 19 - Eintrag wurde geändert
                            ds => 51 20 - Eintrag wurde geändert
                            ds => 58 9 - Eintrag wurde geändert
                            ds => 69 10 - Eintrag wurde geändert
                            ds => 74 11 - Eintrag wurde geändert
                            ds => 74 15 - Eintrag wurde geändert
                            ds => 89 14 - Eintrag wurde geändert
                            ds => 125 12 - Eintrag wurde geändert
                            ds => 236 17 - Eintrag wurde geändert
                            ds => 258 18 - Eintrag wurde geändert
                            ds => 365 13 - Eintrag wurde geändert
                            ds => 500 6 - Eintrag wurde geändert
                            ds => 1001 1 - Eintrag wurde geändert

                            //Flasche Sortierung und keine werte aus $zeile[id]
                            0 - 1
                            1 - 2
                            2 - 3
                            3 - 5
                            4 - 8
                            5 - 9
                            6 - 10
                            7 - 13
                            8 - 51
                            9 - 58
                            10 - 69
                            11 - 74
                            12 - 74
                            13 - 89
                            14 - 125
                            15 - 236
                            16 - 258
                            17 - 365
                            18 - 500
                            19 - 1001
                            kann man das noch verbessern??

                            Zuletzt geändert von ; 16.04.2005, 19:10.

                            Kommentar


                            • #15
                              das kann nicht sein, wenn du die generierung von mir (siehe oben) dazu drin hattest ....
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X