<?
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!
misschien een dom vraagje maar kun je zo

<?php
if(!mysql_query($sql))
?>

een query uitvoeren????
Ja
@ eris

weer wat geleerd :P
Er gebeurt dan gewoon dit:
als false mysql_query($sql)

Dus hij voert mysql_query uit, en kijkt dan of er true of false uit komt.
Het enige foute wat ik kan ontdekken is je UPDATE query, je doet zo:
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.

<?php
echo '<input type="text" name="naam['.$rij['id'].'][]" />';
?>


En nog wat typo's
Heeft het gewerkt?
Ik zou deze regel
$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.

Reageren