Det virkede fint førhen da jeg ikke havde det som en funktion men blot inkluderede den og så kørte query'et som: $hero_query = mysql_query("SELECT * FROM heroes WHERE userid = '$_SESSION[user_id]'");
Du bør ikke have require_once('connect.php') i din funktion, flyt den uden for din funktion, men behold den i samme fil som funktionen. Dernæst kan du tjekke om din sql virker ved brug af "or die(mysql_error())" Og har du mere i din funktion, siden du kan sige dine variabler ikke indeholder noget ?
Ja, har meget mere i min funktion. Men jeg fandt ud af det, det er fordi variabler jo er begrænset til inde i funktionen, så virker de ikke hvis man kalder dem udefra. Jeg har derfor lavet dem alle til globals.
get_stats($user_id) : $user_id er så din var. Og hvis du bruger $_SESSION['user_id'] burde det umiddelbart virke, da $_SESSION er en "super globasl", mener jeg da, men måske der er gået bøf i den fordi serveren har register_globals sat til, så når du har "user_id" som var, og samtidig bruger den i en session, er det måske derfor ? Måske $_SESSION["user_id"] ville virke, men det er et skud i tågen.
Uanset, så er det ikke nødvendigt at bruge "global" til "super globals"
Det er rigtig dårlig programmeringsstil og meget skidt design hvis du er nød til at lave variabler for globale. Man bør aldrig lave kode som kalder variabler som hører til en funktion. Enten skal du bruge return eller også skal du læse lidt på hvordan man bruger argumenter som referencer i funktions kald. http://dk2.php.net/manual/en/functions.arguments.php#functions.arguments.by-reference
Det er muligt at det er dårlig programmeringsstil, men jeg er nok for doven til at skulle sidde og lave returns til alle mine variabler inde i funktionen, da jeg har over 44 variable der så skulle returnes inde i en switch med 4 forskellige resultater, der jo så hver især har 44 variabler.
Du returnerer vel bare et array med dine 44 resultater? Det er da ligeså nemt og mere fleksibelt end det du er ved at rode dig ud i nu. Og tidsforbruget på at lave alle variablerne i dit funktionsscope globale kunne ligeså godt være blevet lagt i et array.
Du bliver nød til at vise et eksempel på hvad det er der ikke virker for dig. På den måde kan vi nemmere se om du referer forkert eller om det er noget andet.
Så sker det en masse udregninger med disse variabler, som alle giver 0. Et eksempel på en af disse "udregninger" er: $p1_hit_damage = $p1_stats['damage_total'];
Resultater af alle disse udregninger bliver så sat ind i en variable som bliver returnet.
Dette bliver echo'et helt fint, dog alle de steder hvor der burde være højere tal, står der bare 0.
stats.php virker helt fint et andet sted hvor jeg benytter den, så tror ikke det er den der er noget galt med. Jeg har også prøvet at bruge include('stats.php'); både inde og uden for selve funktionen.
Haha, jeg fik det til at virke, men forstod ikke helt hvad du mente og var ret sikker på at du tog fejl med at der var noget galt med get_stats() funktionen, så jeg gik i gang med at echo teste alle mine variabler, og sjovt nok, så virkede de alle bortset fra damage, jeg fandt så ud af at under udregningen til damage i get_stats() funktionen, havde jeg glemt at ændre det til array.
Irriterende at så nogle små fejl ofte kræver så stort et arbejde at finde, men du skal have mange tak for din hjælp repox. Hvis du vil have point, opretter jeg gerne et nyt spørgsmål så du lige kan få dem :)
Behold du bare dine point, det vigtigste er jo at du fik det til at virke ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.