Het bijwerken van gegevens kan vrij eenvoudig zijn. Laten we beginnen met een formulier, om te beginnen:
<form method="post" action="submit.php">
<input type="text" name="id" value="12" />
<input type="text" name="value" value="Jonathan" />
<input type="submit" />
</form>
Dit formulier stuurt de gegevens naar onze submit.php
script waar we het kunnen verwerken, en geef het door aan onze database. Aangezien onze formuliermethode "post" is, worden al onze waarden verzonden via de POST
super array in PHP (dit is niet het geval als je bestandsuploaders gebruikt). Dus binnen onze submit.php
pagina, kunnen we de ID- en waardewaarden als volgt afdrukken:
print $_POST["id"]; // the name of the HTML element is the key
print $_POST["value"]; // again, note that we use the name as the key
U moet voorzichtig zijn met het rechtstreeks doorgeven van door gebruikers ingediende waarden in uw zoekopdrachten, dus het is prettig om de gegevens op te schonen met een functie zoals mysql_real_escape_string()
:
$id = mysql_real_escape_string( $_POST["id"] );
$value = mysql_real_escape_string( $_POST["value"] );
Het volgende dat we willen doen, is deze in een query plaatsen:
$sql = "UPDATE mytable SET value = '{$value}' WHERE id = {$id}";
Dit is een goed moment om niet te zeggen dat ik je niet aanmoedig om deze voorbeeldcode in een live-omgeving te gebruiken. U zult sql-injecties willen opzoeken en hoe u ze kunt vermijden. De code die ik hier geef is slechts een voorbeeld. Nadat onze waarden zijn ingevoerd, ziet de query die wordt uitgevoerd er als volgt uit:
UPDATE mytable SET value = 'Jonathan' WHERE id = 12
Om dit uit te voeren, moeten we verbonden zijn met een database.
$host = "localhost";
$user = "root";
$pass = "";
$database = "myDatabase";
$conn = mysql_connect($host, $user, $pass) or die( mysql_error() );
mysql_select_db($database) or die( mysql_error() );
Het enige dat we hier doen, is onze mysql-gebruikersaccountreferenties opslaan in arrays en deze doorgeven aan een verbindingsfunctie. Deze code zou vrij duidelijk moeten zijn, maar laat het me weten als het onduidelijk is.
Als je dat eenmaal hebt, ben je klaar om je query uit te voeren. Onthoud dat we het hebben opgeslagen in een array met de naam $sql
:
$result = mysql_query( $sql ) or die( mysql_error() );
Dat is het. Je hebt het gedaan! De gegevens, ervan uitgaande dat er niets mis is gegaan, worden nu bijgewerkt in uw database. Er zijn talloze manieren waarop u de informatie die via dit script aan de gebruiker wordt verstrekt, kunt vergroten. Het is ook vermeldenswaard dat u uw gegevens wilt opschonen voordat u het script zelfs maar laat uitvoeren - als het geen acceptabele gegevens zijn (iemand die zijn eigen zoekopdrachten probeert te injecteren), wilt u het terugspugen.
Bekijk de MySQL-functies in de PHP-documentatie voor meer goodies, en kom hier zeker terug als je meer specifieke vragen hebt!