Hallo zusammen
ich habe ein kleines Problem. Ich habe hier ein Formular, mit mehreren Zeilen. Das Formular wird auch richtig angezeigt. Der SQL-Befehl funktioniert, gut um es in der SQL-Tabelle zu speichern die Infos. Nur der Upload der Bilder nicht. Ist NUR 1Zeile im Formular forhanden gehts, sobald mehrere Zeilen sind nicht mehr. Zudem woll es so funktionieren, das angenommen Zeile1 kein neues Bild gewählt wird, das der Upload die Zeile vergisst und NUR die Zeilen verarbeitet, wo auch neue Bilder ausgewählt sind.
Das sind die Felder wo ich anspreche aus der tabelle.
Bild= bilda (altes Bild= bilda, neues Bild= bildn)
Refnr=id
Aktiv=bildaktiv
So sieht mein Code zurzeit aus, kann mir da vielleicht jemand weiter helfen. währe schön.
Formular (test.php)
<table border="1">
<form action="test_sql.php" method="post" enctype="multipart/form-data" >
<?php
include("../db.php");
$idu= $_GET['url'];
//3. SQL ABfrage zum Server senden und resultat in $abfrage speichern
$abfrage = mysql_query("SELECT * FROM test where( gruppe = '$idu')ORDER BY `ort`, 'id' ASC ");
//3. SQL ABfrage zum Server senden und resultat in $abfrage speichern
while ($result = mysql_fetch_array ($abfrage))
{
$id = $result ['id'];
$bild = $result ['bild'];
$bildaktiv = $result ['bildaktiv'];
?>
<tr>
<input name="id[]" type="hidden" value= "<?php echo $id; ?>" />
<td><img src="../bilder/<?php echo $bild ;?>" width="30"><input name="bildn[]" type="file" size="40" value="" />
<input name="bilda[]" type="text" size="25" value="<?php echo $bild;?>"/>
<select name="bildaktiv[]">
<option value="<?php echo $bildaktiv;?>" SELECTED><?php echo $bildaktiv;?></option>
<option value="sicht">Sichtbar</option>
<option value="verdeckt">Verdeckt</option>
</select> </td>
</tr>
<?php
}
?>
<td><input type="submit" value="speichern" /></td>
</form>
</table>
</body>
</html>
SQL-Befehl (test_sql.php)
<?php
include("../db.php");
// quelldatei pfad zieldatei
move_uploaded_file($_FILES['bildn']['tmp_name'] , '../eigenschaften/'.$_FILES['bildn']['name']);
if ($_POST['bildn'] !='')
{
$bildn=$_FILES['bildn']['name'];
}
else
{
$bildn = $_POST['bilda'];
}
$id = $_POST['id'];
$bildaktiv = $_POST['bildaktiv'];
for($vschleife = 0; $vschleife < count($_POST["id"]); $vschleife++) {
mysql_query ("update test
set
bild='$bildn[$vschleife]',
bildaktiv='$bildaktiv[$vschleife]'
where id = $id[$vschleife]
");
//ungleiche daten löschen
if ($_FILES['bilda']['name']!= $old && $_FILES['bilda']['tmp_name']!= '' && $old !='')
{
$suchabfrage = mysql_query ("select bild from bilder where bild = '$old'");
if (mysql_num_rows($suchabfrage) == 0)
{
unlink ("bilder/$bildn");
}
}
}
header("Location: test.php");
?>
ich habe ein kleines Problem. Ich habe hier ein Formular, mit mehreren Zeilen. Das Formular wird auch richtig angezeigt. Der SQL-Befehl funktioniert, gut um es in der SQL-Tabelle zu speichern die Infos. Nur der Upload der Bilder nicht. Ist NUR 1Zeile im Formular forhanden gehts, sobald mehrere Zeilen sind nicht mehr. Zudem woll es so funktionieren, das angenommen Zeile1 kein neues Bild gewählt wird, das der Upload die Zeile vergisst und NUR die Zeilen verarbeitet, wo auch neue Bilder ausgewählt sind.
Das sind die Felder wo ich anspreche aus der tabelle.
Bild= bilda (altes Bild= bilda, neues Bild= bildn)
Refnr=id
Aktiv=bildaktiv
So sieht mein Code zurzeit aus, kann mir da vielleicht jemand weiter helfen. währe schön.
Formular (test.php)
<table border="1">
<form action="test_sql.php" method="post" enctype="multipart/form-data" >
<?php
include("../db.php");
$idu= $_GET['url'];
//3. SQL ABfrage zum Server senden und resultat in $abfrage speichern
$abfrage = mysql_query("SELECT * FROM test where( gruppe = '$idu')ORDER BY `ort`, 'id' ASC ");
//3. SQL ABfrage zum Server senden und resultat in $abfrage speichern
while ($result = mysql_fetch_array ($abfrage))
{
$id = $result ['id'];
$bild = $result ['bild'];
$bildaktiv = $result ['bildaktiv'];
?>
<tr>
<input name="id[]" type="hidden" value= "<?php echo $id; ?>" />
<td><img src="../bilder/<?php echo $bild ;?>" width="30"><input name="bildn[]" type="file" size="40" value="" />
<input name="bilda[]" type="text" size="25" value="<?php echo $bild;?>"/>
<select name="bildaktiv[]">
<option value="<?php echo $bildaktiv;?>" SELECTED><?php echo $bildaktiv;?></option>
<option value="sicht">Sichtbar</option>
<option value="verdeckt">Verdeckt</option>
</select> </td>
</tr>
<?php
}
?>
<td><input type="submit" value="speichern" /></td>
</form>
</table>
</body>
</html>
SQL-Befehl (test_sql.php)
<?php
include("../db.php");
// quelldatei pfad zieldatei
move_uploaded_file($_FILES['bildn']['tmp_name'] , '../eigenschaften/'.$_FILES['bildn']['name']);
if ($_POST['bildn'] !='')
{
$bildn=$_FILES['bildn']['name'];
}
else
{
$bildn = $_POST['bilda'];
}
$id = $_POST['id'];
$bildaktiv = $_POST['bildaktiv'];
for($vschleife = 0; $vschleife < count($_POST["id"]); $vschleife++) {
mysql_query ("update test
set
bild='$bildn[$vschleife]',
bildaktiv='$bildaktiv[$vschleife]'
where id = $id[$vschleife]
");
//ungleiche daten löschen
if ($_FILES['bilda']['name']!= $old && $_FILES['bilda']['tmp_name']!= '' && $old !='')
{
$suchabfrage = mysql_query ("select bild from bilder where bild = '$old'");
if (mysql_num_rows($suchabfrage) == 0)
{
unlink ("bilder/$bildn");
}
}
}
header("Location: test.php");
?>
Kommentar