Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Wypisanie tabeli z połączeniem jeden do wielu
Aui06
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 27.03.2014

Ostrzeżenie: (0%)
-----


Witam

Czy ktoś z was wie jak połączyć ze sobą 2 tabele o powiązaniach jeden do wielu. Czyli 1 rekord z pierwszej tabeli jest powiązany z kilkoma z drugiej.

W pierwszej tabeli jest kilkaset wyników. Każdy musi zostać wyświetlony wraz d dodatkowymi polami.

Pola nie mogą się powtarzać a dodatkowe wartości mają zostać dopisane na końcu. Jeśli w drugiej tabeli były 3 wyniki do wypisania pierwszej dodaje 3 rekordy na końcu.

Druga tabela zawiera klucz obcy na podstawie którego można połączyć.

Próbowałam zrobić to w ten sposób

  1. $sqlla = sed_sql_query("SELECT pp_IdTowarS, tw_Id, GROUP_CONCAT(pp_Wartosc) as razem FROM tw__Towar w LEFT OUTER JOIN planer2_plus_tw_pola p on w.tw_Id=p.pp_IdTowarS
  2. WHERE w.tw_idGrupa IN (".sed_sql_prep($khfiltr).") GROUP BY pp_IdTowarS");
  3. while ($row7 = sed_sql_fetcharray($sqlla)) {
  4. $p[$row7['tw_Id']] = $row7['razem'];
  5. }
  6. foreach ($p as $key => $value) {
  7. $kategorias[$key] = implode(", ", $value);
  8. }


W efekcie tego otrzymałam stringa (aaa, 2, 1, , bbbbb, ccc). A potrzebuje zmienne na których mogła bym pracować.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Aui06
post
Post #2





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 27.03.2014

Ostrzeżenie: (0%)
-----


Ok. Chyba nie do końca możemy się porozumiemy.

- GROUP_CONCAT mam już w moim kodzie. Jak dodałam opcje z przecinkiem wyskoczył mi błąd. Z resztą z automatu dopisał mi się przecinek. (mój kod linijka 1)

- przekształcenie całości odpada to za dużo pracy

A czy nie można podzielić na części uzyskanego stringa a uzyskaną wartość zapisać do zmiennych?


Wiem że tego nie da się napisać w SQL. Nie wiem też zbytnio jak to napisać w PHP.

  1.  
  2. $count = count($wyniki);
  3. for($i = 0; $i < $count; $i++) {
  4. $wyniki[$i]['dodatkowe'] = explode(',',$wyniki[$i]['dodatkowe']);
  5. }


U mnie wypisuje wszystkie wyniki w jednej lini a że to pętla to mam całą kolumnę z takimi samymi wynikami.

To może mieć związek z ty że serwer nie obsługuje PHP 5.

Ogólnie mam sortowanie po każdym polu tak że po dodatkowych.

Nie wszystkie wpisy mają wszystkie dodatkowe pola, lub mają tylko część.

Dodatkowe pola są dynamiczne mogę je dodawać i usuwać.

Wyniki mają być zgrupowane.



Ten post edytował Aui06 7.04.2014, 14:19:53
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 21:26