ik heb een spotlicht plek met een random user die daar dan ze profiel showt
nu zoek hij uit de tabel leden een random member_id
maar soms krijgt hij een id van de account die is verwijderdt
en staat er een legen en dan krijg ik errors :s
hoe kan ik dit tegengaan?
ik gebruik:
<?
$sql_accounts = "SELECT * FROM leden";
$res_accounts = mysql_query($sql_accounts) or die (mysql_error());
$aantal = mysql_num_rows($res_accounts);
$rand = rand(1, $aantal);
$sql_nieuw_account = "SELECT * FROM leden WHERE member_id='".$rand."'";
$res_nieuw_account = mysql_query($sql_nieuw_account) or die (mysql_error());
?>
Eehm... bewaar je leden die verwijderd zijn dan? Zoniet, dan zet je ze dus met een bepaalde 'waarde' op non actief? Dan moet je die er wel uitfilteren. Verder haal je DE HELE ledentabel op alleen om te kijken hoeveel leden er zijn? Man, gebruik toch gewoon een enkele count query...
Marvin, er klopt weinig van. Stel, ik heb 100 members, 50 daarvan verwijder ik. De eerste query komt '50' als antwoord uit, vervolgens trek jij een nummer van 1 t/m 50. Maareh... het kan best zijn dat ik de eerste 50 verwijderd heb...
MySQL kent ook een RAND() functie, combineer dat even met je achterlijke SELECT * en je komt een heel eind.
Ok ik heb jullie raad en kritiek even bekeken en ik heb er een kolom active bijgemaakt.
dus die wordt dan verandert en accounts worden niet meer verwijderd
(weer iets geleerd :P)
dus kan iemand vertellen hoe ik de RAND() LIMIT enzo gebruik in een query
want ik gebruikte dus RAND() LIMIT 0,1 en dan krijg ik dus steeds een leeg resultaat :S
Kan iemand mij meer vertellen over die functie?
[edit]
sorry voor mijn actie, ik was een beetje ongeduldig en dom bezig :P
vergeten op google te zoeken.
ik heb een tutje over RAND() mysql gevonden en ik snap het nu
het werkt prima
<?
$sql_accounts = "SELECT * FROM leden WHERE active='actief' ORDER BY RAND() LIMIT 1";
$res_accounts = mysql_query($sql_accounts) or die (mysql_error());
$row_acc = mysql_fetch_assoc($res_accounts);
?>
Jh maar ik had dat dus gedaan met 0,1 zoals daar stond en toen werkte hij niet dus ben ik tutje gaan lezen en het enige wat ik eigenlijk moest doen was 0, weghalen :P