Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL/PHP]Problem z przestawieniem tabeli(pivot), Czy wystarczy samo zapytanie czy raczej php
adamrd
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.01.2008

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


Witam

mam tabelkę o takiej strukturze

ID|NazwaTowaru|NazwaZdjecia|WielkośćZdjecia|NrZdjęciaTowaru|TypPliku
1 | t1 | zd1 | 1 | 1 | jpg
2 | t1 | zd2 | 2 | 1 | piktogram
3 | t1 | zd3 | 1 | 2 | jpg
4 | t2 | zd4 | 3 | 1 | bmp
5 | t3 | zd5 | 2 | 1 | piktogram
6 | t3 | zd6 | 1 | 2 | jpg
7 | t3 | zd7 | 3 | 2 | bmp
....
Pierwotna tabela posiada każde zdjęcie dopisane do kolejnego rekordu, NazwaTowaru ma różne ilości zdjeć w róznych wielkościach np.t1-3zdjęcia, t2-1zdjecie .

czy da się za pomocą samego zapytania wyciagnąć dane z tej tabeli do takiego formatu by przy określonym warunku wielkości zdjecia np. WielkośćZdjecia =1 by tabelka wyglądała tak

NazwaTowaru|NrZdjęciaTowaru=1|NrZdjęciaTowaru=2|NrZdjęciaTowaru=3 itd....
t1 | zd1 | zd3 |
t3 | | zd6 |

docelowo NazwaTowaru ma byc unikatowa a zdjecia dopisywane do kolejnych kolumn
nazwy zdjęć moga byc dopisywane do kolejnych kolumn wg. NrZdjęciaTowaru jak dla t3 lub w pierwsza wolną kolumne jak dla t1 to nie ma dla mnie znaczenia.

Pytanie jest takie czy wystarczy samo zapytanie do bazy czy jednak potrzeba będzie to w php napisac?
Go to the top of the page
+Quote Post
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


a dlaczego nie wystarcza ci rezultat w stylu:

t1 | zd1 |
t1 | zd3 |
t3 | zd6 |

??
Go to the top of the page
+Quote Post
adamrd
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.01.2008

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


Niestety nie wystarczy ponieważ zewnetrzny program obslugujący bazę pozwala na dodanie zdjęć jedynie w pliku gdzie indeks towaru jest unikalny a zdjecia są w 1 linijce rozdzielane przecinkiem. program jest w php kodowany ionCube więc nie da się nic tam zmienić.
Chyba najlepszym rozwiązaniem będzie zrobienie takigo pivota i zapisaniem tabelki później jako csv. tabela ze zdjęciami pochodzi z innej bazy danych i ma ponad 34000 rekordów więc ręczne przypisywanie zdjęć do towarów jest ostatecznością. towarów jest około 4500 i maja od 1 do 13zdjęć.

Problem rozwiązany za pomoca php po pobraniu danych z bazy oto fragment kodu którego wynik można prosto skopiowac do notatnika i przerobic na csv.

  1. <?php
  2. $results = mysql_query($query) or die(mysql_error());
  3. $tmp = null;
  4. while ($row = mysql_fetch_assoc($results)) {
  5. extract($row);
  6. if($tmp != $NazwaTowaru)
  7. {
  8. echo "
  9. ";
  10. echo $NazwaTowaru;
  11. echo ";";
  12. }
  13. echo $NazwaZdjecia;
  14. echo ";";
  15. $tmp = $NazwaTowaru;
  16.  
  17. }
  18. ?>


temat do zamknięcia.
Go to the top of the page
+Quote Post

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: 2.10.2025 - 18:39