Hallo, ik probeer een UPDATE uit te voeren maar dit lukt niet zo als het zou moeten....
Ik heb een formulier welke data uit de DB haalt, dit gaat goed... Als ik zeg Aanpassen dan moet hij een UPDATE script draaien, dit gaat gedeeltelijk goed...
Hij neemt de gegevens mee naar de pagina en dit krijg ik ook te zien... maar dan... dan doet hij niets....
Het zal ongetwijfeld heel eenvoudig zijn maar ik kom er niet uit...
Dit is het script wat het zou moeten uitvoeren...
Dus ik ga van " form1.php " naar " form2.php " waar hij dus wel de aanpassingen laat zien, ik wil deze tussen stap doen om de vraag te stellen weet je het zeker... dit hoeft opzicht niet maar vond ik wel handig....
Ik denk dat het dan wel moet lukken. Wel zou de code aanzienlijk op de schop kunnen gaan, met diverse punten die ik al eerder opgenoemd hebt. Het kan je in ieder geval mogelijk onduidelijkheden of zelfs frustraties schelen ;-)
Er mist een dubbele quote die de string van $sql afsluit. Zo moet hij werken:
<?php
$sql = "UPDATE pakket SET
[even ingekort]
WHERE
id='".mysql_real_escape_string($_GET['id'])."'";
?>
Nee, mysql_real_escape_string beschermt de querie tegen ongewenste tekens, door deze onveilig te maken.
Ik zie ook geen vorm van validatie in je script. Verder is deze functie verouderd, en dient dit mysqli_real_escape_string() te zijn, met aanpassing van de rest van de mysql-functies.
Een ingeving: Misschien is de spatie die je invoert net te veel voor de maximale waarde van het datababaseveld?
Kleurtjes tellen in lappen PHP-codes helpt ook vaak. Zo zag ik dat die quotes blauw waren in plaats van rood. ;-)
Verder nog een goede tip, om problemen met missende id's in de URL tegen te gaan: Gebruik isset() om te controleren of er een id in de URL voorkomt.
<?php
if(isset($_GET['id'])) {
// er is een ID bekend, voer het script uit!
} else {
echo "Er is geen ID in de URL bekend.";
}
?>
Ja goede.... eeuh.... kleurtjes ?? ik zit in mijn browser te klooien :) dus zie alleen kleurtjes zodra ik het hier neer zet eigenlijk...
Moet dreamweaver maar eens gaan activeren denk ik....
Toevoeging op 26/01/2016 16:10:10:
- Ariën - op 26/01/2016 16:07:32
Nee, mysql_real_escape_string beschermt de querie tegen ongewenste tekens, door deze onveilig te maken.
Ik zie ook geen vorm van validatie in je script. Verder is deze functie verouderd, en dient dit mysqli_real_escape_string() te zijn, met aanpassing van de rest van de mysql-functies.
Een ingeving: Misschien is de spatie die je invoert net te veel voor de maximale waarde van het datababaseveld?
Nee het gaat al met 2 tekens zodra er een spatie komt zet hij alles na de spatie niet door... dus mijn naam Roland Reijerse zet hij door als Roland.... terwijl het eerste formulier dit wel netjes mee neemt....