Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[php] Problem mit nachträglichem Bild in DB schreiben

Empfohlene Antworten

Veröffentlicht

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

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

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 :)

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?

hab den fehler

if ($file_name != ""){$sqlab .="bild='".$file_name."'";}

da fehlt ein ,

also so gehts

if ($file_name != ""){$sqlab .="bild='".$file_name."', ";}

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.