Foreach -> update + delete query
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
if(isset($_POST['submitedit'])) {
foreach($_POST['naam'] as $key => $naam) {
$key2 = $key + 1;
if($naam == '' || $_POST['link'][$key] == '' ) {
$sql = "DELETE linkpartner WHERE id=".$key2." LIMIT 1";
if(!mysql_query($sql)) {
trigger_error(mysql_error());
echo 'Couldn\'t delete '.$naam.' ('.$_POST['link'][$key].')';
exit();
}
}
else{
$sql = "UPDATE linkpartner SET naam='".$naam."' AND link='".$_POST['link'][$key]."' WHERE id=".$key2." LIMIT 1";
if(!mysql_query($sql)) {
trigger_error(mysql_error());
echo 'Could\'t edit '.$naam.' ('.$link[$key].').';
exit();
}
}
}
echo 'Linkpartners are modified/deleted with succes!';
}
else {
$sql="SELECT * FROM linkpartner";
if(!$result = mysql_query($sql)) {
echo 'Could\'t not load linkpartners!';
exit();
}
echo '<form action="admin.php?page=linkpart&tag=edit" method="post"><table>';
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td><input type="text" name="naam[]" value="'.$row['naam'].'"></td><td><input type="text" name="link[]" value="'.$row['link'].'"></td></tr>';
}
echo '<tr><td><input type="submit" name="submitedit" value="edit"></td></tr></table></form>';
}
?>
if(isset($_POST['submitedit'])) {
foreach($_POST['naam'] as $key => $naam) {
$key2 = $key + 1;
if($naam == '' || $_POST['link'][$key] == '' ) {
$sql = "DELETE linkpartner WHERE id=".$key2." LIMIT 1";
if(!mysql_query($sql)) {
trigger_error(mysql_error());
echo 'Couldn\'t delete '.$naam.' ('.$_POST['link'][$key].')';
exit();
}
}
else{
$sql = "UPDATE linkpartner SET naam='".$naam."' AND link='".$_POST['link'][$key]."' WHERE id=".$key2." LIMIT 1";
if(!mysql_query($sql)) {
trigger_error(mysql_error());
echo 'Could\'t edit '.$naam.' ('.$link[$key].').';
exit();
}
}
}
echo 'Linkpartners are modified/deleted with succes!';
}
else {
$sql="SELECT * FROM linkpartner";
if(!$result = mysql_query($sql)) {
echo 'Could\'t not load linkpartners!';
exit();
}
echo '<form action="admin.php?page=linkpart&tag=edit" method="post"><table>';
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td><input type="text" name="naam[]" value="'.$row['naam'].'"></td><td><input type="text" name="link[]" value="'.$row['link'].'"></td></tr>';
}
echo '<tr><td><input type="submit" name="submitedit" value="edit"></td></tr></table></form>';
}
?>
Dit is dus mijn code, wat doe ik fout?
Nee grapje,
Ik laat dus met een foreach-lus updaten en/of deleten. Maar als ik update krijg veranderd $_POST['link'][$key] niet en $naam wordt standaard 0 of 1.
Deleten gebeurt ook niet, de query wordt wel uitgevoerd, en er wordt gezegd dat er succesvol is gedelete/update. Maar er gebeurt dus niks...
Iemand een idee??
Alvast weer hartelijk bedankt!
Ja
weer wat geleerd :P
als false mysql_query($sql)
Dus hij voert mysql_query uit, en kijkt dan of er true of false uit komt.
en wat moet ik dan veranderen?
* bump * (A)
UPDATE tabel SET kolom = AND kolom =
Maar moet zo:
UPDATE tabel SET kolom = , kolom =
Ik ga nog even verder proberen met de resultaten uit het formulier. Of er wel uit komt wat we denken dat er uit komt.
Edit
Nee, dat klopt wel, het enige wat volgens mij dan nog fout kan gaan is het handmatig id toewijzen ($key2), ik geef meestal in mijn formulier de id ook al mee.
En nog wat typo's
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
ok ga ik morgen even proberen, tnx!
Heeft het gewerkt?
$sql="SELECT * FROM linkpartner";
op id sorteren want nu staan ze willekeurig en je behandelt ze na submit alsof ze op id gesorteerd zijn.
Dus
$sql="SELECT * FROM linkpartner ORDER BY id";
En wat als er id 's tussenuit zijn? Dan gaat het volgens mij ook niet goed.
Bijvoorbeeld als je in je form als vierde de data van link met id 7 heb staan omdat er al een paar zijn verwijderd, dan is naam[] in je form naam[4] en jij telt daar 1 bij op en dan update je id 5.
nieuwe code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?
elseif($_GET['tag'] == 'edit') {
if(isset($_POST['submitedit'])) {
foreach($_POST['naam'] as $key => $naam) {
$key2 = $key + 1;
if($naam == '' || $_POST['link'][$key] == '' ) {
$sql = "DELETE FROM linkpartner WHERE id=".$_POST['id'][$key];
if(!mysql_query($sql)) {
trigger_error(mysql_error());
echo 'Couldn\'t delete '.$naam.' ('.$_POST['link'][$key].')';
exit();
}
}
else{
$sql = "UPDATE linkpartner SET naam='".$naam."', link='".$_POST['link'][$key]."' WHERE id=".$_POST['id'][$key];
if(!mysql_query($sql)) {
trigger_error(mysql_error());
echo 'Couldn\'t edit '.$naam.' ('.$_POST['link'][$key].').' . $_POST['id'][$key];
exit();
}
}
}
echo 'Linkpartners are modified/deleted with succes!';
}
else {
$sql="SELECT * FROM linkpartner";
if(!$result = mysql_query($sql)) {
echo 'Could\'t not load linkpartners!';
exit();
}
echo '<form action="admin.php?page=linkpart&tag=edit" method="post"><table>';
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td><input type="text" name="naam[]" value="'.$row['naam'].'"></td><td><input type="text" name="link[]" value="'.$row['link'].'"></td><td><input type="hidden" name="id[]" value="'.$row['id'].'"></td></tr>';
}
echo '<tr><td><input type="submit" name="submitedit" value="edit"></td></tr></table></form>';
}
}
?>
elseif($_GET['tag'] == 'edit') {
if(isset($_POST['submitedit'])) {
foreach($_POST['naam'] as $key => $naam) {
$key2 = $key + 1;
if($naam == '' || $_POST['link'][$key] == '' ) {
$sql = "DELETE FROM linkpartner WHERE id=".$_POST['id'][$key];
if(!mysql_query($sql)) {
trigger_error(mysql_error());
echo 'Couldn\'t delete '.$naam.' ('.$_POST['link'][$key].')';
exit();
}
}
else{
$sql = "UPDATE linkpartner SET naam='".$naam."', link='".$_POST['link'][$key]."' WHERE id=".$_POST['id'][$key];
if(!mysql_query($sql)) {
trigger_error(mysql_error());
echo 'Couldn\'t edit '.$naam.' ('.$_POST['link'][$key].').' . $_POST['id'][$key];
exit();
}
}
}
echo 'Linkpartners are modified/deleted with succes!';
}
else {
$sql="SELECT * FROM linkpartner";
if(!$result = mysql_query($sql)) {
echo 'Could\'t not load linkpartners!';
exit();
}
echo '<form action="admin.php?page=linkpart&tag=edit" method="post"><table>';
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td><input type="text" name="naam[]" value="'.$row['naam'].'"></td><td><input type="text" name="link[]" value="'.$row['link'].'"></td><td><input type="hidden" name="id[]" value="'.$row['id'].'"></td></tr>';
}
echo '<tr><td><input type="submit" name="submitedit" value="edit"></td></tr></table></form>';
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jason de Ridder
Die nieuwe code is inderdaad een stuk beter.