Ik ben nog bezig om een edit script te maken. Kan ik in de dikgedrukte lijn de variable $test naar alles veranderen of is dat voor een rede daar?

<?php
error_reporting(E_ALL);
include("db_config.php");


$result=mysql_query("SELECT * FROM klanten");

while($test = mysql_fetch_array($result))
{
$Klantnummer = $test['Klantnummer'];
echo "<tr align='center'>";
echo"<td><font color='black'>" .$test['Klantnummer']."</font></td>";
echo"<td><font color='black'>" .$test['Bedrijf']."</font></td>";
echo"<td><font color='black'>" .$test['Contactpersoon']."</font></td>";
echo"<td> <a href ='edit.php?ID=$Klantnummer'>Edit</a>";
echo"<td> <a href ='del.php?ID=$Klantnummer'><center>Delete</center></a>";

echo "</tr>";
}

?>


<?
include"db_config.php"; //database connection
$order = "SELECT * FROM klanten";
$result = mysql_query($order);
while ($row=mysql_fetch_array($result)){
echo ("<tr><td>$row[Klantnummer]</td>");
echo ("<tr><td>$row[Bedrijf]</td>");
echo ("<td>$row[Contactpersoon]</td>");
echo ("<td><a href=\"edit_form.php?Klantnummer=$row[Klantnummer]\">Edit</a></td></tr>");
}
?>




<?
include "db_config.php"; //database connection
$order = "SELECT * FROM klanten where Klantnummer='$Klantnummer'";
$result = mysql_query($order);
$row = mysql_fetch_array($result);
?>

Test zou daar beter row of record kunnen heten, dat zou een stuk logischer zijn
$klantnummer wordt gevuld met de uit de database gehaalde waarde klantnummer

Je kunt dat veranderen in elk veld wat in de database staat bij tabel klanten. (tenminste, zolang je elk veld selecteerd (SELECT * FROM)...

Let wel op dat als je $klantnummer veranderd dat de links in de regels daaronder ook een andere waarde krijgen

del.php?ID=$Klantnummer (hierin roep je je klantnummer op dat je op regel 10 hebt opgeslagen

edit: heb slecht gelezen, zie nu dat de vraag is of $test veranderd kan worden, las het eerst anders
Nee, je kunt $test op regel 10 niet maar zo veranderen.
Tenminste niet als je output wilt blijven krijgen.
$test is namelijk gerelateerd aan $test op regel 8.

Ten aanzien van je code:
Geen * maar geef het veld/de velden op die je wilt selecteren.
Bouw foutafhandeling in bij je query's.
Waarom mysql_fetch_array als mysql_fetch_assoc ook prima voldoet?

Wees consequent in het scripten:
in de 1e code gebruik je geen ( ) om je echo's
de ene keer gebruik je ' en de andere keer " bij je echo's (waardoor je in je 2e script moet gaan escapen)
de ene keer heb je de variabelen buiten quotes de andere keer er binnen

Stap af van mysql -> This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used.
Bedoel je niet dit:

<?php

$voorbeeld = array('adres' => 'Straat 1', 'woonplaats' => 'Amsterdam');

foreach($voorbeeld AS $key => $value)
 {
 $$key = $value;
 }

echo $adres; // geeft dus Straat 1
echo $woonplaats; // geeft Amsterdam

?>


Let wel dat dit in de praktijk vaak juist NIET handig is.
Maar goed, dat sluit de mogelijkheden niet uit.
Obelix en Idefix op 21/09/2013 13:20:15


Stap af van mysql -> This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used.



Allen bedankt voor de reactie, ik ga er verder naar kijken. Je hebt wel gelijk dat ik beter MySQLi kan leren als ik toch wat ga leren. Heeft het dan totaal geen nut om naar SQL tutorials te kijken of zit daar veel verschil tussen. Weten jullie een goede MySQLi tutorial?



[size=xsmall]Toevoeging op 21/09/2013 21:00:12:[/size]

Eddy E op 21/09/2013 19:55:02

Bedoel je niet dit:

<?php

$voorbeeld = array('adres' => 'Straat 1', 'woonplaats' => 'Amsterdam');

foreach($voorbeeld AS $key => $value)
 {
 $$key = $value;
 }

echo $adres; // geeft dus Straat 1
echo $woonplaats; // geeft Amsterdam

?>


Let wel dat dit in de praktijk vaak juist NIET handig is.
Maar goed, dat sluit de mogelijkheden niet uit.


Volgens mij niet. Ik moet waarden uit een database halen om weer te geven en te veranderen.. Allen bij het veranderen zie ik nooit de oude waarden en dat is mijn grootste probleem.

<?php

include "db_config.php"; //database connection

// als het formulier verzonden is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	// we willen geen SQL injectie!
	$Klantnummer = mysql_real_escape_string($_POST['Klantnummer']);
	$Bedrijf = mysql_real_escape_string($_POST['Bedrijf']);
	$Contactpersoon = mysql_real_escape_string($_POST['Contactpersoon']);
	
	// gegevens wegschrijven in de database
	$query = "UPDATE klanten SET Bedrijf='" . $Bedrijf . "', Contactpersoon='" . $Contactpersoon . "' WHERE Klantnummer='" . $Klantnummer . "'";
	if(mysql_query($query))
		echo 'Gegevens opgeslagen.';
	
}

// haal de gegevens van $Klantnummer op uit de database
$query = "SELECT * FROM klanten where Klantnummer='" . $Klantnummer . "'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

//foutafhandeling
if(!$row)
{
	echo 'Geen klantgegevens met klantnummer ' . $Klantnummer . ' gevonden.';
	exit;
}

?>
<form action="" method="post">
	<input type="hidden" name="Klantnummer" value="<?php echo $row['Klantnummer']; ?>" />
	<label for="Bedrijf"><input type="text" id="Bedrijf" name="Bedrijf" value="<?php echo $row['Bedrijf']; ?>" /></label>
	<label for="Contactpersoon"><input type="text" id="Contactpersoon" name="Contactpersoon" value="<?php echo $row['Contactpersoon']; ?>" /></label>
    <input type="submit" value="Save" />
</form>

Reageren