Skocz do zawartości

Dwuwymiarowa tablica w jednej komórce mysql


Matrix_

Rekomendowane odpowiedzi

Cześć :D

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 ?

Odnośnik do komentarza
Udostępnij na innych stronach

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?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

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:

 

$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 :)

Odnośnik do komentarza
Udostępnij na innych stronach

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:

 

$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 :)

Dzięki wielkie, ale już cały kod przepisałem z użyciem serialize :D

I chyba jest on najlepszy niż zabawa z implode :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...