database rows naar php array
Dit geeft de volgende resultaten:
Rank
23
11
7
7
4
5
6
9
12
15
17
22
28
36
Hoe krijg ik dit omgezet naar een php array als deze: $ranking = array(23,11,7,7,4,5,6,9,12,15,17,22,28,36)
Telkens als ik iets probeert kom ik hierop uit: Array ( [0] => Array ( [0] => 23 [rank] => 23 ) [1] => Array ( [0] => 11 [rank] => 11 ) ) etc
Verder wil ik ook een array die meeloopt met het aantal getallen in de vorige array. In dit geval dus $weeks = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
Ik weet dat het simpel is, maar ik kan er al een tijdje niet opkomen hoe dit precies te doen.
Gewijzigd op 20/07/2015 23:30:28 door Fabian W
Ik werkte eerst met mysqli_fetch_array, maar je moet dus mysqli_fetch_assoc hebben hier.
Volgens mij moet het met mysqli_fetch__array ook werken. Het enige verschil is dat de ene standaard een genummerde array geeft, en de andere niet.
En de genummerde array heb ik nu ook: range (1, count($ranking))
Ik neem aan dat je wel INT gebruikt als datatype? Dat sorteert al makkelijker vanuit MySQL zelf.
int(4) idd.
Die apostrophes horen er dus helemaal niet. Hoe krijg ik die weg?
Ik vind het sws raar dat de apostrophes verschijnen sinds ik int(4) als datatype heb in mijn database.
Bij de andere array (weeks) krijg ik wel gewoon [1,2,3,4,etc]
Alles wat je van MySQL terugkrijgt zijn doorgaans strings. Als je van prepared statements gebruik maakt (wat ik niet zou doen in MySQLi) worden types wel gehonoreerd waarschijnlijk.
Of je moet via het binary protocol een verbinding maken, maar daar kon ik toen ik MySQLi onderzocht verder geen enkele informatie over vinden, enkel dat er zoiets bestond.
EDIT: als je prepared statements gebruikt werk je via het binary protocol.
Gewijzigd op 23/07/2015 00:02:25 door Thomas van den Heuvel
Dit krijg ik als output: {"status":"ok","data":{"weeks":["46","47","48","49","50","51","52","1","2","3","4","5","6","7"],"ranking":["23","11","7","7","4","5","6","9","12","15","17","22","28","36"]}}
(niet belangrijk, maar ik heb besloten om weeks toch niet om te zetten naar 1,2,3,enz)
Code (php)
Oftewel: gebruik de JSON_NUMERIC_CHECK flag.
Gewijzigd op 23/07/2015 00:10:41 door Thomas van den Heuvel
Dat werkt.