Beste mensen.
Ik wil als proef een kort spelletje maken.
Je krijgt een kaart voor je die bestaat uit 18 blokjes.
Er zijn 5 verschillende blokjes.
hout (1)
water (2)
ijzer (3)
gras (4)
klei (5)
Nu wil ik deze weergeven met PHP, das geen probleem natuurlijk MAAR... als iemand zijn account maakt dan wil ik natuurlijk hem een unique kaartje geven dus gebruikte ik het rand() commando.
het probleem nu is, in my database slaat hij dingen op OOK als 0 (nul) en als 6 (zes)... maar ik geef aan dat hij 1 tot en met 5 mag gebruiken... kan iemand mij misschien uitleggen hoe dit komt, en of dat ik misschien beter een andere methode kan / moet gebruiken voor iets als dit?
Wat is hier fout aan? de waarde 3 (drie) staat in mijn SQL table.
Of ik nu zeg als de waarde 1 is, of 2 of 3 of wat dan ook, hij print altijd 3 uit... terwijl als de waarde niet goed is hij niks moet doen.
Wat doe ik hier precies verkeerd nu?
ps. het script dat kijkt welke waarde het heeft en welk blokje weergegeven moet worden ---> http://www.plaatscode.be/3873/
dit is de (een stuk uit) pagina die het moet weergeven.
ik laat hier alleen de <table> zien waar ik het stukje heb. http://www.plaatscode.be/3874/
dus een dubbele = teken?... raar had ik geprobeerd maar dan doet hij helemaal niks meer (geeft hij helemaal geen plaatje weer)... zal het nog eens overdoen haha dankjewel!
#
<?php
#
// deze code zal het juiste veldje weergeven op de map van de speler zijn / haar dorpje
#
...
mysql_query("SELECT * FROM RoV_player_maps WHERE gebruikersnaam = 'Warbringer'") or die(mysql_error());
#
$fetch = mysql_fetch_object($query);
$var = $fetch->veld_1;
echo $var;
?>
#
<?php
#
// deze code zal het juiste veldje weergeven op de map van de speler zijn / haar dorpje
#
...
mysql_query("SELECT * FROM RoV_player_maps WHERE gebruikersnaam = 'Warbringer'") or die(mysql_error());
super hehe, nou wat ik eigenlijk wou is het volgende:
Als de gebruiker een account maakt worden er 18 vakjes d.m.v. een rand() gemaakt (getal 1 t/m 5). Dit wordt in de SQL database opgeslagen. 1 = hout, 2 = klei, 3 = water enz enz enz...
Dat gaat allemaal perfect maar als de gebruiker inlogt, en zijn speel veld te zien krijgt dan moet het dus uit de sql gehaald worden.
Om lappen code te voorkomen wou ik dit met een function doen die in een extern bestand staat dat ik include / require.
Het is dus iets van, kijken welk getal id 1 heeft, is het 1 dan print plaatje hout, is het 2 dan print plaatje klei is het 3 dan print plaatje water... en zo voor alle 18 hokjes.
De hokjes zijn gesliced in Adobe Imageready en zijn dus in borders opgedeeld.
Dus in een extern .php bestand wou ik 18 functions maken, voor elk hokje een function die dus kijkt wat de waarde is, en dan het plaatje print.
ja zo deed ik het precies hehe plaatje_1.gif plaatje_2.gif en zo doende voor elk soort..
mysql_fetch_array... dat het zelfde als mysql_fetch_object ?
en trouwens mijn code werkt perfect MAAR niet meer als ik hem
in een function zet... er was gezegt een 'global' function van maken zou dat een oplossing zijn denk je?.
Verder kijkt hij nu ook niet welk nummer id1 is, want bij elk account heeft id1 t/m id18 een andere waarden omdat de velden automatisch gegenereerd worden met het rand() commando zodat niet iedereen dezelfde kaart voor zijn neus krijgt
zoiets als dit, dus echt PER username kijkt hij van, (ik moet dan wel de code PER vakje erin zetten maar das geen probleem daarom wou ik 'eigenlijk' met functions werken via een include) id1 heeft welke waarde, ow die waarde! dan print ik dat plaatje...
fetch_assoc/fetch_array is sneller als fetch_object.
En wat je daar doet, die 'if'-jes is nergens voor nodig. Lees Berten zijn post nog eens en doe dat eens een keertje.
Overigens bestaat de uitdrukking (in php dan toch) 'een function global maken' niet. Wat je wel kan doen is een variabele global maken, zodat deze beschikbaar wordt in de functie. Wat je ook zou kunnen doen is een argument meegeven, maar wat het beste is dat is doen wat Berten zegt.
functie:
(ik ga er van uit dat het veld waarin de ID van je pic wordt weergegeven veld1 heet?
anders moet je ff laten zien hoe je tabel veldjes is opgebouwd)