IPB

Witaj Gościu ( Zaloguj | Rejestruj )

 
Reply to this topicStart new topic
Dwuwymiarowa tablica w jednej komórce mysql
Matrix_
post 22.12.2016 - 11:36
Post #1


Forum Veteran
*****

Wiek: 17 lat
Grupa: Użytkownicy
Postów: 378
Dołączył: 8.05.2010
Skąd: Częstochowa
Team: Szukam!

NeoInMatrix

Uploader
Ostrzeżenia:
(0%) -----


Cześć biggrin.gif
Zna ktoś może sposób na przechowanie 2 wymiarowej tablicy w komórce mysql?

Bo chcę przechować numer wybranej odpowiedzi i normalnie myślałem, że jak zrobię:
GML
$zmienna[5]=2; (jako numer odpowiedzi)

później

implode(",",$zmienna);
i wysyłka na serwer

To będzie działać i działało, ale coś się zmieniło w pewnym momencie i nie robi się [,,,,,,2] jeżeli nie odpowiadało się na inne pytania.

Więc jako alternatywę zamierzam zrobić:
GML
$zmienna = array('id'=>'5', 'odpowiedz'=>'2');

Ale nie wiem czy można do tego zastosować podwójne explodowanie.
Ktoś mógłby pomóc?

[edit]
albo da się jakos zamieniać puste miejsca w tablicy, aż do ostatniego wypełnionego wartościami 0 ?
Go to the top of the page
 
+Quote Post
post 22.12.2016 - 11:36
Post #





Wiek:



Uploader


Pani kontekstowa pokazuje swe wdzięki tylko w Valhalli lub wszędzie jeżeli nie jesteś zalogowany(a)! :3
Go to the top of the page
 
Quote Post
gnysek
post 23.12.2016 - 18:49
Post #2


Emerytowany Admin
************

Wiek: 29 lat
Grupa: Użytkownicy
Postów: 9,022
Dołączył: 2.06.2004
Skąd: Banino / Trójmiasto
Team: Gear-Studio

gnysek


Nagrody:
Najbardziej pomocny uzytkownik (CA 2011)

Uploader
Ostrzeżenia:
(0%) -----


serialize/unserialize - polecam, Magda Gessler.


--------------------
GMCLAN NA FACEBOOKU: facebook.com/GMCLAN

Aktualne gry w PlayStation Plus

Obecne Projekty:
[||||||||||] Word Memo - 35%
[||||||||||] Digy Digy Dig - 30% [on hold]
[||||||||||] Almora Origins - 50%
Go to the top of the page
 
+Quote Post
Matrix_
post 23.12.2016 - 23:07
Post #3


Forum Veteran
*****

Wiek: 17 lat
Grupa: Użytkownicy
Postów: 378
Dołączył: 8.05.2010
Skąd: Częstochowa
Team: Szukam!

NeoInMatrix

Uploader
Ostrzeżenia:
(0%) -----


CYTAT(gnysek @ 23.12.2016 - 18:49) *
serialize/unserialize - polecam, Magda Gessler.

Super, dzięki!
Zapomniałem o tym xD

A mam pytanko czy implode powoduje ze jeżeli miejsca 0,1,2 są wolne a dopiero 3 jest zajęte, to podczas tej operacji na pozycji 1 pojawia się to co na 3?
W sensie nie pozwala na jakiekolwiek puste miejsca?
Go to the top of the page
 
+Quote Post
gnysek
post 25.12.2016 - 11:59
Post #4


Emerytowany Admin
************

Wiek: 29 lat
Grupa: Użytkownicy
Postów: 9,022
Dołączył: 2.06.2004
Skąd: Banino / Trójmiasto
Team: Gear-Studio

gnysek


Nagrody:
Najbardziej pomocny uzytkownik (CA 2011)

Uploader
Ostrzeżenia:
(0%) -----


W PHP nie ma tak, że jak napiszesz $a[3] = 1;, to pola 0,1,2 się stworzą. To działa bardziej jak ds_map() w GameMakerze, lub inaczej mówiąc jak hasztablica. To znaczy, indeksy które nadajesz, wskazują na prawdziwe indeksy tablicy, dzięki czemu można też mieć indeksy literowe.
Zatem, jeśli nie napiszesz przynajmniej $a[0] = null, to tego elementu nie będzie.

Ale...

można zrobić tak:

KOD
$tablicaBezOdpowiedzi = array(0,0,0,0,0); // to samo co array(0=>0, 1=>1, 2=>2 ...
$tablicaOdpowiedzi = array(3 => 1);

$tablicaWypelnionaBrakujacymi = array_replace($tablicaBezOdpowiedzi, $tablicaOdpowiedzi);


I odzyskasz brakujące klucze smile.gif


--------------------
GMCLAN NA FACEBOOKU: facebook.com/GMCLAN

Aktualne gry w PlayStation Plus

Obecne Projekty:
[||||||||||] Word Memo - 35%
[||||||||||] Digy Digy Dig - 30% [on hold]
[||||||||||] Almora Origins - 50%
Go to the top of the page
 
+Quote Post
Matrix_
post 27.12.2016 - 15:28
Post #5


Forum Veteran
*****

Wiek: 17 lat
Grupa: Użytkownicy
Postów: 378
Dołączył: 8.05.2010
Skąd: Częstochowa
Team: Szukam!

NeoInMatrix

Uploader
Ostrzeżenia:
(0%) -----


CYTAT(gnysek @ 25.12.2016 - 11:59) *
W PHP nie ma tak, że jak napiszesz $a[3] = 1;, to pola 0,1,2 się stworzą. To działa bardziej jak ds_map() w GameMakerze, lub inaczej mówiąc jak hasztablica. To znaczy, indeksy które nadajesz, wskazują na prawdziwe indeksy tablicy, dzięki czemu można też mieć indeksy literowe.
Zatem, jeśli nie napiszesz przynajmniej $a[0] = null, to tego elementu nie będzie.

Ale...

można zrobić tak:

KOD
$tablicaBezOdpowiedzi = array(0,0,0,0,0); // to samo co array(0=>0, 1=>1, 2=>2 ...
$tablicaOdpowiedzi = array(3 => 1);

$tablicaWypelnionaBrakujacymi = array_replace($tablicaBezOdpowiedzi, $tablicaOdpowiedzi);


I odzyskasz brakujące klucze smile.gif

Dzięki wielkie, ale już cały kod przepisałem z użyciem serialize biggrin.gif
I chyba jest on najlepszy niż zabawa z implode smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 użytkownik(ów) przegląda ten temat (1 gości i 0 anonimowych użytkowników)
0 Użytkownicy:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2017 - 15:40