Hallo,

Ik heb een website waarbij gebruikers inloggen. Nu heb ik een formulier gemaakt waar met een dropdown de gebruikers geselecteerd kunnen worden die in de database zijn opgeslagen. Echter in de database zitten ook gebruikers die ik niet in de lijst wil tonen in het formulier. Bv. de admin gebruiker. Hoe kan ik deze middels php code deze gebruiker niet tonen?

Bedankt.
Marco
Hoezo zou je een dropdown willen gebruiken om de gebruikersnamen te kiezen?
Maakt dit het niet makkelijker om te zoeken wie een gebruiker is, waarna je door gelekte wachtwoordlijsten kan zoeken?

Antwoord op je vraag: filter in je database query erop, met bijv.

SELECT username FROM users WHERE status !='admin'
Bedankt voor je reactie!

Het gaat om een portal voor een vereniging waar bestuursleden wijzingen aanvragen voor leden van de vereniging. Dan wil ik niet dat ze maar wat invullen, maar dat ze een keuze maken voor een account.

Helaas werkt de code niet.

Ik heb nu deze code in het veld staan:

//<code>
// Prepare the empty array
$items = array();
// Prepare the database connection
$db = JFactory::getDbo();
// Keep this if you'd like a "Please select" option, otherwise comment or remove it
$items[] = "|Maak een keuze[c]";

// Run the SQL query and store it in $results
$db->setQuery("SELECT * FROM `tabelnaam` WHERE 1");
$results = $db->loadObjectList();

// Now, we need to convert the results into a readable format.
// The Items field will accept values in this format:
// value-to-be-stored|value-to-be-shown
// Eg. m|M-sized T-shirt
foreach ($results as $result) {
$value = $result->name;
$label = $result->name;
$items[] = $value.'|'.$label;
}

// Multiple values are separated by new lines, so we need to do this now
$items = implode("\n", $items);

// Now we need to return the value to the field
return $items;
//</code>


Ik wil graag dus de admin gebruikers niet in de lijst hebben staan. Hoe kan ik dit inbouwen?

Bedankt.
Je SELECT query dus aanpassen.
en wat moet daar dan komen te staan?
Iets in de trant zoals ik mijn query omschreef in mijn bericht van gisteren.

Alleen is voor mij niet duidelijk hoe in jouw datastructuur een admin-rol wordt toegewezen.
met een user ID. In dit geval nummer 72.
Dan wordt het dit:
SELECT username FROM users WHERE UserID !=72 


Alleen is het niet heel erg praktisch dat je de rechten hardcoded in je code plaatst .
Een id is gelijk aan een beheerder?
Heb je dan geen rollen/functie/beheer systeem?
Wat als er plots meerdere beheerders nodig zijn af andere functies?

Maak een extra tabel met functies of taken en wijs via een koppeltabel deze toe.

Jan
Een user id is alleen en uitsluitend voor intern gebruik in je database, verder zou ik het echt nergens voor gebruiken of de een of andere betekenis aan toekennen.

Je hebt dus een extra column nodig in je users tabel waar de de rol of "status" van een user in aangeeft. Kijk in je query alleen uit met het woord "status", want dat is een gereserveerd woord in MySQL.

Sommige mensen werken in zo'n geval graag met backticks:


SELECT id, user FROM users where `status` != 'admin' ORDER BY user ASC


Maar ik werk liever met tabel aliassen:


SELECT u.id, u.user FROM users u where u.status != 'admin' ORDER BY u.user ASC


Aanvulling 1: als je veel statussen gaat krijgen, kun je daarvoor weer een aparte tabel aanmaken.
Aanvulling 2: bij het echoën van je select dropdown zou ik het id in de value van het option element zetten en de user in de tekst van de option.
Bedankt voor de hulp tot nu toe. Wordt erg gewaardeerd.

Ik ben er bijna. Ik heb nu de volgende code:
"SELECT * FROM `tabelnaam` WHERE `id` != '67'"

Ik wil meerdere gebruikers (id 70 en 72) uitsluiten. Hoe krijg ik dit in deze code verwerkt. Daarnaast wil ik de lijst ook direct sorteren op alfabet.

Reageren