![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam chce porównać 2 tablice przy pomocy array_diff, jedna jest ok drugą pobieram z bazy przy pomocy:
I wszystko by było ok tyle że zwraca mi tablic wielowymiarową :/ i nie mogę ich porównać. Mam 2 opcje, albo żeby zapytanie zwracało tablicę jednowymiarową, albo ją jakoś przekształcić tylko jak? Zapytanie zwraca kategorie z jakich pochodzą przedmioty w sklepie, czyli jeśli klient zamówi przedmioty z kat id 1,2,3 to takie wyniki powinno zwrócić. Proszę o pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
O ile te tabele nie są na różnych typach baz to z pewnością da się zrobić porównanie w sqlu. Rzuć schematy tych tabel.
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat I wszystko by było ok tyle że zwraca mi tablic wielowymiarową :/ i nie mogę ich porównać. Pętlą wyciągaj. Szczerze, to nie wiem, w czym tkwi Twój problem... A i na przyszłość: pisz, że to PrestaShop czy coś takiego; nie każdy musi znać ten interfejs dostępu do danych. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak to prestashop zapomniałem napisać. Porównuje 2 tabele:
product zawiera id produktu i id_category_default czyli poszukiwane id kategorii order_detail to zamówienie, porównuje id zamówienia (obecnego jest zawsze jedno) i id produktu problemem może jest to że mogą wystąpić 2 jednakowe wartość jeśli ktoś kupi 2 przedmioty z tej samej kategorii? Jak zrobić żeby to zapytanie zwracało tablicę jednowymiarową z wartościami 1,3,5,6 etc Dodam że nie jestem ekspertem dopiero się uczę (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze rozumuję to chcesz dostać w wyniku id_kategorii z których klient zamówił towary (bez znaczenia ile poszczególnie w każdej kategorii). Jeśli tak to:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie o to chodziło wielkie dzięki działa idealnie. Jak to zrobiłeś. dlaczego działa twoje zapytanie?
I jeszcze ostatnie pytanko jak najprościej sprawdzić czy dwie tablice mają przynajmniej jeden element wspólny? edit// działa ale wciąż zwraca tablice wielowymiarową za szybko się ucieszyłem Ten post edytował duch4ever 3.08.2010, 15:32:12 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli są rekordy mające odpowiadające sobie po kolumnie 'pole' to da wynik >0, w przeciwnym razie 0. Do poczytania EDIT: W jakim sensie wielowymiarową? Wiele kolumn? Raczej być nie może skoro dajemy select na jedną. Ten post edytował everth 3.08.2010, 16:04:27 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie mamy tablicy z poszczególnymi id np 1,2,4 tylko dla każdego id osobną tablice wewnątrz tablicy.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czy chodzi o taką konstrukcję
Kod result[1] => array[0] =>wynik result[2] => array[0] =>wynik Jeśli tak to PDO się tak nie zachowuje. Możliwe że to wynik działania PrestaShopu i jego klasy. Najprościej jest przebudować tę tablicę
EDIT: Pierniczę głupoty. Oczywiście że PDO normalnie się tak zachowuje. Ten post edytował everth 3.08.2010, 18:29:08 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
No dokładnie. A jak to przebudowanie zastosować? Jak przebudować taką tablice na zwykłą?
$cat_in_order[0][id_category_default] $cat_in_order[1][id_category_default] takie odwołanie daje mi dostęp do wyniku Ten post edytował duch4ever 3.08.2010, 18:13:17 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj tak:
Lub jak powyższe zawiedzie to: ; |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem prostą pętla sprawdzającą każdą podtablicę czy zawiera dane id które mnie interesuje.
W moim przypadku działa to rozwiązanie, po kolei sprawdza a kiedy znajdzie to czego szuka przerywa. @everth dzięki za pomoc, i wszystkim innym (IMG:style_emoticons/default/smile.gif) pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 03:23 |