Hallo daar,
Ik ben bezig met een discover systeem voor een text based spel. Mensen moeten wapens discoveren voordat ze in de winkel erbij komen.

Ik heb het zo bedacht:
Alle wapens staan in de tabel `wapens`, waarbij ik het zogenaamde veld `area` een waarde '3' geef voor wapens die discovered kunnen worden.

In de tabel `gebruikers` heb ik een veld toegevoegt met als type TEXT en naam `discovered-items` .
Ik heb dit stukje script om de wapens die discovered worden in het veld te plaatsen:
$newlist = $gegeven[wapen];
$newlist = preg_replace("/,$data[discovered-items],/i",'',$newlist);
$newlist .= ",$data[discovered-items]";
mysql_query("UPDATE `gebruikers` SET `discovered-items`='$newlist' WHERE `login` = $data[login]");

Echter nu is mijn probleem hierzo $gegeven[wapen] . Welk stukje script heb ik nu nodig om zeg maar te controleren of een wapen uit de tabel `wapens` al discovered is bij een persoon? Want dit veld zit namelijk in de tabel `gebruikers` genaamd `discovered-items`

Ik wil dus een lijst uit de database halen met wapens die discovered kunnen worden maar die nog niet in het veld `discovered-items` staan.

Hoe doe ik dit? Hier loop ik dus vast. Ik wil dit zodat ik later een Random wapen uit die lijst kan halen en die dan dus uiteindelijk discovered word voor de gebruiker.
Ik hoop dat ik een beetje duidelijk ben en dat julie me verder kunnen helpen.

Gr Michel

Pas aub even de titel in je topic aan. (Bijna) Iedereen die een topic opent heeft hulp nodig. Maak er iets passend van.

Ik heb het inmiddels veranderd, naar wat anders wat voor mij wel werkt. Hieronder volgt een stukje script:

<?
$dbres = mysql_query("SELECT `id` FROM `wapens` WHERE `item` NOT IN (SELECT `itemnaam` from `discovered-items` WHERE `login`='$data[login]') AND `area`='3' AND `itemrank` <= '$data[rank]'");
$num = mysql_num_rows($dbres);
$randwapen = rand(0,$num);
$dbres = mysql_query("SELECT `item` FROM `wapens` WHERE `item` NOT IN (SELECT `itemnaam` from `discovered-items` WHERE `login`='$data[login]') AND `area`='3' AND `itemrank` <= '$data[rank]' ORDER BY `id` DESC LIMIT $randwapen,1") or die("ERROR!2");
$geworden = mysql_fetch_assoc($dbres);
echo $geworden[item];

?>

Maar nu zit ik met het volgende; als ik dit dus uitvoer, geeft hij me soms geen naam van een wapen. dan is de output gewoon "" , terwijl er wel results zijn. Hoe komt dit en hoe kan ik dit oplossen?

Hoop dat julie me kunne helpen. Gr Michel

[size=xsmall]Toevoeging op 21/11/2011 15:01:03:[/size]

Opgelost
<? $randwapen = rand(0,$num); ?>
was het probleem. heb ervan gemaakt <? $randwapen = rand(0,$num-1); ?>

Topic kan gesloten worden

Gr michel

Reageren