TripleD Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 Hallo zusammen, ich hab ein riesen Problen. Hoffe mir kann mal wieder jemand helfen. Problem: Auf Seite 1 erstelle ich acht gleiche Eingabefelder über eine WHILE-Schleife. Jetzt möchte ich mit klick auf den Submit-Button "Update" die Daten an Seite 2 übergeben. Das funktioniert auch so weit, bis auf die zwei Textfelder. Hab bei Googel schon zu lange gesucht und keine Lösung gefunden. Ist wirklich dringen. Hoffe mir kann hier jemand helfen. Gruß TripleD -------------------------------------------------------------------------- CODE Ich habe zwei Seiten: Seite 1 <form action="<? echo 'index.php?site=scripts/s_artikel&grpid='.$grpid; ?>" method="post" enctype="multipart/form-data"> <table border="0"> <? $i = "0"; while($i < "8") { ?> <tr> <!-- LINKE SPALTE --> <td> <table border="0" class="tab"> <tr> <td valign="top"> Artikel: <? echo $i; ?> <br> <br> <div align="center"> <? echo '<input type="submit" name="update" value="Update">'; ?> </div> </td> <td valign="top" align="left"> <? $art = mysql_query("SELECT * FROM ".$T_ART." WHERE artid = ".$i." AND grpid = ".$_GET['grpid']); $artdat = mysql_fetch_assoc($art); if($artdat['artid'] != $i) { /* Gruppen- und Artikel-ID einfügen */ mysql_query("INSERT INTO ".$T_ART." (grpid, artid) VALUES ('$grpid', '$i')"); /* Artikel Kurzbeschreibung */ echo '<input type="text" name="akb" value="'.$artdat['kurz'].'" size="43"><br>'; /* Artikel Langebeschreibung */ echo '<textarea cols="32" rows="5" name="alb">'.$artdat['lang'].'</textarea><br>'; /* Auswahl neues Bild */ echo '<input type="file" name="bild[]" size="25"><br>'; /* Auswahl bestehendes Bild */ echo '<select name="bild_exist[]">'; $dir = "./images/pics/"; $handle = opendir($dir); echo '<option value="">-- Bilderauswahl --</option>\n'; while($file = readdir ($handle)) { if($file != "." && $file != "..") { echo '<option value="'.$file.'">'.$file.'</option>\n'; } } closedir($handle); echo '</select>'; } else { /* Artikel Kurzbeschreibung */ echo '<input type="text" name="akb" value="'.$artdat['kurz'].'" size="43"><br>'; /* Artikel Langebeschreibung */ echo '<textarea cols="32" rows="5" name="alb">'.$artdat['lang'].'</textarea><br>'; /* Auswahl neues Bild */ echo '<input type="file" name="bild[]" size="25"><br>'; /* Auswahl bestehendes Bild */ if($artdat['bild'] != "") { echo '<select name="bild_exist[]">'; $dir = "./images/pics/"; $handle = opendir($dir); echo '<option value="'.$artdat['bild'].'">'.$artdat['bild'].'</option>\n'; echo '<option value="">-- Bilderauswahl --</option>\n'; echo '<option value="">Kein Bild</option>\n'; while($file = readdir ($handle)) { if($file != "." && $file != ".." && $file != $artdat['bild']) { echo '<option value="'.$file.'">'.$file.'</option>\n'; } } closedir($handle); echo '</select>'; } else { echo '<select name="bild_exist[]">'; $dir = "./images/pics/"; $handle = opendir($dir); echo '<option value="">-- Bilderauswahl --</option>\n'; echo '<option value="">Kein Bild</option>\n'; while($file = readdir ($handle)) { if($file != "." && $file != "..") { echo '<option value="'.$file.'">'.$file.'</option>\n'; } } closedir($handle); echo '</select>'; } } ?> </td> <td width="180" align="center" valign="middle"> <? /* Bild */ if($artdat['bild'] != "") { echo '<img src="images/pics/'.$artdat['bild'].'" alt="Bild" >'; } else { echo 'Kein Bild vorhanden'; } ?> </td> </tr> </table> </td> </tr> </table> </form> [/PHP] [b]Seite 2[/b] [PHP] $dstPath = "./images/pics/"; /* Neue Bilder */ if (is_array($_FILES['bild']['tmp_name'])) { foreach ($_FILES['bild']['tmp_name'] as $fkey=>$fval) { if (is_File($fval)) { $dstFName = $_FILES['bild']['name'][$fkey]; $dstFPath = realpath($dstPath)."/".$dstFName; if (move_uploaded_file($fval,$dstFPath)) { mysql_query("UPDATE ".$T_ART." SET kurz='$akb', lang='$alb', bild='$dstFName' WHERE grpid = ".$grpid." AND artid=".$fkey); header('Location: index.php?site=artikel&grpid='.$grpid); } } } } /* Existierende Bilder */ if (is_array($_POST['bild_exist'])) { foreach ($_POST['bild_exist'] as $fkey=>$fval) { foreach($_GET['akb'] as $akbk=>$akbv) { foreach($_POST['alb'] as $albk=>$albv) { echo "Exestierendes Bild<br>"; echo "==================<br>"; echo 'Kurzbeschreibung-ID: '.$akbk.'<br>'; //header('Location: index.php?site=artikel&grpid='.$grpid); } echo 'Kurzbeschreibung - Request: '.$_REQUEST['akb'].'<br>'; echo 'Kurzbeschreibung - Post: '.$_POST['akb'].'<br>'; echo 'Kurzbeschreibung - Get: '.$_GET['akb'].'<br>'; echo "---------------------------<br>"; echo 'Langbeschreibung-ID: '.$albk.'<br>'; echo 'Kurzbeschreibung - Request: '.$_REQUEST['alb'].'<br>'; echo 'Kurzbeschreibung - Post: '.$_POST['alb'].'<br>'; echo 'Kurzbeschreibung - Get: '.$_GET['alb'].'<br><br>'; //mysql_query("UPDATE ".$T_ART." SET kurz='$akb', lang='$alb', bild='$fval' WHERE grpid = ".$grpid." AND artid=".$fkey); } } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 wenn ich das richtig sehe....dein Code ist etwas unübersichtlich, hast du eine Nameskollision. ... name="alb" ..., wenn du davon mehrere hast, solltest es name="alb[]" heißen. mittels print_r($_POST); print_r($_GET); unsw. kannst du dir auch anzeigen lassen, was alles/wie kommt.. ein paar Kritiken / Tips ^^: - du verwendest teilweise <? .. ?> und teilweise echo ... ""; ich würde empfehlen nur echo zu benutzen...schon aus gewohnheit später könnte es Probleme mit solcheN Konstellationen geben. - mal benutzt du für String ' ... ', mal "...". Ich bin nicht ganz sicher, aber soweit ich weis sollte "..." verwendet werden. Wenn du innerhalb eines Strings ein " zeichnen willst, geht das mit \" aber dazu können die anderen hier ja noch was sagen - mal überlegt das eine oder andere in Funktionen zu kapseln ? würde es übersichtlicher machen, denke ich ich hoffe ich konnte helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bmg4ever Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 - mal benutzt du für String ' ... ', mal "...". Ich bin nicht ganz sicher, aber soweit ich weis sollte "..." verwendet werden. Wenn du innerhalb eines Strings ein " zeichnen willst, geht das mit \" aber dazu können die anderen hier ja noch was sagen jo dazu will ich auch was sagen. ob du nun "..." oder '...' nimmst, hängt davon ab, was du willst. Strings in Anführungszeichen werden nämlich geparsed, so dass dort auch Variablen eingefügt werden können. Bei Hochkommas ist das nicht der Fall. Am besten zeigt das ein Beispiel: <? $var = 20; echo 'Ich bin $var Jahre alt'; echo "Ich bin $var Jahre alt"; ?> [/PHP] Die ausgabe sieht dann so aus: [code] Ich bin $var Jahre alt Ich bin 20 Jahre alt [/code] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 ist zwar etwas fern des Hauptthemas...aber ich habe gerade keine gelegenheit groß zu googlen. Heist das mit ' währe ein Script bzgl. Performance besser ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 ist zwar etwas fern des Hauptthemas...aber ich habe gerade keine gelegenheit groß zu googlen. Heist das mit ' währe ein Script bzgl. Performance besser ? jacke wie hose nur dass du in ' keine variablen ausgeben kannst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 zum Thema : du hast 2 mal einen Namen wie bild_exist[] und bild[] ohne $ gemacht ausserdem verwendest du den submit namen auf sich wiederholende namen, das geht so nicht. du mußt den $i Zaehler in den namen einbauen, dmait er weiss was du absendest. daher würde ich auch das Form mit in die while schleife packen. mysql_query("UPDATE ".$T_ART." SET kurz='$akb', lang='$alb', bild='$dstFName' WHERE grpid = ".$grpid." AND artid=".$fkey); und die darfst du keine variablen in single quotes packen ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TripleD Geschrieben 18. August 2005 Autor Teilen Geschrieben 18. August 2005 Danke für eure schnellen Antworten. @baba007 Wenn ich die ' bei meinem UPDATE-Befehl weglasse, dann wird nichts mehr in die Datenbank eingetragen. Und wo soll ich bei bild_exist[] und bild[] das $-Zeichen einfügen? Gruß TripleD Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 ich baue mir zuerst den query zusammen wie z.b. hier : $update_query = "UPDATE comunio_dfb set spieler1_pkt="; $update_query .=$_POST["spieler1_pkt_$hochzaehler"]; $update_query .=", spieler2_pkt="; $update_query .=$_POST["spieler2_pkt_$hochzaehler"]; $update_query .=", spiel_gespielt=1"; $update_query .=" where spieler1_name='"; $update_query .=$_POST["spieler1_name_$hochzaehler"]; $update_query .="' AND spieler2_name='"; $update_query .=$_POST["spieler2_name_$hochzaehler"]; $update_query .="'"; dann mysql_query($update_query) ; in einfachen quotes gibt es keine variable ! das $ zeichen kommt natürlich vor den namen der variable, woden sonst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TripleD Geschrieben 18. August 2005 Autor Teilen Geschrieben 18. August 2005 Das ist mir schon klar, das das $-Zeichen vor die Variable kommt. Ich meinte, ob auf meiner 1. oder 2. Seite. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 18. August 2005 Teilen Geschrieben 18. August 2005 auf der ersten Seite, aber du hast noch überblick wo du was geschrieben hast, oder war dies ein copy+paste-extremeprogging ? auf der zweiten seite hast du ja $_POST["bild_exist"] wobei ich mir denke, dass man den falschen wert nimmt, wenn man eine varaible als array() deklariert $variable[] und dann $variable ins update packt. du mußt scho angeben, welches element im array er den nehmen soll Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TripleD Geschrieben 18. August 2005 Autor Teilen Geschrieben 18. August 2005 Nochmal danke an alle für eure Hilfe. Ich das Problem gefunden, und jetzt klapp alles. Lag daran, das ich auf Seite 2 vergessen hab, die ID mit anzugeben bei den Eingabefeldern. TripleD Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.