Controleren of iets in de database voorkomt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michel van der Hoop

Michel van der Hoop

19/11/2011 05:46:05
Quote Anchor link
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

titel aangepast[/modedit]
Gewijzigd op 19/11/2011 14:05:47 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

24/11/2024 04:00:01
 
Obelix Idefix

Obelix Idefix

19/11/2011 10:20:20
Quote Anchor link
Pas aub even de titel in je topic aan. (Bijna) Iedereen die een topic opent heeft hulp nodig. Maak er iets passend van.
 
Michel van der Hoop

Michel van der Hoop

21/11/2011 14:28:40
Quote Anchor link
Ik heb het inmiddels veranderd, naar wat anders wat voor mij wel werkt. Hieronder volgt een stukje script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
$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

Toevoeging op 21/11/2011 15:01:03:

Opgelost
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $randwapen = rand(0,$num); ?>

was het probleem. heb ervan gemaakt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $randwapen = rand(0,$num-1); ?>


Topic kan gesloten worden

Gr michel
 



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.