Mailinglisten-Archive |
Moin Moin, leider ein etwas verzwicktes Problem. das ganze da unten stellt eine kleine geräte verwaltung dar. "prefix" beudetet die erste zwei buchstaben vom hersteller und "geraet" ist dessen produkt.... das ganze script wird ganz unten aufgerufen beim letzten else (default steht darüber). dort wird angezeigt welche geräte in der db sind und es gibt für jedes gerät eine checkbox(=als array), die man auswählen kann und dann entweder sagt "gerät ändern" oder "gerät löschen" , dabei weiss ich nicht wieviele geräte zum löschen oder ändern aus gewählt werden. löschen funktioniert, ändern nicht. problem: wählt jemand alle oder nur die obersten(!!!) geräte aus, werden sie alle in einer input type ="text" (jeder für sich) zum editieren angezeigt ist man fertig und klickt auf "speichern" dann werden sie korrekt gespeichert !!!! ABER wählt jemand nur die letzten zwei aus !!! dann werden diese gerät zwar auch wieder zum editieren angezeigt, ABER sie werden nicht abgespeichert. es erscheint einfach ein leeres "xxx wurde gespeichert" folglich liegt das problem darin, das das gebildete geräte array nicht korrekt ausgelesen oder gezählt wird ... heute saß ich da ca 4 stunden dran und nichts ... es hat nicht funktioniert, dass man die untersten geräte auch wirklich ändern kann ... hier ein verkürzter auszug (wer die volle datei haben will, darf sich melden) von unten nach oben lesen ! <?php include("functions.inc.php3"); file:// nur mysql connect $tablebordercolor ="#8a8a8a"; $bgcolorpage = "#a9a954"; $font1 = "<FONT SIZE=\"-1\" FACE=\"Verdana,Tahoma,Arial,Helvetica\">"; $font1a = "<FONT FACE=\"Verdana,Tahoma,Arial,Helvetica\">"; $font2 = "</FONT>"; // array für das prefix $prearray = Array ("AV-"=>"Avision","MI-"=>"Microtek","OL-"=>"Olympus","LA-"=>"Lasersoft","FU-"=>" Fuji","AC-"=>"Acer","UM-"=>"Umax","MIN-"=>"Minolta","WA-"=>"Wacom","AG-"=>"Agfa" ,"CA-"=>"Caere","NIK-"=>"Nikkon","SH-"=>"Sharp"); ?> blablabla <!-- start body --> <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=630> <TR VALIGN=TOP ALIGN=LEFT><TD WIDTH=630 HEIGHT=32><IMG SRC="./clearpixel.gif" WIDTH=630 HEIGHT=1 BORDER=0></TD> </TR> <TR VALIGN=TOP ALIGN=LEFT><TD WIDTH=630><!--hier geht es los--> <?php /******************************************************************************* ******** hinzufügen ******************************************************************************** *******/ if(isset($add)) { nur hier kann komischer weise das prefix array laufen ... innerhalb einer while schleife wird es nur einmal ausgeführt, nicht aber mehrmals .... <? for (key($prearray);$kei=key($prearray);next($prearray)): $tmpv = $kei; $tmps = $prearray[$kei]; ?> <OPTION VALUE="<? echo $tmpv; ?>"><? echo $tmps; ?></OPTION>"; <? endfor; ?> </SELECT> text wird angezeigt, wo man eintragen kann -> daten werde in die mysql eingetragen } file://klammer isset (add) /******************************************************************************* ******** ändern ******************************************************************************** *******/ elseif(isset($change)) { if ($change != 2) { ?> <FORM ACTION="produkte.php3" METHOD=POST> <INPUT TYPE="hidden" NAME="change" VALUE="2"> <tabelle> Gerät - Datum der Änderung <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=621 BORDERCOLOR=<? echo $tablebordercolor; ?>> <COLGROUP><COL WIDTH=102><COL WIDTH=280><COL WIDTH=213></COLGROUP> <?php $x=0; while($x<count($usergeraet)): if($use[$x]==used) { ?> <TR> <TD WIDTH=102><P> <SELECT NAME="prefix[<? echo $x; ?>]"><OPTION VALUE="" SELECTED>Wähle!</OPTION><OPTION VALUE="AV-">Avision</OPTION> <OPTION VALUE="MI-">Microtek</OPTION><OPTION VALUE="OL-">Olympus</OPTION><OPTION VALUE="LA-">Lasersoft</OPTION> <OPTION VALUE="FU-">Fuji</OPTION><OPTION VALUE="AC-">Acer</OPTION><OPTION VALUE="UM-">Umax</OPTION> <OPTION VALUE="MIN-">Minolta</OPTION><OPTION VALUE="WA-">Wacom</OPTION><OPTION VALUE="AG-">Agfa</OPTION> <OPTION VALUE="CA-">Caere</OPTION><OPTION VALUE="NIK-">Nikkon</OPTION><OPTION VALUE="SH-">Sharp</OPTION> </SELECT>[<? echo $x; ?>] </TD><TD WIDTH=280> <P><INPUT TYPE=TEXT NAME="changegeraet[<? echo $x; ?>]" VALUE="<? echo $usergeraet[$x]; ?>" SIZE=38 MAXLENGTH=30> <INPUT TYPE="hidden" NAME="dbgeraet[<? echo $x; ?>]" VALUE="<? echo $usergeraet[$x]; ?>"> </TD><TD WIDTH=213><P><? echo "$font1 $datumchg[$x] $font2"; ?></TD></TR> <?php } file://if use=1 file://else { echo "<h2>$font1a Nichts ausgesucht !!!$font2</h2>"; break; } // warum das nicht geht .... ? $x++; endwhile; ?> <INPUT TYPE=SUBMIT NAME="prodchange" VALUE="Änderungen speichern"></FORM> <?php } file://change !=2 else mysqlcon(); $z=0; while($z < count($changegeraet)): // if($changegeraet[$z]=="" || $prefix[$z] =="") // echo "$font1a <h2>Sie müssen ein Gerät eintragen !!! $z</h2>$font2"; break; } // else { $indat3 = date("Y-m-d H:i:s"); file://$prod_up = "update produkt set geraet='$changegeraet[$z]',prefix='$prefix[$z]',datum='$indat3' where geraet like '$dbgeraet[$z]'"; file://mysql_query($prod_up); echo "<b>$font1 [$z] - $prefix[$z]$changegeraet[$z] wurde geändert um $indat3 $font2</b> von $dbgeraet[$z]<br>"; file://} $z++; endwhile; } file://else change !=2 } // klammer isset change /******************************************************************************* ******** löschen ******************************************************************************** *******/ elseif(isset($delete)) { ?> blablabla <?php } /******************************************************************************* ******** default ******************************************************************************** *******/ else { ?> <FORM ACTION="produkte.php3" METHOD=POST> <INPUT TYPE=SUBMIT NAME="add" VALUE="Gerät hinzufügen"></TD> Folgende Geräte befinden sich zur Auswahl in der Datenbank: Gerät - Datum Eintrag/Änderung <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=616 BORDERCOLOR=<? echo $tablebordercolor; ?>> <COLGROUP> <COL WIDTH=39> <COL WIDTH=348> <COL WIDTH=203> </COLGROUP> <? mysqlcon(); $prod_select = "select * from produkt order by prefix,geraet asc"; $result = mysql_query($prod_select); $j=0; // array wird gebildet mit der anzahl der zeilen $r = mysql_num_rows($result); while ($row = mysql_fetch_array($result) AND $j <= $r): $geraet = $row["geraet"]; $prefix = $row["prefix"]; $datum = $row["datum"]; ?> <TR> <TD WIDTH=39><P><DIV ALIGN="CENTER"><TABLE WIDTH=13 BORDER=0 CELLSPACING=0 CELLPADDING=0><TR><TD> <INPUT TYPE="checkbox" NAME="use[<? echo $j; ?>]" VALUE="used"> </TD></TR></TABLE></DIV></TD> <TD WIDTH=348><P> <? echo "$prefix$geraet"; ?><INPUT TYPE="hidden" NAME="usergeraet[<? echo $j; ?>]" VALUE="<? echo $geraet; ?>"> </TD><TD WIDTH=203><P><? echo $datum; ?><INPUT TYPE="hidden" NAME="datumchg[<? echo $j; ?>]" VALUE="<? echo $datum; ?>"></TD></TR> <?php $i++; $j++; endwhile; ?> </TABLE> <INPUT TYPE=SUBMIT NAME="change" VALUE="Gerät ändern"> <INPUT TYPE="Reset" VALUE="Reset Auswahl"> <INPUT TYPE=SUBMIT NAME="delete" VALUE="Gerät löschen"><FORM> <?php } file://else klammer ?> <!-- end body --> blablabla ===================== struktur mysqldb: create table produkt ( geraet varchar(30) DEFAULT '' NOT NULL, prefix varchar(10) DEFAULT '' NOT NULL, datum datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, PRIMARY KEY (geraet) ) _(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)__(at)_ Bin mal gespannt ob mir da einer helfen kann !!!!!!!!!!!!!!! Im vorraus ein dickes danke von: Fatal error: Call to unsupported or undefined function Gehirn() in C:\Webshare\Wwwroot/kiri.php3 on line 1
php::bar PHP Wiki - Listenarchive