Dzisiaj odbyliśmy małą walkę z wysłaniem metodą POST tablicy wielowymiarowej. Problemem było to, że CURL konwertował tablicę typu:
do:
Najwyraźniej PHPowy CURL spłaszcza takie tablice, robiąc straszne zamieszanie :) Rozwiązanie jest dość banalne. Trzeba “ręcznie” spłaszczyć taką tablicę do formatu:
W ten sposób odebrane dane będą identyczne z tymi co wysłano.
Swego czasu miałem spory problem z rozwiązaniem problemu wyciągnięcia danych grupując i sortując jednocześnie.
Cały problem polegał na tym, że chciałem wyciągnąć najnowszego newsa z konkretnej grupy. Robiłem to mniej więcej tak:
Niestety wynik bywał opłakany, bo wyciągane były zazwyczaj newsy pierwsze z brzegu. Dlaczego? Otóż przed ORDERem następuje grupowanie. MySQL w tej sytuacji nie patrzy na to czy ma jakoś posortować dane, tylko najpierw grupuje, a potem coś tam próbuje posortować :)
Żeby rozwiązać ten palący problem spędziłem trochę czasu na poszukiwaniach w Sieci. Widziałem jakieś INNER JOINy z JOINami i innymi cudami. Rozwiązanie, które pokażę (a znalazłem przypadkiem :)) wykorzystuje podzapytanie. Całość wydaje się zgrabna i czytelna, chociaż przyznam, że nie sprawdzałem pod kątem wydajności.