SQL Update Array
Hallo iedereen,
Na het uploaden van foto's moet men een scherm voor zich krijgen met de geuploade foto's. Het foto systeem werkt alleen het updaten van bijvoorbeeld de titel en de beschrijving werkt nog niet. Ik laat de foto's tevoorschijn komen door een fetch array. Hoe kan ik al deze foto's d.m.v. de knop 'Save' updaten in de database?
Ik hoop dat iemand mij kan helpen! Alvast bedankt!
Na het uploaden van foto's moet men een scherm voor zich krijgen met de geuploade foto's. Het foto systeem werkt alleen het updaten van bijvoorbeeld de titel en de beschrijving werkt nog niet. Ik laat de foto's tevoorschijn komen door een fetch array. Hoe kan ik al deze foto's d.m.v. de knop 'Save' updaten in de database?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$query = "SELECT * FROM photos WHERE `album` = '{$_GET['album']}' order by id ASC";
$result = mysql_query($query);
if ($result && mysql_num_rows($result) >= 1) {
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo'<div style="float:left; width: 595px; border:1px solid grey; margin-top: 20px;">';
echo'<div style="float:left; width:589px; height:20px;background:#CFCFCF; padding:3px;border-bottom:1px solid grey;">Title <input type="text" name="title" value="'.$row['title'].'" /></div>';
echo'<div style="width:300px; float:left; margin-top:3px;"><img src="http://globalzapper.com/login/userpictures/'.$row['album'].'/'.$row['name'].'.jpg" width="290" style="margin-left:3px;"/></div>';
echo'<div style="width:140px; float:left; margin-top:3px;"><textarea name="description" cols="34" rows="12">'.$row['description'].'</textarea></div>';
echo'<div style="width:583px; float:left; margin-top:3px; padding:3px;"><i>Update later the location and coardinates of this picture</i></div>';
echo'<input type="hidden" value="'.$row['id'].'" name="id" /></div>';
}
} else {
echo '<i>There are no trips yet.</i>';
}
?>
$query = "SELECT * FROM photos WHERE `album` = '{$_GET['album']}' order by id ASC";
$result = mysql_query($query);
if ($result && mysql_num_rows($result) >= 1) {
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo'<div style="float:left; width: 595px; border:1px solid grey; margin-top: 20px;">';
echo'<div style="float:left; width:589px; height:20px;background:#CFCFCF; padding:3px;border-bottom:1px solid grey;">Title <input type="text" name="title" value="'.$row['title'].'" /></div>';
echo'<div style="width:300px; float:left; margin-top:3px;"><img src="http://globalzapper.com/login/userpictures/'.$row['album'].'/'.$row['name'].'.jpg" width="290" style="margin-left:3px;"/></div>';
echo'<div style="width:140px; float:left; margin-top:3px;"><textarea name="description" cols="34" rows="12">'.$row['description'].'</textarea></div>';
echo'<div style="width:583px; float:left; margin-top:3px; padding:3px;"><i>Update later the location and coardinates of this picture</i></div>';
echo'<input type="hidden" value="'.$row['id'].'" name="id" /></div>';
}
} else {
echo '<i>There are no trips yet.</i>';
}
?>
Ik hoop dat iemand mij kan helpen! Alvast bedankt!
Allereerst zul je de gegevens in een formulier moeten gieten zodat je de (veranderde) data weer kunt verzenden. Omdat je met meerdere foto's, en dus met meerdere sets gegevens, te maken hebt, is het handig om arrays te gebruiken voor de veldnamen van je formulier. In het geval van de titel ziet dat er dan zo uit:
Dit doe je vervolgens voor alle velden. Als je het formulier dan verzonden hebt, kun je heel eenvoudig in de array $_POST['title'] alle titels terugvinden gekoppeld aan de betreffende id's van de foto's.
Bij het verwerken van het formulier gebruik je dan simpelweg een foreach loop om de betreffende $_POST arrays uit te lezen en de data naar de database te schrijven.
Code (php)
1
2
3
2
3
<?php
echo 'Title <input type="text" name="title['.$row['id'].']" value="'.$row['title'].'" />';
?>
echo 'Title <input type="text" name="title['.$row['id'].']" value="'.$row['title'].'" />';
?>
Dit doe je vervolgens voor alle velden. Als je het formulier dan verzonden hebt, kun je heel eenvoudig in de array $_POST['title'] alle titels terugvinden gekoppeld aan de betreffende id's van de foto's.
Bij het verwerken van het formulier gebruik je dan simpelweg een foreach loop om de betreffende $_POST arrays uit te lezen en de data naar de database te schrijven.
Hartstikke bedankt voor de reactie! Ik ga direct aan de slag!




