Preluare date multiple JSON dintr-o coloana
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
Stefan
- Mesaje: 117
Preluare date multiple JSON dintr-o coloana
Salut, cum as putea prelua datele dintr-o coloana din baza de date care sunt in format JSON?
Valoarea din coloana `articole`
Cod: Selectaţi tot
{
"afisare":[
{
"afisare_articole":1,
"afisare_vizualizari":1,
"afisare_aprecieri":1,
"afisare_autor":1,
"afisare_data":1,
"afisare_comentarii":1,
"afisare_categorii":1,
"afisare_taguri":1,
"afisare_postari":1,
"afisare_search":1
}
],
"permitere":[
{
"permitere_aprecieri":1,
"permitere_comentarii":1
}
]
}
Codul pe care l-am folosit am observat ca imi returneaza doar datele de la "permitere", de ce?
Cod: Selectaţi tot
$array = json_decode($date_website['articole'], true);
$data=array();
foreach($array as $val){
foreach($val as $key=>$val){
$info[$key]=$val;
}
}
print_r($info);
MarPlo
Mesaje: 4343
Sunt doua probleme la codul php.
1. Variabila $val din al doilea foreach() o rescrie pe cea din primul.
2. Datele dorite nu sunt retinute in variabila definita initial, $data, ci in una care se auto-rescrie $info.
Incearca asa:
Cod: Selectaţi tot
$array = json_decode($date_website['articole'], true);
$data = array();
foreach($array as $val){
foreach($val as $k=>$v){
$data[$k]=$v;
}
}
var_export($data);
Stefan
Mesaje: 117
Tot la fel afiseaza, dar daca mut functia var_export in al 2-lea foreach imi afiseaza toate datele. Si am observat ca imi returneaza 2 array-uri, nu ar trebui sa fie un singur array?
Cod: Selectaţi tot
$array = json_decode($date_website['articole'], true);
$data = array();
foreach($array as $val){
foreach($val as $k=>$v){
$data[$k]=$v;
var_export($data);
}
}
Rezultat
Cod: Selectaţi tot
array (
0 =>
array (
'afisare_articole' => 1,
'afisare_vizualizari' => 1,
'afisare_aprecieri' => 1,
'afisare_autor' => 1,
'afisare_data' => 1,
'afisare_comentarii' => 1,
'afisare_categorii' => 1,
'afisare_taguri' => 1,
'afisare_postari' => 1,
'afisare_search' => 1,
),
)
array (
0 =>
array (
'permitere_aprecieri' => 1,
'permitere_comentarii' => 1,
),
)int(1)
Pana la urma vad ca pot prelua datele asa, dar nu inteleg de ce metoda de mai sus nu functioneaza
Cod: Selectaţi tot
var_dump($array['afisare'][0]['afisare_articole']);
MarPlo
Mesaje: 4343
Da, de fapt acel json contine trei array-uri imbricate; variabila $val de la primul foreach() contine un array bidimensional.
Incearca acest cod:
Cod: Selectaţi tot
$array = json_decode($date_website['articole'], true);
$data = array();
foreach($array as $val){
foreach($val[0] as $k=>$v){
$data[$k]=$v;
}
}
var_export($data);
Stefan
Mesaje: 117
Iti multumesc mult! Si cum as putea face update mai multor date dupa trimiterea formularului (folosesc un input de tip checkbox)? Momentan pentru a face update unei singure coloane foloseam comanda urmatoare
Cod: Selectaţi tot
mysqli_query($con, "UPDATE `setari` SET `articole` = JSON_SET(`articole`,'$.afisare[0].afisare_comentarii',123)");
MarPlo
Mesaje: 4343
Nu stiu, depinde de mai multi factori:
- structura tabelului,
- ce coloane, ce date si cu ce sa le modifici,
- ce formular ai pentru ele.
Daca nu sunt multe, cu zecile, mai bine faci update la fiecare in parte.
Subiecte similare
-
Afisare numar cel mai mare dintr o coloana
PHP - MySQL - XML
Primul mesaj
Bună Marplo
Vreau să extrag din coloan pret cel mai mare numar ca de exemplu 4444.
Mie imi afisează 54 în loc de 4444, dacă în loc de 4444 modific...
Ultimul mesaj
Am schimbat `pret` varchar(20) DEFAULT NULL in `pret` int(11) NOT NULL ca la tine si merge.
Multumesc
-
Eroare la incarcare json
JavaScript - jQuery - Ajax
Primul mesaj
Bună Marius
Cum rezolv să imi încarce tot fișierul .json
eoroare la
//fetch(endpoint)
//.then(blob => blob.json())
//.then(data =>...
Ultimul mesaj
Fisierul json de la acea adresa are peste 50 MB, e cam mare pentru preluare si procesare direct in pagina (client side) cu javascript.
A) Indicat...
-
Escapare ghilimele duble in sir JSON
JavaScript - jQuery - Ajax
Primul mesaj
Încerc să transform in obiect un șir JSON 'Hello” test ' care conține ghilimele care au escapate deja cu \.
JSON.parse('{ x : Hello \ test }')...
Ultimul mesaj
Trebuie sa escapezi backslash-ul \, astfel sa ai doua backslashes \\
let obj = JSON.parse('{ x : Hello \\ test }')
console.log(obj)
-
Lungime obiect JSON in JavaScript
JavaScript - jQuery - Ajax
Primul mesaj
Am convertit un tabel din baze de date într-un obiect JSON.
Aceasta este, în esență, un array bidimensional, fiecare înregistrare fiind pe cate un...
Ultimul mesaj
Poti sa folosesti Object.keys pentru a obține lista de chei din obiect ca un array, apoi obții cu 'length' lungimea din el:...
-
Aflare valoarea minima a proprietatii dintr-un obiect imbricat
JavaScript - jQuery - Ajax
Primul mesaj
Am un obiect imbricat in JavaScript care arata asa:
const yo = {
one: {
value: 0,
mission: 17},
two: {
value: 18,
mission: 3},
three: {...
Ultimul mesaj
Incearca sa combini metodele Object.values() si map() , ca in exemplu urmator:
const yo = {
one: {
value: 9,
mission: 17
},
two: {
value:...
-
Tip de conectare la baza de date
Discutii si Intrebari Diverse
Primul mesaj
care este noul tip de fisier pentru conectara la baza de date?
Ultimul mesaj
In prezent, tipurile de conectare la baza de date folosind php sunt PDO si MySQLi. PDO (PHP Data Objects) se poate folosi pentru conectare si la alte...