[PHP] Undefined index array

Dieses Thema im Forum "Webentwicklung" wurde erstellt von genXter, 13. Juni 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 13. Juni 2010
    Undefined index array

    Hallo,
    könnte mir jemand sagen wo hier der fehler liegt?

    PHP:
        $sql  "SELECT * FROM user_stats WHERE id=" . $_SESSION [ "user_id" ]. "" ;
        
    $result  mysql_query  ( $sql );
        
    $data  mysql_fetch_array  ( $result );
        if (
    $data [ " $_POST " ] <  10 )
            {    
            echo 
    "10" ;
            }
        elseif (
    $data [ " $_POST " ] <  20 )
            {
            echo 
    "20" ;
            }
        elseif (
    $data [ " $_POST " ] <  30 )
            {
            echo 
    "30" ;
            }
    Im Browser kommt die Nachricht Undefined index array.

    Danke
     
  2. 13. Juni 2010
    AW: Undefined index array

    was genau hattest du vor?

    $_POST macht keinen sinn... $_POST sind daten die über ein formular per method="post" geschickt wurden, was du brauchst ist
    PHP:
    $data [ 'TABELLEN_SPALTE' ]

    er meckert wegen deinem index weil dieser garnicht existiert

    Um dein array mal zu debuggen ist es immer mal gut
    PHP:
    print_r ( $data );
    zu machen

    damit bekommst du den kompletten array mit indizes ausgegeben
     
  3. 13. Juni 2010
    AW: Undefined index array

    Es wird von einer anderen Seite ein POST übertragen, dass script soll anhand des POST die genau Spalte abfagen und den Wert ausgeben.
     
  4. 13. Juni 2010
    AW: Undefined index array

    dann aber so

    PHP:
    $data [ $_POST [ 'DEIN_POST' ]]
     
  5. 14. Juni 2010
    AW: Undefined index array

    Aber den Post weiss ich doch net da er eine auswahl von vielen ist.
     
  6. 14. Juni 2010
    AW: Undefined index array

    Aber das Feld wird doch wohl einen Namen haben?

    select oder Checkboxen?
     
  7. 14. Juni 2010
    AW: Undefined index array

    PHP:
    $sql  "SELECT * FROM `user_stats` where id = '" . $_SESSION [ "user_id" ]. "'" ;
    $result  mysql_query  ( $sql );
    if (
    mysql_num_rows  ( $result ) >  0
        { 
        
    $data  mysql_fetch_array  ( $result );
        echo 
    "<FORM action=\"skiller.php\" method=\"post\">\n" ;
        echo 
    " $lg_userst1 " . $data [ "a" ]. "<br>" ;
        echo 
    " $lg_userst2 " . $data [ "b" ]. "<br>" ;
        echo 
    " $lg_userst3 " . $data [ "c" ]. "<br>" ;
        echo 
    "<input type=\"submit\" name=\"c\" value=\"Skill\"><br>" ;
        echo 
    " $lg_userst4 " . $data [ "d" ]. "<br>" ;
        echo 
    "<input type=\"submit\" name=\"d\" value=\"Skill\"><br>" ;
        echo 
    " $lg_userst5 " . $data [ "e" ]. "<br>" ;
        echo 
    "<input type=\"submit\" name=\"e\" value=\"Skill\"><br>" ;
        echo 
    " $lg_userst6 " . $data [ "f" ]. "<br>" ;
        echo 
    "<input type=\"submit\" name=\"f\" value=\"Skill\"><br>" ;
    Das ist nen kleiner Teil der Seite die den Post weitergibt.
     
  8. 14. Juni 2010
    AW: Undefined index array

    also ich glaub du gehst dein problem falsch an...

    ein $_POST muss in deinem fall einen eindeutigen absender haben...

    PHP:
    < input type = "hidden"  name = "MEIN_POST"  value = "foo_bar"  />
    z.b.

    dann kannst du machen

    PHP:
    $data [ $_POST [ 'MEIN_POST' ]]
    du musst nicht den inhalt deines arrays kennen aber voraussetzung ist das du den indize kennst.. also $_POST['mein_post'] = 50; z.b.

    du hast irgendetwas in deiner programmierlogik falsch oder du vermittelst es falsch

    edit:



    das würde bedeuten, das deine tabellenspalten in der db: a,b,c,d,e,f heißen?
     
  9. 14. Juni 2010
    AW: Undefined index array

    Es soll so aussehen.
    Die erste Seite soll den Inhalt ausgeben und net button daneben.Jetzt hat wer den Wert 15.Er klickt danben auf steigern.Die Tabelle für den Wert soll weiter geben werden auf die nächste Seite.Die nächste Seite lädt nun den Wert der ausgewählten Tabelle ein und erfasst welche Wert diesen Hand und ordnet ihn zu.
     
  10. 14. Juni 2010
    AW: Undefined index array

    dein weg klappt so nicht...

    1. $_POST[] brauch einen indize
    2. sobald du auf einen button klickst, schickt er alle anderen mit, da alle in einem formular sind
    3. Du hast in deinem Formular z.B. name="a" name="b" name="c" und value ist immer value="Skill"... d.h. du hast die tags vertauscht, skill müsste deine ID oder dein Name sein, damit man es eindeutig zuordnen kann, z.b. $_POST['Skill']
    4. Jetzt hast du das Problem, das du 2. und 3. zusammen schwierig beheben kannst

    an deiner stelle würde ich entweder type="button" anstatt type="submit" verwenden und per javascript ein
    HTML:
    <input type="hidden" name="skill" value="DEIN_SKILL_WERT" />
    nutzen und dann bei deinem button ein onClick mit
    HTML:
    <input type="button" name="Skill A" onClick="document.getElementById('skill').value = 'a'; document.getElementById('FORMULAR_ID').submit();" />
    
    <input type="button" name="Skill B" onClick="document.getElementById('skill').value = 'b'; document.getElementById('FORMULAR_ID').submit();" /> etc...
    DANN wiederum kannst du das hier machen
    PHP:
        $sql  "SELECT * FROM user_stats WHERE id=" . $_SESSION [ "user_id" ]. "" ;
        
    $result  mysql_query  ( $sql );
        
    $data  mysql_fetch_array  ( $result );
        if (
    $data [ $_POST [ 'skill' ]] <  10 )
            {    
            echo 
    "10" ;
            }
        elseif (
    $data [ $_POST [ 'skill' ]] <  20 )
            {
            echo 
    "20" ;
            }
        elseif (
    $data [ $_POST [ 'skill' ]] <  30 )
            {
            echo 
    "30" ;
            }  
    ungetestet.. hoffe du verstehst worauf ich hinaus will

    wie gesagt.. ist aber alles nicht so wirklich eine elegante lösung.. allgemein solltest du evtl noch mal über deinen code nachdenken
     
  11. 14. Juni 2010
    AW: Undefined index array

    @flyde:

    immer der sumit-button der geklickt wurde wird an den server übertragen.
    d.h.: man könnte das auch so lösen:

    HTML:
    <input type="submit" name="skill" value="20" /> 
    <input type="submit" name="skill" value="30" />
    die beschriftung müsste dann mit einem label erledigt werden, was aber kein großes problem sein sollte.
     
  12. 14. Juni 2010
    AW: Undefined index array

    tatsache? hätte ich ja ohne dich fast schon falschwissen verbreitet :O dachte z.b. wenn man isset($_POST['submit1']) und isset($_POST['submit2']) macht, dass dann trozdem beide true sind da sie im gleichen formular stecken das übertragen wurde...

    Dennoch hatte ich noch nie eine situation wo ich 2 brauchte.. nja // off topic ende
     
  13. 14. Juni 2010
    AW: Undefined index array

    Vielen Dank erstmal, werd mir das ganze nochmal überlegen und dann mit eurer Hilfe überarbeiten.
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.