Optie toevoegen aan een winkel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Joey Felling

Joey Felling

28/10/2015 03:15:34
Quote Anchor link
Beste phphulp community,

Voor mijn studie moeten wij een interactieve website in elkaar zetten. Ik heb gekozen voor een online 'klik' spel zoals we die vroeger wel vaker zagen.

Op mijn website heb ik de mogelijkheid voor gebruikers om hun diamanten in te wisselen voor 'ingame cash'. Als ik een optie hieraan probeer toe te voegen dan werkt het niet. Een andere optie zou bijvoorbeeld zijn dat gebruikers hun diamanten in kunnen wisselen voor iets anders als geld, bijvoorbeeld kogels. Als ik dit probeer dan komt de hoeveelheid kogels terecht bij de ingame cash en vice versa. Ik zal het nader toe lichten in de code.

Hier de originele code:

if($item['geldkoffer'] == "")
{
//if isset get geldkoffer kopen
if(isset($_GET['diamanten']))
{
$id = mysqli_real_escape_string($link, $_GET['diamanten']);
// hier haalt hij alle items op uit de database, dus ook de eventuele kogels omdat hij alle ID's ophaalt
$databaseW = mysqli_query($link, "SELECT * FROM `winkel_diamanten` WHERE `id`='$id'") or die(mysqli_error($link));
$itemW = mysqli_fetch_assoc($databaseW);

if(mysqli_num_rows($databaseW) == 1)
{
if($itemW['prijs'] <= $item['diamanten'])
{
// hier geeft hij aan dat alles juist is en de gebruiker wordt upgedate in de database (+ cash en - diamanten), als ik bijvoorbeeld `zak` zou veranderen in kogels dan worden de kogels upgedate en niet de cash van de gebruiker.
echo("<p>Je hebt het product gekocht!</p>");
mysqli_query($link, "UPDATE `gebruikers` SET `zak`=`zak`+'{$itemW['hoeveelheid']}', `diamanten`=`diamanten`-'{$itemW['prijs']}' WHERE `gebruikersnaam`='{$_SESSION['gebruiker']}'") or die(mysqli_error($link));
}
else
{
echo("<p>Je hebt niet genoeg diamanten!</p>");
}

}
else
{
echo("<p>Dit product bestaat niet!</p>");
}
}


In mijn database tabel genaamd winkel_diamanten heb ik ook een row genaamd categorie. Categorie is nu aangeduid als geld, maar dat is in deze code volgens mij nog niet geïdentificeerd, is het mogelijk om dit stukje code alleen uit te voeren als de categorie "geld" is? Zodat ik makkelijk een optie toe kan voegen als het gaat om categorie "kogels".

Ik hoop jullie voldoende informatie te hebben gegeven, mocht dit niet zo zijn of mocht er iets onduidelijk zijn laat het mij gerust weten. Het liefst hoor ik een uitleg zodat ik het ook daadwerkelijk begrijp en er iets van leer.

Wat ik bijvoorbeeld heb geprobeerd is de volgende code erachter te zetten:

" if($item['kogels'] == "") {
mysqli_query($link, "UPDATE `gebruikers` SET `kogels`=`kogels`+'{$itemW['hoeveelheid']}', `diamanten`=`diamanten`-'{$itemW['prijs']}' WHERE `gebruikersnaam`='{$_SESSION['gebruiker']}'") or die(mysqli_error($link));

} "

Als ik dit probeer dan komt er inderdaad de hoeveelheid kogels bij, maar ook tegelijkertijd bij de gebruikers ingame cash. Ook als een gebruiker nu een geldkoffer zou kopen komt het aantal bij allebij (geld en kogels) terecht en dit is natuurlijk niet de bedoeling.

Bij voorbaat dank.
 
PHP hulp

PHP hulp

24/11/2024 20:47:23
 
Obelix Idefix

Obelix Idefix

28/10/2015 15:48:06
Quote Anchor link
Joey Felling op 28/10/2015 03:15:34:


Wat ik bijvoorbeeld heb geprobeerd is de volgende code erachter te zetten:

" if($item['kogels'] == "") {
mysqli_query($link, "UPDATE `gebruikers` SET `kogels`=`kogels`+'{$itemW['hoeveelheid']}', `diamanten`=`diamanten`-'{$itemW['prijs']}' WHERE `gebruikersnaam`='{$_SESSION['gebruiker']}'") or die(mysqli_error($link));

} "

Als ik dit probeer dan komt er inderdaad de hoeveelheid kogels bij, maar ook tegelijkertijd bij de gebruikers ingame cash.

Kan het verhaal niet helemaal volgen, maar dat je bij de hierboven query twee dingen update, lijkt me logisch. Je zet ze zelf in de query: kogels en diamanten. Als je maar 1 van beide wilt updaten, zul je daarin een keuze moeten maken.

Waarom gebruik je ` in je query?

Or die is geen nette foutafhandeling.
 
Joey Felling

Joey Felling

28/10/2015 16:23:55
Quote Anchor link
Het gaat erom dat de bovenstaande code 1 item update namelijk cash geld. Wat ik zou willen weten is hoe voeg ik er een item aan toe wat zij in kunnen wisselen. Ze wisselen nu diamanten in voor ingame geld ( zak=zak+$prijs | diamanten=diamanten-$prijs), graag zou ik hieraan een optie toe voegen dat men diamanten in kan wisselen voor bijvoorbeeld kogels zonder dat ook ingame cash wordt aangepast.

Als ik er een mysql update aan de bovenstaande code toe voeg (kogels) dan update hij inderdaad kogels alleen komt het even aantal ook bij de gebruikers ingame cash bij, de code maakt geen onderscheid tussen wat aangegeven is in mijn database ( Tabel: winkel_diamanten : row: categorie bijvoorbeeld geld | kogels). Mijn vraag is hoe laat ik de update pas doorvoeren als in de database row: categorie, geld aangegeven staat. Met deze wetenschap kan ik makkelijk een code schrijven voor een ander item bijvoorbeeld kogels door in mijn database categorie, kogels aan te geven en in mijn php bestand aan te geven dat de update voor kogels pas in gaat wanneer er in de categorie 'kogels' wordt gevonden.


In het kort komt het erop neer dat ik graag zou willen weten of dit kan, hoe kan ik de bovenstaande code pas in werking laten gaan als in mijn database 'categorie: geld' wordt gevonden en hij anders een echo geeft dat het product niet bestaat.
Gewijzigd op 28/10/2015 16:27:57 door Joey Felling
 



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.