Bildupload (SORRY) in Verbindung mit MySQL
Christian Naggert
- php
Hallo,
ich weiss, es wurde schon viel zu dem Thema Upload einer Datei mit PHP geschrieben wurde; ich habe auch schon bei SelfHTML und bei www.php.net und bei www.koehntopp.de nachgesehen, aber es hilft mit bei meinem Problem leider nicht richtig weiter, sorry. (Obwohl ich nicht ausschliessen möchte, dass ich mich zu dämlich anstelle ;-)
Ich habe eine Admin-Seite mit deren Hilfe man einen neuen Datensatz in einer MySQL-DBanlegen kann. Ich möchte jetzt gleichzeitig ein dazugehöriges Bild uploaden und den entsprechenden Pfad in der DB abspeichern, so dass man später die Daten und das Bild zusammen erscheinen lassen kann.
Die Admin-Seite sieht folgendermassen aus:
<html>
<head>
<title>Neuen Datensatz eingeben...</title>
</head>
<?
include("class.mysql.inc");
$bericht=new mySQLDB;
$bericht->connect();
if (isset($submit))
{
$query="INSERT INTO angebote (objektnr,zeile_eins,)
VALUES ('$objektnr','$zeile1') ";
$bericht->do_query($query);
}
?>
<body bgcolor="#3A6EA5">
<form action="new_angebot.php" method="POST">
<table border="0" cellpadding="0" cellspacing="5">
<tr>
<td>Objektnr.</td>
<td><input type="text" name="objektnr" size="30"></td>
</tr>
<tr>
<td>Zeile 1</td>
<td><input type="text" name="zeile1" size="30" ></td>
</tr>
<tr>
<td align="right"></td>
<td>
<p align="right"><input type=submit value=Send name=submit></p>
</td>
</tr>
</table>
</form>
</body>
</html>
Ich habe ja durch den Abspeichern-Button schon eine isset-Abfrage drin, kann ich jetzt eine zweite - wie in der Lösung von www.koehntop.de dargestellt - einfügen, um den Upload-Button abzufragen?
Wie kann ich das jetzt so einbauen, dass der Name des Bildes eine Kombination aus dem Wort 'Bild' uznd der ID ist, bspw. Bild_1.jpg?
Wie kann ich den Pfad des Bildes abspeichern, bspw. http://www.domain.de/graphics/Bild_1.jpg?
Ich möchte später auch vielleicht das Bild eines Datensatzes ändern, kann man das auch irgednwie hinbekommen?
Fragen über Fragen! Tut mir leid, ich bin noch totaler Anfänger und kurz vorm resignieren!
Hat vielleicht jemand eine Lösung oder eine bereits existierende Seite, die so etwas kann?
Vielen, vielen Dank für die Hilfe!
Gruß,
Christian
Hallo,
Ich habe ja durch den Abspeichern-Button schon eine isset-Abfrage drin, kann ich jetzt eine zweite - wie in der Lösung von www.koehntop.de dargestellt - einfügen, um den Upload-Button abzufragen?
Die Übung ist eigentlich, unabhängig von der serverseitigen Sprache, recht einfach. Du erstellst _ein_ HTML-Formular, in welchem Du die Daten inklusive Fileupload-Feld eingeben läßt.
Somit werden neben dem Bild auch alle übrigen Daten an den server gesendet.
Die Daten speicherst Du in die Datenbank und das Bild nach Belieben auf ins Dateisystem. Für den Dateinamen kannst Du Dir dann irgendeinen Namen einfallen lassen. Dazu kannst Du auch die ID des erzeugten Datensatzes nehmen. Eventuell mußt Du, wenn Du mit einer Autoincrement-ID arbeitest, den Bildnamen durhc ein SQL-Update nachträglich einfügen. Oder Du generierst jedesmal on-the-fly mittels Datensatz-ID den Bildnamen, wenn er benötigt wird.
Ich möchte später auch vielleicht das Bild eines Datensatzes ändern, kann man das auch irgednwie hinbekommen?
Indem Du wieder ein Formular, diesmal allerdings mit den Informationen des Datensatzes (zumindest der ID, wegen der Zuordnung) darstellst, über das ein Bild wieder zum Server gesandt werden kann. Mit der (mitgesendeten) ID kannst Du den Bildnamen wieder eindeutig festlegen, wodurch Du das Bild wieder richtig ersetzen kannst.
Fragen über Fragen! Tut mir leid, ich bin noch totaler Anfänger und kurz vorm resignieren!
Da hilft nur eins, aufstehen, ein paar Kreise in der Wohnung (oder Zimmer) drehen, versuchen, von den scheinbar überwältigenden Problemen Abstand zu gewinnen, und dann siehst Du plötzlich den Lösungsweg klar vor Deinen Augen. Eventuell auch eine Nacht darüber schlafen.
Der Rest ist dann ganz leicht.
Grüße
Klaus
PS: aus aktuellem Anlaß: 'Möge die Macht mit Dir sein';-)
Hallo Klaus,
dann will ich mal der Macht vertrauen und loslegen!
Vielen Dank und bis denn,
Christian