meister-t Geschrieben 15. Februar 2005 Teilen Geschrieben 15. Februar 2005 Moin, hab ein kleines prob und zwar will ich daten die schon in einer db sind nchträglich veränder, eigentlich auch kein prob. Das prob is, dass wenn ich zu den daten noch ein bild hoch laden will schreibt der ums verecken nicht den dateinamen in die datenbank. beim anlegen macht der das edit2.php <?php session_start(); if ($_SESSION["log_in"] != 1) { $log_txt = 'Sie müssen sich einloggen!'; } else { ?> <? include ("config.php") ?> <?php $db = mysql_connect($dbhost,$dbuser,$dbpasswd); $res = mysql_db_query("$dbname","select * from filme Where Id = $titel"); $num = mysql_num_rows($res); for ($i=0; $i<$num; $i++) { $title = mysql_result($res, $i, "titel"); $a_cds = mysql_result($res, $i, "anzahl_cds"); $fo_id = mysql_result($res, $i, "format_ID"); $in = mysql_result($res, $i, "inhalt"); $img = mysql_result($res, $i, "bild"); } $res = mysql_db_query("$dbname","select format from format Where format_ID = ".$fo_id.""); $num = mysql_num_rows($res); for ($i=0; $i<$num; $i++) { $fo_id = mysql_result($res, $i, "format"); } mysql_close($db); ?> <html> <head> </head> <body> <p></p> Geben Sie einen vollständigen Datensatz ein und senden Sie das Formular ab: <form action = "edit3.php" enctype="multipart/form-data" method = "post"> <table> <tr> <td><input name="titel" type="hidden" value="<?php echo $titel; ?>"> <input name="vn" value="<?php echo $title; ?>"> Titel<p> <input name="pn" value="<?php echo $a_cds; ?>"> Anzahls der CDs<p> <input name="fo_id" value="<?php echo $fo_id ?>"> <p> <select name="ge"> <?php $db = mysql_connect($dbhost,$dbuser,$dbpasswd); $sqlab = "SELECT * FROM format"; $res = mysql_db_query("$dbname", $sqlab); $num = mysql_num_rows($res); for ($i=0; $i<$num; $i++) { $fo = mysql_result($res, $i, "format"); $foid = mysql_result($res, $i, "format_ID"); echo "<option value=$foid>$fo</option>"; } mysql_close($db); ?> </select> <select name="gen"> <?php $db = mysql_connect($dbhost,$dbuser,$dbpasswd); $sqlab = "SELECT * FROM genre"; $res = mysql_db_query("$dbname", $sqlab); $num = mysql_num_rows($res); for ($i=0; $i<$num; $i++) { $fo = mysql_result($res, $i, "genre"); $foid = mysql_result($res, $i, "Id"); echo "<option value=$foid>$fo</option>"; } mysql_close($db); ?> </td> <td><? if (!empty($img)){ echo "<img src=tmp/$img alt='$title' height='165' width='115'>";} else {echo "<img src=bilder/nopic.jpg alt='no pic' height='165' width='115'>";} ?></td> </tr> <tr> <td colspan="2"></select> <p> <textarea name="txt" cols="50" rows="10" id="txt"><?php echo $in ?></textarea> <p> <--hier wähle ich das bild aus, dass hochgeladenwerden soll --> <input type="file" name="file"> <input type="submit" name="gesendet" value=" Update DB "></td> </tr> </form> <p><?php echo $error; ?></p> <?php } ?> </body> </html> [/PHP] edit3.php [PHP]<?php session_start(); if ($_SESSION["log_in"] != 1) { $log_txt = 'Sie müssen sich einloggen!'; } else { ?> <? include ("config.php") ?> <? $db = mysql_connect($dbhost,$dbuser,$dbpasswd); if (!empty($gesendet)) { if ($vn == '' or $pn =='' or $ge == '') { $error = 'Fehler, bitte alle Felder Ausfüllen!!'; } else { if(!empty($file_name)) { if(@copy($file,"tmp/$file_name")) { echo "<b>Upload bendet!</b><br>"; echo "Dateiname: $file_name"; echo "<br>"; echo "Dateigröße: $file_size Byte"; } } //bis hier hin klappt alles das bild wird auch hochgeladen if(ctype_digit($pn)) { $sqlab = "update filme set titel ='".$vn."',anzahl_cds = '".$pn."', "; // hier soll er den file_namen in die spalte bild schreiben, dass macht er nicht if ($file_name != ""){$sqlab .="bild='".$file_name."'";} $sqlab .="inhalt = '".$txt."', format_ID = '".$ge."', genre_ID ='".$gen."' where Id = '$titel'"; mysql_db_query($dbname, $sqlab); $num = mysql_affected_rows(); if ($num>0) { $error = 'Der Datensatz wurde erfolgreich bearbeitet<p>'; } else { $error = 'Es ist ein Fehler aufgetreten, es wurde kein Datensatz bearbeitet<p>'; } } else { $error = 'Anzahls der CDs muss eine Zahl sein'; } } } mysql_close($db); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Unbenanntes Dokument</title> </head> <body> <p><? echo $error; ?></p> <p><a href="edit.php">Zurück</a></p> <?php } ?> </body> </html> Ich weiß das nicht das beste an prog kunst fang aber gerade an mir das bei zu bringen. thx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 15. Februar 2005 Teilen Geschrieben 15. Februar 2005 Hi, $sqlab .="inhalt = '".$txt."', format_ID = '".$ge."', genre_ID ='".$gen."' where Id = '$titel'"; echo $sqlab; // Hier ausgeben mysql_db_query($dbname, $sqlab); gib mal dazwischen $sqlab aus und poste den SQL Update. Das gewurschtel kann ja keiner lesen. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BayK Geschrieben 16. Februar 2005 Teilen Geschrieben 16. Februar 2005 versuch mal in deinem update die ints net als Strings zu deklarieren und die SQL-Keywords gross zu schreiben Das ändert zwar nichts an der funktionalität, aber an deinem Coderstil ^^ Könntest du mal die struktur von filme posten... dann kann dir vielleicht jemand helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 16. Februar 2005 Teilen Geschrieben 16. Februar 2005 Füge mal bitte folgendes ein: mysql_db_query($dbname, $sqlab) || print("Bei der Abfrage".htmlspecialchars($sqllab)." ist folgender Fehler aufgtreten: ".mysql_error()); [/PHP] Kommt die Fehlermeldung? Was sagt sie denn? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
meister-t Geschrieben 22. Februar 2005 Autor Teilen Geschrieben 22. Februar 2005 hab den fehler if ($file_name != ""){$sqlab .="bild='".$file_name."'";} da fehlt ein , also so gehts if ($file_name != ""){$sqlab .="bild='".$file_name."', ";} 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.