Einzelnen Beitrag anzeigen
  #13  
Alt 07.05.2009, 19:57:31
Mc Pole Mc Pole ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 38
Beiträge: 16
AW: Schulprojekt Wichtig!2d Array Problem

Ich habe den Rat befolgt und mir alles zu Arrays durchgelesen was es gibt =)

meine Lösung sieht so aus:

PHP-Code:
                 <!--
*****************************
Drop-down für Aufgabenauswahl
*****************************
-->
          <td bgcolor="#CCCCCC">
                   <select name="Task" class="Stil1" onchange="document.forms[2].submit();">
          <?


    // Hier wird in einer Schleife ermittelt, welche Länder aktiv sind und anschließend
    // diese in eine Auswahlliste geschrieben.


            $select_task="select aufgabe, lfd_af_nr from aufgaben where aktiv = 1";

            $liste = mysql_query($select_task, $db);

                if($liste)
                {
                $belegt= ($_POST['Task']);
                $ausg = "select aufgabe, lfd_af_nr from aufgaben where lfd_af_nr = $belegt and aktiv = 1";
                    $mi = mysql_query($ausg, $db);
                    $rau = mysql_fetch_row($mi);

                    $bez=$rau[0];
                    $num =$rau[1];
                    echo $bez;

                    ?>
              <option value="<? echo $num ;?>"><? echo $bez ;?></option>
              <?    $p=0;
                    while($row = mysql_fetch_row ($liste))
                    {
                        ?>
              <option<? if ($p==1){ ?> class="grau"<? }  ?>  class="normal" value="<? echo $row[1] ?>"><? echo $row[0] ?></option>
              <?
                          if ($p>1){$p=0;}
                        $p++;
                    }
                }
                else
                {
                    echo "no Data read ";
                }?>
            </select>
                         </td>
                         <!--
***********************************************************************
wenn die Aufgabe ausgewählt wurde folgt ein Autosubmit, anschließend
kann folgenden Drop-down der zuständige Mitarbeiter  ausgewählt werden
***********************************************************************
-->
          <td colspan="2" bgcolor="#CCCCCC">
                   <?
                   if (isset ($_POST['Task']) && isset($_POST['datum']))
                   {?>
            <select name="ma" class="Stil1">
           <?


    // Hier wird in einer Schleife ermittelt, welche Länder aktiv sind und anschließend
    // diese in eine Auswahlliste geschrieben.


            $belegt= ($_POST['Task']);
                         $datum= $_POST['datum'];

            $ausgabe = "select * from zustaendigkeiten where lfd_af_nr =$belegt";
                    $mi = mysql_query($ausgabe, $db);
                    $rau = mysql_fetch_row($mi);


                    $num =$rau[0];
/*
*********************************************
Nun wird der zuständige Mitabeiter selektiert
*********************************************
*/

            $select_task="select m.name, m.ma_nr, m.vorname,  m.land from mitarbeiter m join zustaendigkeiten z on (m.ma_nr = z.ma_nr) where z.lfd_af_nr = $belegt and m.aktiv =1 order by m.land ";

            $liste = mysql_query($select_task, $db);

                if($liste)
                {

                    ?>
              <option></option>
              <?    $p=0;
                    while($row = mysql_fetch_row ($liste))
                    {
                        $manr= $row[1];
                        $land2= $row[3];

/*
******************************************************************************
Wenn der Mitarbeiter zur geplanten Projektzeit abwesend sein wird, wird er im
in diesem Drop-down in rot angezeigt
*****************************************************************************
*/
                     $ausgabe = "select m.ma_nr, m.name, m.vorname, g.bezeichnung from mitarbeiter m
                             join abwesenheiten a on (m.ma_nr = a.ma_nr) join grund g on (g.lfd_gr_nr = a.lfd_gr_nr) where m.ma_nr = $manr  and a.datum <= '$datum'  and a.end_datum >= '$datum' ";

                        /*alter     $ausgabe = "select ma_nr, name, vorname, bezeichnung from mitarbeiter
                             natural join abwesenheiten natural join grund where ma_nr = $manr  and datum <= '$datum'  and end_datum >= '$datum' ";*/
                    $ab = mysql_query($ausgabe, $db);
                    if($ab){
                             $abw = mysql_fetch_row($ab);
                             $ab_ma_nr=$abw[0];
                             $abw_n=$abw[1];
                             $abw_vo=$abw[2];
                             $abw_gr=$abw[3];


                        }
                                                 else
                                                 {

                                                 }
                        ?>
              <option <? if ($manr==$ab_ma_nr){ ?> class="sun" title="<? echo $abw_gr ?>"<? }else{if ($p==1){ ?> class="grau"<? } else{?>  class="normal"<?} }?>  value="<? echo $manr ?>">
              <? echo $land2.", ".$row[0].", ".$row[2]; ?>
              </option>
              <?
              if ($p>1){$p=0;}
                        $p++;
                    }
                }
                else
                {
                    echo "no Data read ";
                }?>
            </select>
            <? }
            else{}
            ?></td>
        </tr>
        <tr>
          <td class="button46">Country :</td>
          <td colspan="3" bgcolor="#CCCCCC"><input type="text" class="normal" readonly="readonly" name="land"  value="<? echo $land; ?>" /></td>
        </tr>
        <tr>
          <td class="button46">Created at : </td>
          <td bgcolor="#CCCCCC"><input type="text" class="normal" readonly="readonly" name="angelegt"  value="<? echo $thisday ?>"  /></td>
          <td class="button46" width="50" align="right" bgcolor="#BDCBE6">by :</td>
          <td width="101" bgcolor="#CCCCCC"><input type="text"  readonly="readonly" style="width:100px;" name="von" value="<? echo $user ?>" /></td>
        </tr>
        <tr>
                   <td><input type="submit" class="normal" name="insert" value="OK" style="width:120px" />

                   <td><input type="button" class="normal" value="Step back" onclick="javascript:history.back()" style="width:120px"></td></td>
          <td colspan="2" class="Stil7">Memo:</td>

        </tr>
        <tr>
          <td colspan="4"><textarea name="memo" cols="85" rows="2" class="Stil1"><? echo $memo?> </textarea></td>
        </tr>
        <input name="pst" type="hidden" value="<? echo $pst ?>" />
