Users toevoegen met Select Form

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander Spijk

Sander Spijk

11/12/2005 22:08:00
Quote Anchor link
Ik wil aan een bepaalde usergroup users toevoegen dmv een Form met het volgende object:

<SELECT NAME="user">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php $query = "SELECT * FROM users";
$result = mysql_query($query, $db) or die ("FOUT: " .mysql_error());
while (list($id, $username) =
mysql_fetch_row($result)){ echo("<OPTION>".$username."</OPTION>");
}
?>

</SELECT>

Nu wil ik hem laten checken of de user al in deze groep zit en hem dan dus niet meer weergeven, hoe doe ik dit?

De complete userlijst van users die al in de groep zitten kun je oproepen met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php $query = "SELECT * FROM group";
$result = mysql_query($query, $db) or die ("FOUT: " .mysql_error());
while (list($id, $party, $user, $function) =
mysql_fetch_row($result)){ echo("".$user.", "); } ?>
 
PHP hulp

PHP hulp

21/12/2024 17:34:55
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 22:12:00
Quote Anchor link
Hoi Sander,

ik begrijp dat je een tabel users hebt en een tabel group. Je vraag is dus eigenlijk: ik wil in mijn selectbox alle users laten zien die nog niet in de group zitten?
 
Sander Spijk

Sander Spijk

11/12/2005 22:14:00
Quote Anchor link
Ja dat klopt precies....
Ik neem aan dat je daarvoor eerst een array moet mkaen met alle users die er al in zitten, maar ik heb hier nog nooit mee gewerkt en weet zo niet hoe dat moet....
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 22:19:00
Quote Anchor link
Interessant probleem. Ik zit te denken of het met een query kan, of dat je tussenstappen moet doen. Moment.
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 22:26:00
Quote Anchor link
Voorlopig lijk mij de beste oplossing een array met users maken, en een array van users uit de tabel groups halen. Daarna kun je met array_diff bepalen welke user er nog niet in groups zit.

Hoe zien je MySQL tabellen er uit?
 
Jelmer -

Jelmer -

11/12/2005 22:27:00
Quote Anchor link
Zou het iets moeten kunnen worden in de zin van....

SELECT users.username FROM users, categories WHERE COUNT(users.username = categories.username) < 1

Okee, dit was een hele wilde gok.
 
Sander Spijk

Sander Spijk

11/12/2005 22:28:00
Quote Anchor link
Tabel users:
-id
-username
-function

Tabel group
-id
-group
-user
-function

De dubbele function komt doordat een user voor de totale site een user kan zijn, maar voor die groep een admin...
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 22:33:00
Quote Anchor link
En user in de tabel 'group' verwijst naar id in de tabel 'users'?

@ Jelmer: volgens mij mag je aan COUNT alleen een veldnaam meegeven, en geen conditie zoals bij WHERE
 
Sander Spijk

Sander Spijk

11/12/2005 22:44:00
Quote Anchor link
volgens mij kan ik een array maken van alles users in de group:

$query = "SELECT * FROM group WHERE group = '".$_POST["group"]."'";
$result = mysql_query($query, $db) or die ("FOUT: " .mysql_error());
$userarray = mysql_fetch_array($result);

En dan in de select aangeven:

if(!in_array($username,$userarray)){echo("<OPTION>".$username."</OPTION>"); }

Maar ik weet niet of ik dit zo goed doe en of dit kan, hebben jullie daar ideeen over?
Gewijzigd op 11/12/2005 22:45:00 door Sander Spijk
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 22:47:00
Quote Anchor link
Nee, zo zal het niet werken. mysql_fetch_array geeft wel een array terug, maar die bevat dan alle waardes van 1 record.
 
Sander Spijk

Sander Spijk

11/12/2005 22:48:00
Quote Anchor link
Dit werkt in ieder geval niet, hoe komt dat?

note1: Ok, had eerst ff moeten refreshen, sorry....
Hoe bouw je dan een array op?
Gewijzigd op 11/12/2005 22:49:00 door Sander Spijk
 
Jelmer -

Jelmer -

11/12/2005 22:51:00
Quote Anchor link
$userarray = array()
while($user = mysql_fetch_assoc($result))
{
$userarray[] = $user['username'];
}
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 22:52:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
$query
= "SELECT * FROM group WHERE group = '".$_POST["group"]."'";
$result = mysql_query($query, $db) or die ("FOUT: " .mysql_error());

while ($obj = mysql_fetch_object ($result)) {
  $userarray[] = $obj->veldnaam;
}

?>


en dan voor veldnaam de goeie invullen
 
Sander Spijk

Sander Spijk

12/12/2005 19:36:00
Quote Anchor link
Joepie Dit werkt inderdaad.....
Gewelidg....

Jan bedankt... Je bent een held
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.