Problem mit Arrays nach update

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

  • Problem mit Arrays nach update

    Hallo,

    habe ein Problem mit meinen Array's.
    (Datenbank Oracle9i)


    Zu Begin meines Programms kommt eine Übersichtsmaske mit mehrerern Buttons, die alle auf verschiedene "Seiten" verweisen. Nur beim ersten Auf ruf dieser Seite werden aus der Datenbank die Check-Constraints ausgelesen und die erlaubten Eingaben dieser Constraints in Arrays gespeichert.

    Folgende Funktion tut dies:

    PHP-Code:
    function create_constraint_array($sql_statement,$array_name)
    {
     
    ociexecute($sql_statement);
     
    ocifetchinto($sql_statement,$result);
     
    $condition $result[0];
     
    $kurz =  strstr($condition'('); 
     
    $result[] = $kurz;          
     
    $weg str_replace("'"""$result[1]); 
     
    $weg2 str_replace("("""$weg);
     
    $weg3 str_replace(")"""$weg2);         
        
    $vkurz ltrim($weg3);                              
        
    $vhkurz rtrim($vkurz);                             
        
    $pieces explode(","$vhkurz);                        
        
    $_SESSION["$array_name"] = $pieces;


    Sie funktioniert ohne Probleme.

    Diesee Funktion ist nun zum erzeugen der Selectfelder des Html Formulares gedacht: Sie wird erst auf der nächsten Maske aufgerufen.
    Also nicht im dem gleichen php.Script. Deshalb speichere ich die Arrays in $SESSION-Vars.


    PHP-Code:
    function select_aus_constraint2($s_name,$s_laenge,$s_size,$vergleichsstatement,$spaltenname,$null)
    {
        echo 
    "<select name=\"$s_name\" size=\"$s_size\" style=\"width:$s_laenge\">";  // Ab hier üblicher Aufbau
        
    $wert_aus_vergleich=vergleich($vergleichsstatement$spaltenname);            // des selects
        
    if($null==nullable)
        {
        if (
    $wert_aus_vergleich=="")
        
    $selected="selected";
        else 
    $selected="";
        echo 
    "<option value='' $selected></option>";
        }

        
    $pieces $_SESSION["$s_name"];
        
    $anzahl count($pieces);

        for (
    $i 0$i $anzahl$i++)
         {
         
    $wert $pieces[$i];
         if (
    $wert_aus_vergleich==$wert)
            
    $selected="selected";
         else 
    $selected="";
         echo 
    "<option value='$wert$selected>$wert</option>";
         }
        echo 
    "</select>"
    Sie funzt auch.

    Ich kann nun per Record durch die einzelnen Sätze "blättern"

    Nun zu meinem Problem.
    Wenn jemand den "SaveButton" betätigt werden alle änderungen an den verschiedenen Feldern , welche von dem Benutzer getätigt wurden, in der DB gespeichert.(per Update).

    Jedoch sind nach dem betätigen dieses Buttons, und nur dann, meine Session-Arrays scheinbar leer. Denn in den Selectfeldern, welche mit den aus oben den beiden Funktionen gebildeten $SESSION-ARRAYS erstellt werden, stehen dann nur noch 1 Buchstabe und eine Zeile.


    Woran könnte das liegen?
    Zuletzt geändert von galaxy2; 13.06.2005, 09:51.

  • #2
    nach dem, was hier zu sehen ist, überschreibst du nur in create_constraint_array()
    deine SESSION-Var ... von daher würd ich vorschlagen, du prüfst mal, was in $pieces drin steht. Respektive, was in den Weiteren Variablen der o.g. Funktion steht / stehen sollte.

    Kommentar


    • #3
      Die Funktion create_constraint_array() wird nur ein einziges mal aufgerufen. Die $_SESSION-ARRAYS stimmen.

      Also überschrieben etc wird da soweit ich weis nichts.
      Hab ich schon geprüft

      Kommentar


      • #4
        dann ist aus den code-abschnitten nicht zu ersehen, wo die SESSION-Var noch überschrieben werden würde.

        darüber hinaus, wenn es nur nach einem Update knallt, dann wird der Fehler wohl auch dort zu suchen sein.
        (würde Sherlock Holmes jetzt sagen)

        Kommentar


        • #5
          Oh. Problem hat sich erledigt. hab einfach die ganzen Var die ich für dn update benötige umbenannt von:

          PHP-Code:
          $clientcode $_POST["clientcode"]; 
          nach
          PHP-Code:
          $u_clientcode $_POST["clientcode"]; 

          und schon klappts.

          Hatte wahrscheinlich eine Variable von dort eine andere überschrieben.
          Kann mir das zwar nicht wirklich erklären, aber nun funktioniert es einfach.

          Kommentar


          • #6
            Gut Kombiniert, Watson!

            Kommentar

            Lädt...
            X