</table>
<?
$lfd2=$_POST['lfd2'];
}
?>
<input name="lfd3" type="hidden" value="<? echo $lfd2; ?>" />
</td>
<tr>
<td class="leer" colspan="2">

<!--
*****************************
Hier fängt der 3Teil an Übersichtstabelle
*****************************
-->

<?

if (isset($_POST['ray']))
    {
         $array=unserialize($_POST['ray']);
         }

$insert=$_POST['insert'];

if($insert == "OK")
{

         $lfd3=$_POST['lfd3'];
         $land=$_POST['lan'];
         $day=$_POST['days'];
         $mem=$_POST['memo'];

         //Aufbereiten der notwendigen Daten per SQL-Anfragen

$array[]=array($_POST['nam'],$_POST['datum'],$name,$vorname,$t,$farbe,$ma_select,$land,$thisday,$user,$day,$mem,$task,$lfd3);
}
?>
<!--
*****************************
Hier wird die Überschrift der Steps erstellt
*****************************
-->

<p></p>
<center>
  <table width="420" border="0" align="left">
    <tr>
      <td width="414" background="/images/backgr6.png" bgcolor="#FFFFFF" scope="col"><div align="left" class="line2">Step 3:  Save the following Project</div></td>
      </tr>
  </table>
  <p>&nbsp;</p>
</center>

<table width="650px" border="1">
 <tr>
  <td class="button47" colspan="2" >Customer</td>
  <td class="button47" >Execution-Date</td>
  <td class="button47" >Responsibility</td>
  <td class="button47" >Task</td>
  <td class="button47" >Symbol</td>
 </tr>

<!--
*****************************
Hier werden die Einträge aus dem Array gelesen
*****************************
-->

<?
    if (isset($_POST['ray']))
    {
             $count=count($array);
             for ($j = 0; $j < $count; $j++)
             {
                         ?>
                            <tr>
                             <td class="button46" colspan="2"><? echo $array[$j][0] ?></td>
                        <td class="button46"><? echo $array[$j][1]?></td>
                             <td class="button46"><? echo $array[$j][2] .  " , " . $array[$j][3]  ?></td>
                             <td class="button46"><? echo $array[$j][4] ?></td>
                             <td class="<? echo button.$array[$j][5];?>"></td>
                        <!--<td class="button46"><? echo $ray[$j][6] ?></td>
                        <td class="button46"><? echo $array[$j][7] ?></td>
                        <td class="button46"><? echo $array[$j][8] ?></td>
                        <td class="button46"><? echo $array[$j][9] ?></td>
                        <td class="button46"><? echo $array[$j][10] ?></td>
                        <td class="button46"><? echo $array[$j][11] ?></td>
                        <td class="button46"><? echo $array[$j][12] ?></td>
                        <td class="button46"><? echo $array[$j][13] ?></td>

                       <input name="ma" type="hidden" value="<? echo $array[$j][6] ?>" />
                       <input name="t" type="hidden" value="<? echo $array[$j][12] ?>" />
                       <input name="k" type="hidden" value="<? echo $array[$j][13] ?>" />
                       <input name="d" type="hidden" value="<? echo $array[$j][1] ?>" />
                       <input name="l" type="hidden" value="<? echo $array[$j][7] ?>" />
                       <input name="m" type="hidden" value="<? echo $array[$j][11] ?>" />
                       <input name="a" type="hidden" value="<? echo $array[$j][8] ?>" />
                       <input name="v" type="hidden" value="<? echo $array[$j][9] ?>" />
                       <input name="da" type="hidden" value="<? echo $array[$j][10] ?>" />-->
                            </tr>
                       <?
             }
        }
$array_string = serialize($array);
?>

<input type="hidden" name="ray" value="<?php echo $array_string?>" />
<tr>
<td><input type="submit" class="normal" readonly="readonly" name="saveall" value="Save Steps" style="width:120px" /></td>
<td><button type="button" class="normal" style="width:120px"  onclick="change('new_project_change.php')" value="">Change</button></td>
<td class="button46" style="width:400px" colspan="4">&nbsp;</td>
</tr>
</table>
</form>

Ich bekomme damit einen Eintrag generiert, der auch in der Tabelle ausgegeben wird.
Sobald ich im Formular den select option zur Mitarbeiterauswahl wähle und er refresht ist das Array leer und er gibt nichts aus.

Was habe ich falsch gemacht? Warum wird kein zweiter Eintrag ans Array gehängt?

Es wird doch alles konform gemacht.
Serialize....hidden post....unserialize usw.

Bitte um Hilfe

Geändert von Mc Pole (07.05.2009 um 19:58:38 Uhr)
Mit Zitat antworten