Hallo,

Ik heb een stukje code dat ik moet veranderen. Zie hier:


<?php
$request = trim(strtolower($_REQUEST['username']));
//sleep(2);
usleep(150000);
$users = array('asdf', 'Peter', 'Peter2', 'George');
$valid = 'true';
foreach($users as $user) {
	if( strtolower($user) == $request )
		$valid = 'false';
}
echo $valid;
?>


De array met alle namen wil ik in combinatie met de database gebruiken. Ik wil namelijk de namen uit de database halen. Hoe is dit mogelijk? Ik heb al enkele dingen geprobeerd maar het lukt me steeds niet.

Alvast bedankt voor de hulp!
Allereerst: We gebruiken liever niet meer de $_REQUEST variabele. Het probleem is dat je namelijk niet weet waar je het vandaan hebt, $_POST, $_GET of $_COOKIE . Om te kijken of een $_POST var in een opgegeven array bestaat geberuiken we gewoon [php]in_array[/php]

Zoiets moet het worden:

<?php
if(!emtpy($_POST['username'])){
$postname = trim($_POST['username']);
usleep(150000);
$users = array('asdf', 'Peter', 'Peter2', 'George');
$valid = true;
if(in_array($postname, $userarray)){
$valid = false;
}
if($valid){
//is valid, ga door met code
}
}
else {
// $_POST['username'] bestaat niet
}
?>

Tja en empty gebuik je natuurlijk ook niet over een superglobal heen. (eigenlijk moet je empty helemaal niet gebruiken, tenzij je voor de volle 100% zeker bent van het feit dat het ook als een string door empty behandeld wordt)
en uiteraard maak je ook geen overbodige variabelen aan.
Maar dit komt nog niet uit de database. En dat was eigenlijk mijn vraag. Die asdf, Peter, Peter2 en George moeten uit de database komen. En ik heb ze verder wel in de database staan, maar hoe vraag ik die namen op met een array?
Bekijk deze tutorial van wes eens: linkje
Of zoiets:

<?php
$query = "SELECT namen FROM tabelnaam (met nog een WHERE evt)";
if(!$result = mysql_query($query)){
trigger_error(mysql_error());
}
else{
$namen = array();
while($rows = mysql_fetch_assoc($result)){
$namen[] = $row['namen'];
}
var_dump($namen);
}
?>

Reageren