Skocz do zawartości
  • Ogłoszenia

  • Gdzie świętować urodziny GMCLANu   9 użytkowników zagłosowało

    1. 1. Gdzie świętować urodziny GMCLANu


      • Warszawa (bo w centrum)
      • Szczecin (bo tam mieszka Ranma i narodził się GMCLAN)

    Żeby zagłosować w tej ankiecie, prosimy się zalogować lub zarejestrować. Zobacz temat
Matrix_

Dwuwymiarowa tablica w jednej komórce mysql

Rekomendowane odpowiedzi

Matrix_    0

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 ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Matrix_    0
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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
gnysek    24

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Matrix_    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:

 

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×