Ik heb deze code:

<html>

<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ridder Hein</title>
</head>

<body bgcolor="#FEF8DF" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" link="#FEF8DF" vlink="#FEF8DF" alink="#FEF8DF">

<table border="0" width="800" id="table1" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td height="20" colspan="3">
<p align="center"><b><font face="Verdana" size="5">Ridder Hein</font></b></td>
</tr>
<tr>
<td width="200" align="left" valign="bottom" rowspan="2">
<img border="0" src="logo.gif" width="200" height="119"></td>
<td width="600" height="11" colspan="2" bgcolor="#000055">
<font face="Verdana" color="#FEF8DF" size="2"><a href="index.php">Home</a>&gt; <a href="medewerker.php">Medewerker</a>&gt;
<a href="#">Bewerken</a></font></td>
</tr>
<tr>
<td width="599" height="569" valign="top" bgcolor="#FFFFFF" style="border: 3px double #000055; " id="middenframe">
<?php

ini_set( 'display_errors' , 1 );
error_reporting( E_ALL );

include("config.php");
if(is_numeric($_GET['MEDNR'])){

if($_SERVER['REQUEST_METHOD'] == "POST") {
if($_POST['MEDNAAM'] != "" || $_POST['AFDNR'] !=""){

$query = "UPDATE MEDEWERKERS SET MEDNAAM='".addslashes($_POST['MEDNAAM'])."', AFDNR='".addslashes($_POST['AFDNR'])."' WHERE MEDNR='".$_GET['MEDNR']."'";
$result = mysql_query($query) or die( mysql_error());

if($result){
echo "Al u gegevens zijn met succes opgeslagen!";
}else{
echo "Er is iets foutgegaan...";
}

}else{
echo"Je hebt niet alle velden ingevuld, ga terug";
}

}else{




$sql = "SELECT * FROM MEDEWERKERS WHERE MEDNR='".$_GET['MEDNR']."'";
$res = mysql_query($sql) or die(mysql_error());
$rij = mysql_fetch_array($res);

$MEDNAAM = $rij['MEDNAAM'];
$AFDNR = $rij['AFDNR'];

$MEDNR=$_GET['MEDNR'];

echo "<form action='?MEDNR=$MEDNR' method=\"post\">";
echo "Bewerken medewerker:<br> ";
echo "MEDNAAM: <input name=\"MEDNAAM\" id=\"MEDNAAM\" type=\"text\" value=\"$MEDNAAM\"><br>";
echo "AFDELING:";
$Sql2 = "SELECT AFDNAAM, AFDNR FROM AFDELINGEN";
$Result = mysql_query($Sql2) or die(mysql_error());

echo '

<select name="AFDNR">';

while ($Row = mysql_fetch_assoc($Result))
{
echo "<option value='".$Row['AFDNR']."'>";

echo $Row['AFDNAAM'];

echo "</option>";
}
echo '
</select>
';

echo "<input type=\"submit\" value=\"save\" name=\"submit\">";
echo "</form>";

}}else{
echo "Het opgegeven id is geen cijfer...";
}
?>
</td>
</tr>
</table>

</body>

</html>

Maar op de 1 of andere manier haalt hij wél de mogelijke waarden voor de dropdown op maar selecteert hij niet de juiste waarde. WAt zit er fout?
"want dan krijg ik foutmeldingen"... En mijn glazen bol is beslagen!

Vraagje: Waarom heb je die query aangepast? Je beschikt al over $AFDNR = $rij['AFDNR']; , vervolgens haal je alle mogelijke afdelingnummers op (deed je al!), het enige wat je hoeft te doen is deze 2 gegevens met elkaar vergelijken. Meer is het niet.

Wanneer je moeite hebt met de logica van een systeem/script, schrijf het dan eerst eens op papier. En noteer dan ook waar de verschillende gegevens vandaan moeten komen. Dan krijg je vanzelf een mooi plaatje dat je zo in php-code kunt uitwerken.
Zoiets?
En dan de juiste $vars tussen de if() zetten.
<?php
echo '<select name="AFDNR">';
while ($Row = mysql_fetch_assoc($Result))
{
echo '<option value="' . $Row['AFDNR'] . '"';
if($ene_var == $andere_var)
{
echo ' selected';
}
echo '>' . $Row['AFDNAAM'] . '</option>';
}
echo '</select>';
?>
Ik heb nu dit:

$Sql2 = "SELECT A.AFDNAAM, A.AFDNR, M.MEDNR, M.AFDNR FROM AFDELINGEN A, MEDEWERKERS M WHERE M.AFDNR=A.AFDNR";
$Result = mysql_query($Sql2) or die(mysql_error());

echo '<select name="AFDNR">';
while ($Row = mysql_fetch_assoc($Result))
{
echo '<option value="' . $Row['AFDNR'] . '"';
if($AFDNR == $AFDNR)
{
echo ' selected';
}
echo '>' . $Row['AFDNAAM'] . '</option>';
}
echo '</select>';



Maar ik krijg dan dat hij constant de onderste kiest maar niet de goede :$
Tip !

Kijk eens in de html broncode van die [uitgevoerde] pagina !
Mischien valt je dan wat op, . . . . en grootte kans dat je het snapt en zelf kan oplossen !
Tsjah, daarin staat idd dat de onderste geselecteerd wordt jah maar dat wist ik al en het verklaart voor mij nogal weinig :$
Zoek de verschillen:
<?php if($ene_var == $andere_var) ?>
en dan jouw code:
<?php if($AFDNR == $AFDNR) ?>
Verder blijf ik me afvragen waarom je die query ($sql2) hebt aangepast. Daar mankeerde volgens mij niets aan. Heb het script overigens niet getest.

Ga eens gestructureerd debuggen. Kijk wat er her en der gebeurd.
Tsjah, ik weet ook wel dat dat anders is maar hij zegt dat ik 2 variabelen moet invullen dus ik vul die 2 in en volgens jou hoef ik allen deze op te halen:
AFDNAAM, AFDNR dus weinig keuze dan :$
Zoek de verschillen.... $ene_var en $andere_var. Wat gebruik jij: $ene_var en $ene_var. Oftewel $a == $a of $b == $b, en zo kun je er nog wel een paar bedenken. Er is niemand die beweert dat jij 2 DEZELFDE variabelen met elkaar moet vergelijken. Je kunt zelf toch ook wel bedenken dat dit geen succes wordt?

Ga nu even terug naar je oorspronkelijke code. Daar haalde je alle benodigde gegevens al op, je hoeft ALLEEN maar een vergelijking te maken. Dus niet ook nog met een andere query gaan lopen kloten!

Ga eens uitzoeken wat je nu waar ophaalt en wat de namen van de diverse variabelen zijn. Ik mag toch aannemen dat je wel enigszins doorhebt waar je mee bezig bent. Of niet?
Het is goed hoor, laat maar zitten....

Ik heb zo ongeveer elke variabele die ik kon bedenken al geprobeerd nadat de combinatie die voor mij t meest logisch leek (AFDNR uit MEDEWERKERS en AFDNR uit AFDELINGEN) niet goed bleek te zijn
Ik ben echt te goed voor deze wereld...

$rij['AFDNR'] uit de medewerkers en $Row['AFDNR'] uit de afdelingen...

Deze heb je aangemaakt nadat je de desbetreffende queries hebt gedraaid en de boel met mysql_fetch_assoc() hebt verwerkt. Dat moet je toch wel uit die 30 regels (relevante) code kunnen halen.

Reageren