Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Stworzenie specyficznego zapytania do bazy danych lub filtrowanie w php, Zniwelowanie powielania się danych w wyniku (1 wiersz = 1 pozycja)
patrix007
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


Witam (IMG:style_emoticons/default/smile.gif)

Postanowiłem pogłębić nieco moją wiedzę w tej dziedzinie i zabrać się za coś odrobinkę trudniejszego.
Zabawa szła dobrze do pewnego momentu, już wyjaśniam o co mi chodzi.

Mam taką o to bazę danych (a raczej jej potrzebny tutaj fragment):

(IMG:http://members.multimania.co.uk/patriks007/forumPHP/widok.jpg)

Stworzyłem sobie takie oto zapytanie:

(IMG:http://members.multimania.co.uk/patriks007/forumPHP/zapytanie.jpg)

Które daje taki wynik w phpadminie:

(IMG:http://members.multimania.co.uk/patriks007/forumPHP/wynik.jpg)


Moje pytanie polega na tym, jak "unormalnić" ten wynik zapytania ?
Normalną sprawą jest, że funkcja w php mysqli_fetch_assoc listuje ten wynik w taki sam sposób j/w co utrudnia mi strasznie zabawę bo nie mam pomysłu jak to przefiltrować w PHP.
A może nie wpadłem na pomysł i da się to sprytnie poprawić w samym zapytaniu zaoszczędzając sobie sporo dłubania w PHP ?

Aby była całkowita jasność mojej wizji podam przykład wyniku jaki właśnie mnie interesuje:

(IMG:http://members.multimania.co.uk/patriks007/forumPHP/marzenie.jpg)

Bawiłem się troszeczkę GROUP_CONCAT ale moimi pomysłami realizuję powyższy plan co najwyżej połowicznie (IMG:style_emoticons/default/worriedsmiley.gif)

Proszę o rady/pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
patrix007
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


Mchl, oczywiście miałeś rację, jednak (wbrew logice) za żadne skarby nie chciało mi to działać.
Lekarstwem okazał się google, znalazłem stronę:
http://www.delphifaq.com/faq/databases/mysql/f1110.shtml
A na niej przykład:

Kod
create table t1 (a int);
create table t2 (b int);
create table t3 (c int);

select * from t1, t2 join t3 on t1.a=t3.c;
ERROR 1054 (42S22): Unknown column 't1.a' in 'on clause'

select * from t1, t2 left outer join t3 on t1.a=t3.c;
ERROR 1054 (42S22): Unknown column 't1.a' in 'on clause'

select * from t1 join t2 join t3 on t1.a=t3.c;
//.. this works ..

select * from t1 join t2 left outer join t3 on t1.a=t3.c;
//.. this works ..


Kod
I had the same problem and the fix is very simple.

All you have to do is adding parentheses to the implicit join after FROM

select * from (t1, t2) join t3 on t1.a=t3.c;
select * from (t1, t2) left outer join t3 on t1.a=t3.c;

It should work.

This is because MySQL is now in compliance with some new rules of SQL language. I have seen some other solutions but I believe this is the easier.



Zbawieniem okazało się wstawienie całej zawartości po FROM w nawiasy ()
błąd zniknął, listuje się poprawnie (IMG:style_emoticons/default/smile.gif)
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: 9.08.2026 - 01:25