PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DBzelle auslesen in Verbindung mit Variable


jojomo
16.03.2004, 22:43:38
Hallo zusammen.

Ich schreibe gerade ein Bilduploadscript, bei dem man zu Beginn eingibt, wieviel Bilder man hochladen will und dann wird einem die Anzahl an Upload-Formularen angezeigt (max. Anzahl 10)

Dies geschieht über die Variable $i.
Ich habe jetzt 10 Felder in meiner Datenbank bild1 bis bild10.

Das ganze soll dann über $bild.$i abgerufen werden. bzw. aus der DB ausgelesen werden, fall vorhanden.

Ich komm da aber nicht vorran...


$db_bildzahl = $line['bild".$i."'];

if($db_bildzahl == " ");


oder wie kann ich das am besten lösen.. so gehts jedenfalls nicht.

Tausend Dank für Tipps

Jojomo

P.S.: Ich poste hiermal den ganzen Code


<html>
<head>
<title>Bilderanzahl festlegen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#CCCCCC">
<?PHP
include ("db.php");
$query = "SELECT * FROM artikel where id='$id'";
$result = mysql_query($query);
while ($line = mysql_fetch_array($result)) ## Datenbank öffnen
{
$i = "1";
while($i<$Zahl+1) ## Zahl übergeben
{
echo "<table width="700" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF" class="dotted">";
echo"<tr>";
echo"<td>";
echo"<table width="100" border="0" cellspacing="0" cellpadding="5">";
echo"<tr align="center">";
echo"<td colspan="4"><b>Bilderposition</b></td>";
echo"</tr>";
echo"<tr align="center" valign="middle">";
print("<td><a href="javascript:emoticon('[bild-".$i."_links]')">bild-".$i."_links</a></td>");
print("<td><a href="javascript:emoticon('[bild-".$i."_rechts]')">bild-".$i."_rechts</a></td>");
echo"<td></td>";
echo"<td></td>";
echo"</tr>";
echo"</table>";

$bildzahl = $bild.$i;
$postzahl = $post.$i;
$db_bildzahl = $line['bild".$i."'];
if($Lösche_Bild.$i == "Lösche_Bild.$i.") ## Lösche Bild aus Datenbank
{
unset ($bildzahl);
mysql_query("UPDATE artikel SET bild".$i."='$bildzahl' WHERE titel='$titel'");
} ## ... Ende!

if($db_bildzahl == " "); ## Wenn Datenbank-Zelle leer,
{
if($postzahl == "") ### .. wenn noch nicht abgesendet, Formular
{
echo "<table width="700" border="0" align="center" cellpadding="3" cellspacing="1" class="dotted">";
echo "<form action="Bilderanzahl1.php" enctype="multipart/form-data" method="post">";
echo "<tr>";
print("<td valign="middle"> <strong> Bild-".$i." </strong> </td>");
print("<td width="49%" valign="top"> <input name="bild".$i."" type="file" size="30" maxlength="100000">");
echo "</td>";
print("<td width="29%" valign="top"> <input type="submit" name="post".$i."" value="absenden"/>");
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</td>";
echo "</tr>";
echo "</table>"; ### ... absenden! - Ende!
}
if($postzahl == "absenden") ### Wenn abgesendet, dann Hochladen, in DB eintragen und Bild ausgeben
{
move_uploaded_file($_FILES['bild".$i."']['tmp_name'], "bilder/" . $_FILES['bild".$i."']['name']);
mysql_query("UPDATE artikel SET bild".$i."='$bild".$i."_name' WHERE id='$id'");
echo ("<table width="400" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF" class="dotted">");
echo ("<form action="Bilderanzahl1.php" enctype="multipart/form-data" method="post">");
echo ("<tr>");
echo ("<td valign="middle"> <strong> Bild-$Bilderanzahl </strong> </td>");
echo ("<td width="49%" valign="top"> <img src="bilder/$bild".$i."_name">");
echo ("</td>");
echo ("<td width="29%" valign="top"> <input type="submit" name="Lösche_Bild".$i."" value="Lösche_Bild".$i.""/>");
echo ("</td>");
echo ("</tr>");
echo ("</table>");
echo "</td>";
echo "</tr>";
echo "</table>";
} ### ...Ende!
} ### Ende!
if(!$db_bildzahl == " "); ## Wenn Bild in Datenbank, dann zeige es an ...
{ echo ("<table width="400" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF" class="dotted">");
echo ("<form action="$PHP_SELF" enctype="multipart/form-data" method="post">");
echo ("<tr>");
echo ("<td valign="middle"> <strong> Bild-".$i." </strong> </td>");
echo ("<td width="49%" valign="top"> <img src="bilder/$db_bildzahl">");
echo ("</td>");
echo ("<td width="29%" valign="top"> <input type="submit" name="Lösche_Bild".$i."" value="Lösche_Bild".$i.""/>");
echo ("</td>");
echo ("</tr>");
echo ("</table>");
echo "</td>";
echo "</tr>";
echo "</table>";
} ### .. Ende!

$i++; ### für $i Ende!
}

} ## Datenbank schliessen ! ! !
?>
</body>
</html>

meikel (†)
17.03.2004, 06:53:29
Original geschrieben von jojomo
... bei dem man zu Beginn eingibt, wieviel Bilder man hochladen will und dann wird einem die Anzahl an Upload-Formularen angezeigt (max. Anzahl 10)

Dies geschieht über die Variable $i.
Ich habe jetzt 10 Felder in meiner Datenbank bild1 bis bild10.

Das ganze soll dann über $bild.$i abgerufen werden. bzw. aus der DB ausgelesen werden, fall vorhanden.

Ich komm da aber nicht vorran...
$db_bildzahl = $line['bild".$i."'];
if($db_bildzahl == " ");
oder wie kann ich das am besten lösen.. so gehts jedenfalls nicht.
So eine eigenartige Konstruktion habe ich noch nie gesehen. Du weißt doch hoffentlich schon, daß innerhalb von 'string' keine Variablen ersetzt werden?

Weiterhin zeigen die durchnummerierten Spalten von einem schlechten DB-Konzept, daß Du überarbeiten solltest.

Dein restliches Script habe ich mir nicht angeguckt, da es nicht zur Frage paßt und überdies zu 80% aus echo 'HTML' besteht.

feuervogel
17.03.2004, 10:16:12
if($db_bildzahl == " ");


und du willst wirklich überprüfen ob das ein leerzeichen ist?

zweitens:


$db_bildzahl = $line['bild".$i."'];

aus welchem php-buch hast du das abgeschrieben? oder ist das deine erfindung?

jojomo
17.03.2004, 13:53:52
Danke für die Kommentare...

mein Problem ist halt, dass ich nicht weiss wie ich mein Problem lösen kann bzw. wie ich meine DB anders aufbauen könnte.

Ich will, dass das Script soviele Felder kontrolliert, wie hochgeladen werden sollen.
Nehmen wir an ich übergebe die Zahl "4", d.h. er soll schauen, ob im Feld Bild"Variable für die Zahl" (das wäre dann von Bild1 bis Bild4) etwas vorhanden ist, wenn nicht, dann solle er das Formular zum Bildupload anzeigen.. usw.

Wie kann ich denn die Bild-Felder in der DB mit der durchlaufenden Variable abfragen.
Hänge seit 2 Tagen da dran und kann keine HIlfe finden.

Für einen Gedankenanstoss wäre ich nochmal dankbar...