mysqli_affected_rows() werkt niet?
ik heb een klein probleem, het beste om dit probleem uit te leggen is de code erbij te halen.
// query opstellen voor verwijderen
$query = "DELETE FROM photos WHERE id = '$photoid' AND uploader_id = '$_SESSION[uploader_id]'";
$result = veilig_query($db, $query);
$aantal_bewerkt = mysqli_affected_rows($result);
// als iets is verwijderd dan verwijder plaatje zoniet else
if ($aantal_bewerkt > 0 ) {
unlink($_POST['thumb1']);
unlink($_POST['thumb2']);
unlink($_POST['thumb3']);
echo $aantal_bewerkt;
echo "Foto <b>$photoid</b> is verwijderd!";
echo "<br/><br/>Terug naar de <a href=\"$deze_pagina?page=edit_delete\">admin-pagina</a>";
}
else {
echo $aantal_bewerkt;
echo "U heeft geen rechten om deze foto te verwijderen";
echo "<br/><br/>Terug naar de <a href=\"$deze_pagina?page=edit_delete\">admin-pagina</a>";
}
De code hierboven gaat als volgt als de query iets verwijderd heeft dan hoort
$aantal_bewerkt = 1 want hij heeft in totaal maar 1 rij verwijderd in de database als dat niet zo is dan moet hij dan de else blok uitvoeren.
ik krijg steeds een fout over:
Warning: mysqli_affected_rows() expects parameter 1 to be mysqli, boolean given in D:\WebServer\test\delete.php on line 29
ik hoop dat ik mij een beetje duidelijk heb gemaakt anders hoor ik het wel.
alvast bedankt :D
Gewijzigd op 01/01/1970 01:00:00 door Hakkatjai
info: http://nl3.php.net/manual/en/function.mysqli-affected-rows.php
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Opmerking: Er missen wat quotes in $_SESSION[uploader_id], tevens controleer je (hier) niet of deze sessie wel bestaat en een gewenste inhoud (integer?) heeft.
alleen ik heb het veranderd naar een affected row en daarmee doe ie het niet.....
en wat bedoel je met de mysql_connect waarde?
Ik zie het al, $aantal_bewerkt = mysqli_affected_rows($result); moet worden $aantal_bewerkt = mysqli_affected_rows(); Dus zonder $result. Hij pakt heel simpel de laatste actie.
Lees de documentatie van beide functies nog even goed door.
info: http://nl3.php.net/manual/nl/ref.mysqli.php
@Frank
Volgens mij zijn de parameters niet optioneel omdat er geen blokhaken in zitten. Maar ik gebruik nog geen PHP5, dus ik kan het niet testen.
ik ga hem gelijk proberen. als ik thuis ben
:D
Nee dat heeft helaas niet gewerkt:
mysqli_affected_rows($result)
mysqli_affected_rows()
deze foutmelding krijg ik nu als ik $result weglaat:
Warning: mysqli_affected_rows() expects exactly 1 parameter, 0 given in D:\WebServer\test\delete.php on line 29
Er is een tutorial hier op phphulp over affected_rows maar dat heeft voor mij niet echt geholpen
maar ik denk dat ik die uitleg ga lezen ik kom daarover nog terug
thnx in advance
Gewijzigd op 01/01/1970 01:00:00 door Hakkatjai
De gouden tip van deze topic was wel die van,
Martijn
Ik heb de uitleg even doorgenomen, voor de mensen die ook hetzelfde probleem hebben leg ik het wel uit:
Het moest niet zo zijn, je moest geen verwijzing geven naar je $result.
mysqli_affected_rows($result)
maar een verwijzing naar de database, hij checkt voor veranderingen in de database
mysqli_affected_rows($db)
, het klopte wel
mysqli werkt net andersom met connections en results dan mysql.
mysql_query($sql,$link)
en
mysqli_query($link,$sql)
zelfde met de andere functions :) enjoy!