Hey allemaal!
Ik heb het volgende script:

<h3>Verwijder bericht</h3><br<br>

<?php

if(!isset($_GET['id']))
{
echo '<br>Dit kan niet, ga terug waar u vandaan kwam</a>';
}
else
{
include('verbinden.php');
$idtekst=$_GET['id'];
$sql1="SELECT * FROM content_bebouwing_straten WHERE id=" . mysql_real_escape_string($idtekst) . "";
$resultaat1=mysql_query($sql1) or die(mysql_error());
while($rij1=mysql_fetch_array($resultaat1))
{

$straatnaam=$rij1['straatnaam'];
$huisnummer=$rij1['huisnummer'];

}

$sql2 = "SELECT * FROM huisnummer_straten WHERE straatnaam='" . mysql_real_escape_string($straatnaam) . "' AND huisnummer='" . $huisnummer . "'";
$resultaat2 = mysql_query($sql2) or die(mysql_error());
while ($rij2=mysql_fetch_array($resultaat2))
{

$linknr=$rij2['id'];

}

$sql3 = "SELECT * FROM afbeeldingen_bebouwing_straten WHERE straatnaam='" . mysql_real_escape_string($straatnaam) . "' && huisnummer='" . $huisnummer . "' && berichtnr='" . $idtekst . "'";
$resultaat3 = mysql_query($sql3) or die(mysql_error());
while($rij3=mysql_fetch_array($resultaat3))
{

$afb=array(".");
$aantalafb=count($rij3['afbeelding']);
for($i=0;$i<=$aantalafb;$i++)
{
array_push($afb, $rij3['afbeelding'][$i]);
}

}

$sql4 = "DELETE FROM afbeeldingen_bebouwing_straten WHERE straatnaam='" . mysql_real_escape_string($straatnaam) . "' AND huisnummer='" . $huisnummer . "' AND berichtnr='" . mysql_real_escape_string($idtekst) . "'";
$sql5 = "DELETE FROM content_bebouwing_straten WHERE id='" . mysql_real_escape_string($idtekst) . "' LIMIT 1";
if(mysql_query($sql4) && mysql_query($sql5))
{

$aantalafb=count($afb);
for($i=1;$i<$aantalafb;$i++)
{

unlink($afb[$i]);

}
echo "<h2>Verwijderen gelukt!</h2><br>";
echo "<a href=\"straten.php?page=bebgs&id=" . $linknr . "\">Terug naar overzicht</a>";

}









}




?>

Nu zegt hij het volgende:
Unknown column 'Roggeweg' in 'where clause'

Hoe kan dit? Roggeweg staat nameljk wel gewoon in de database!
Owja.. Ik zie het al! Ik vergat het *!!!
Ik blijf bezig, ik weet het, maar hij verwijdert de afbeeldingen niet van de server! unlink werkt dus niet. Ik dacht dat deze manier een geldige was.. Is dat wel zo?
Nee, je wilt geen * gebruiken. Selecteer gewoon wat je wilt hebben.
En kan je eerst niet beter je sql op orde krijgen?
En je kunt ook echo'en welk bestand hij moet unlinken om te kijken of die path goed is.
of ik nu * of iets specifieks selecteer maakt niet uit, want er bestaat slechts één kolom naast de reeds genoemde.

Maar kan ik regel 39 ook anders schrijven? Op deze manier pakt hij hem namelijk niet!
Nee, selecteerd gewoon wat je wilt selecteren, want nu heb je de kans dat er niks wordt geselecteerd.
Wat is afb?
Dat is in ieder geval geen constante, dus zo kan het niet. Je kunt er quotes omheen zetten.
Ja, je hebt gelijk (met die afb)..
Ik heb hem opnieuw aangepast! nu pakt hij alles goed, behalve $afb[$i]!!! Wat doe ik daar fout?
Kijk nou eens een keer of je die query's niet in een kan krijgen. Volgens mij hoef je echt niet drie query's te hebben.
Ik weet niet wat je selecteerd, dus weet ik ook niet wat je probleem is.
Je kunt ook gebruik maken van [php]foreach[/php], zie ook wat er op [php]array_push[/php] staat:
php.net/array_push
Note: If you use array_push() to add one element to the array it's better to use $array[] = because in that way there is no overhead of calling a function.

Reageren