Hallo allemaal,

Ik ben bezig met een stuk code waarin je een gebruiker kan selecteren en waarin je vervolgens zijn gegeven kan aanpassen.
Hiervoor heb ik een <select>, waarin je de gebruiker kan selecteren.
In deze <select> heb ik meerdere kolommen van mijn tabel staan, waaronder id, gebruikersnaam, achternaam etc.

Nu wil ik dat als de gebruiker iemand selecteert, het ID van de geselecteerde persoon wordt opgeslagen in een PHP variable.
Hieronder staat mijn <select>:

 <form method="post">
    Gebruiker:<select name="gebruiker">
    <?php
    $resultaat = mysqli_query($mysql,"SELECT * FROM gebruikers ORDER BY gebruikersnaam") or die("De query op de database is mislukt!");
    while ($rij = mysqli_fetch_assoc($resultaat)){
        echo "<option value=\"{$rij['id']}\">{$rij['id']} {$rij['gebruikersnaam']} {$rij['voorletters']} {$rij['achternaam']} {$rij['rol']} {$rij['actief']} {$rij['vak']}</option>";
    }
    ?>
    </select><br>
<input type="submit" value="Aanpassen" name="verzend" />
<?php
}
?>


In de tabel 'gebruikers' heb ik de kolommen id, gebruikersnaam, wachtwoord, voorletters, achternaam, rol, actief en vak.
Vervolgens kan de gebruiker de nieuwe gegevens invullen en worden die opgeslagen in variabelen. Dit werkt wel goed.

Maar hierna heb ik een UPDATE-query, waarbij ik de nieuwe gegevens wil invoeren in de database:

<?php
mysqli_query($mysql,"UPDATE gebruikers SET gebruikersnaam = '$gebruikersnaam', wachtwoord ='$wachtwoord',voorletters ='$voorletters', achternaam ='$achternaam', rol='$rol',actief='$actief',vak='$vak' WHERE id = '$id'") 
  or die("De updatequery op de database is mislukt!");
  }
?>


Ik heb in deze query bij WHERE id='$id' staan. Maar het lukt mij niet om de id van de geselecteerde gebruiker op te slaan in $id, waardoor hij uiteindelijk niets aanpast.
Ik heb het al geprobeerd met:

<?php
$id = mysqli_real_escape_string($mysql,$_POST['id']); //(naam kolom)
?>

en

<?php 
$id = mysqli_real_escape_string($mysql,$_POST['gebruikers']); //(naam tabel)
?>


Weet iemand hoe ik het ID van de <select> kan opslaan in een variable, zonder de waardes van de andere kolommen erbij?

Alvast bedankt,
Max

Ik zou wel even $id tussen quotes plaatsen.
<?php
$result = mysqli_query($mysql,"SELECT * FROM gebruikers WHERE id='".$id."'");
?>
o_O

Maar daar wordt enkel $id overschreven van een niet-bestaande POST variabele ($_POST['id']) naar een wel bestaande POST variabele ($_POST['gebruiker']), waar je al een aantal keren op gewezen was?

- Ariën - op 04/12/2018 19:10:04
Ik zou wel even $id tussen quotes plaatsen.
Mja, en misschien eerst ook nog even valideren (en wellicht ook kijken of de POST variabele bestaat) of het ook echt een auto-increment id betreft, anders heeft het in eerste instantie geen enkele zin om die query uberhaupt uit te voeren.

Reageren