BlitZz
Member
Hei! Jeg har et lite problem her
Jeg har egentlig aldri tatt meg tid til å lære php og database systemer, men jeg har prøvd meg litt frem nå med at jeg tenkte at jeg skulle bytte ut noe json inne i appen min med database slik at jeg slipper å oppdatere hver gang jeg må fikse på noe..
Jeg har hittil laget en mysql database med noen forskjellige tables. (som vist under)
Inne i et table ser det slik ut:
Det jeg prøver på da er vel å hente alle tabels og deres "sub tables" deretter lage skikkelig json ut av det hele. noe slikt:
Har som sagt prøvd meg litt frem og har klart å hente fra databasen og lage json ut av det men har da to problemer. Når jeg bruker denne koden:
(Har hentet koden fra et tideligere prosjekt jeg fikk hjelp på fra en som kunne php, men ta det med ro, skjønner meste parten)
Og deretter henter det med jquery alax får jeg ikke med "tittelen" altså fra bilde nr 3, sånn at det står: ("other": ) foran resten av objektene. Det blir bare en haug med objekter uten en "parrent" og alt blir som en stor json fil, ikke en json med forskjellige "kategorier".
Har tenkt på en løsning som jeg er ganske sikker på vil fungere da, men det vil være en veldig dårlig måte å utføre det på. Tenkte at jeg kan be brukerens klient spørre etter bare tabelet "other" når han er inne i "other" på appen. Men det tror jeg vil bli masse trafikk med tanke på at appen har 6000 aktive brukere..
Så det jeg egentlig hadde i tankene var at brukeren laster ned hele databasen og lagrer den i localstorage, deretter vil appen spørre serveren om det er en ny versjon tilgjengelig hver gang den starter. Slik at loaden blir betraktelig mindre.
Har dere noen tips eller en løsning på hva jeg kan gjøre for å oppnå dette?
Takk!
Jeg har egentlig aldri tatt meg tid til å lære php og database systemer, men jeg har prøvd meg litt frem nå med at jeg tenkte at jeg skulle bytte ut noe json inne i appen min med database slik at jeg slipper å oppdatere hver gang jeg må fikse på noe..
Jeg har hittil laget en mysql database med noen forskjellige tables. (som vist under)
Inne i et table ser det slik ut:
Det jeg prøver på da er vel å hente alle tabels og deres "sub tables" deretter lage skikkelig json ut av det hele. noe slikt:
Har som sagt prøvd meg litt frem og har klart å hente fra databasen og lage json ut av det men har da to problemer. Når jeg bruker denne koden:
PHP:
<?php
header('Access-Control-Allow-Origin: *'); //remove later
header('Access-Control-Allow-Methods: GET, POST'); //remove later
require 'config.php';
try {
$db = new PDO($dsn, $username, $password);
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
// Get Other
$sth = $db->query("SELECT * FROM other,tools");
$other = $sth->fetchAll();
function utf8ize($d) {
if (is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} else if (is_string ($d)) {
return utf8_encode($d);
}
return $d;
}
$json = json_encode(utf8ize($other));
$json = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); }, $json);
echo $json;
//echo json_encode(utf8ize($item)); // don't
//echo json_last_error();
} catch (Exception $e) {
echo $e->getMessage();
}
Og deretter henter det med jquery alax får jeg ikke med "tittelen" altså fra bilde nr 3, sånn at det står: ("other": ) foran resten av objektene. Det blir bare en haug med objekter uten en "parrent" og alt blir som en stor json fil, ikke en json med forskjellige "kategorier".
Har tenkt på en løsning som jeg er ganske sikker på vil fungere da, men det vil være en veldig dårlig måte å utføre det på. Tenkte at jeg kan be brukerens klient spørre etter bare tabelet "other" når han er inne i "other" på appen. Men det tror jeg vil bli masse trafikk med tanke på at appen har 6000 aktive brukere..
Så det jeg egentlig hadde i tankene var at brukeren laster ned hele databasen og lagrer den i localstorage, deretter vil appen spørre serveren om det er en ny versjon tilgjengelig hver gang den starter. Slik at loaden blir betraktelig mindre.
Har dere noen tips eller en løsning på hva jeg kan gjøre for å oppnå dette?
Takk!