Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]PObieranie danych z wielu tabel
jaca121212
post
Post #1





Grupa: Zarejestrowani
Postów: 256
Pomógł: 16
Dołączył: 21.12.2014

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


Tak jak w temacie mam kod który powinien zwracać wyniki z 4 różnych tabel ale nie działa brak komunikatu o błędzie nie wiem co jest nie tak
  1. $resultat = $polaczenie->query(sprintf("SELECT uzytkownicy.user, uzytkownicy.image, swiat.*, uzytkownicy.user, uzytkownicy.image, sport.*, uzytkownicy.user, uzytkownicy.image, rozrywka.*, uzytkownicy.user, uzytkownicy.image, polityka.* FROM uzytkownicy, swiat, sport, rozrywka, polityka where uzytkownicy.id=swiat.login and uzytkownicy.id=sport.login and uzytkownicy.id=rozrywka.login and uzytkownicy.id=polityka.login order by ('swiat.data, sport.data, rozrywka.data, polityka.data') desc"));

a jeśli wyciągam 2 tabele to działa
  1. SELECT uzytkownicy.user, uzytkownicy.image, swiat.*, uzytkownicy.user, uzytkownicy.image, sport.* FROM uzytkownicy, swiat, sport WHERE uzytkownicy.id=swiat.login AND uzytkownicy.id=sport.login ORDER BY swiat.DATA, sport.DATA DESC
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Baza danych na pewno zwróciła jakiś komunikat o błędzie, o ile do takiego w ogóle dochodzi. Co najwyżej po stronie aplikacji go nie obsługujesz - nie wiemy z czego korzystasz do obsługi połączenia, jeżeli PDO upewnij się, że ładnie rzuca wyjątkami: https://www.google.pl/webhp?sourceid=chrome...ow%20exceptions
2. Tak trochę poza tematem.... resultat - co?!
3. Kilka razy próbujesz pobrać te same kolumny (uzytkownicy.user, uzytkownicy.image), po co?
4. W klauzuli WHERE kilka razy masz warunek uzytkownicy.id = ABC.login. Na pewno nie porównujesz liczby do tekstu?
5. Jesteś świadomy, że w klauzuli ORDER BY podałeś tekst, a nie listę kolumn? A ewentualną informację o kierunku sortowania (DESC) powinieneś powtórzyć dla każdej z kolumn.

Ten post edytował Crozin 12.11.2015, 08:30:33
Go to the top of the page
+Quote Post
viking
post
Post #3





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


W order by wyrzuć `` wokół wielu kolumn na raz. Po co wybierasz po kilka razy uzytkownicy.user?
Go to the top of the page
+Quote Post
jaca121212
post
Post #4





Grupa: Zarejestrowani
Postów: 256
Pomógł: 16
Dołączył: 21.12.2014

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


To może to inaczej wytłumaczę abyście mnie dobrze zrozumieli mam 4 tabele (swiat,polityka,rozrywka,sport) w tej tabeli są takie same rekordy, tabela wyglada tak
  1. CREATE TABLE IF NOT EXISTS `swiat` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(30) COLLATE utf8_polish_ci NOT NULL,
  4. `tresc` text COLLATE utf8_polish_ci NOT NULL,
  5. `zdjecie` text COLLATE utf8_polish_ci NOT NULL,
  6. `data` datetime NOT NULL,
  7. `ip` varchar(30) COLLATE utf8_polish_ci NOT NULL,
  8. `temat` text COLLATE utf8_polish_ci NOT NULL,
  9. PRIMARY KEY (`id`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=67 ;

osobno z tabeli uzytkownicy pobieram zdjecie i id uzytkownika(wyswietlanie nazwy uzytkownika)
chce aby wyświetliło mi wysztkie wpisy z tych 4 tabel oraz zdjecie i nazwę uzytkownika,robiłem to na wzór tego zapytania
  1. SELECT uzytkownicy.user, uzytkownicy.image, swiat.* FROM uzytkownicy, swiat WHERE uzytkownicy.id=swiat.login ORDER BY swiat.DATA DESC

gdy analogicznie dodawałem te pozostałe 3 tabel to jeśli nie było w jednej z tabeli żadnego wpisu to mi nie wyświetlało nic.
Dlatego wam pisałem, że nie wyświetlał się żaden błąd.
Jak to zrobić?

Cytat(Crozin @ 12.11.2015, 08:29:57 ) *
1. Baza danych na pewno zwróciła jakiś komunikat o błędzie, o ile do takiego w ogóle dochodzi. Co najwyżej po stronie aplikacji go nie obsługujesz - nie wiemy z czego korzystasz do obsługi połączenia, jeżeli PDO upewnij się, że ładnie rzuca wyjątkami: https://www.google.pl/webhp?sourceid=chrome...ow%20exceptions
2. Tak trochę poza tematem.... resultat - co?!
3. Kilka razy próbujesz pobrać te same kolumny (uzytkownicy.user, uzytkownicy.image), po co?
4. W klauzuli WHERE kilka razy masz warunek uzytkownicy.id = ABC.login. Na pewno nie porównujesz liczby do tekstu?
5. Jesteś świadomy, że w klauzuli ORDER BY podałeś tekst, a nie listę kolumn? A ewentualną informację o kierunku sortowania (DESC) powinieneś powtórzyć dla każdej z kolumn.

1 Nie wyświela błędu
2 resultat wyświetlam w pętli while
3 Tak ponieważ z bazy uzytkownicy pobieram nazwę oraz zdjęcie
id | login |tresc| zdjecie| data| ip| temat |
67| 46 |tresc wiadomosci| 0 |2015-11-12 08:26:48| xx.xxx.xxx.xxx| test|
5 tak dawałem np tak swiat.data desc i tak dalej dla tych 3 pozostałych i nic to nie dało
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Jeśli tabele są takie same to:
SELECT * FROM swiat where login = cos
UNION
SELECT * FROM polityka where...

Poza tym dlaczego łaczysz po uzytkownicy.login nie po uzytkownicy id, które w dodatku nie ma indeksu.
Go to the top of the page
+Quote Post
jaca121212
post
Post #6





Grupa: Zarejestrowani
Postów: 256
Pomógł: 16
Dołączył: 21.12.2014

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


dałem to tak
  1. $resultat = $polaczenie->query(sprintf("SELECT uzytkownicy.user, uzytkownicy.image, swiat.* FROM uzytkownicy, swiat where uzytkownicy.id=swiat.login order swiat.data desc UNION SELECT uzytkownicy.user, uzytkownicy.image, rozrywka.* FROM uzytkownicy, rozrywka where uzytkownicy.id=rozrywka.login order rozrywka.data desc"));

i jest błąd
  1. Warning: mysqli_fetch_array() expects parameter 1 TO be mysqli_result, BOOLEAN given IN /virtual/d/a/darmoweogloszenia.ugu.pl/tematy_losowe.php ON line 44

tak wyglada baza uzytkownicy (IMG:http://iv.pl/images/77307282752834707497.png)
podglad tabeli
(IMG:http://iv.pl/images/66160552203890186414.png)
a tak wyglada baza swiat tak samo wyglada baza rozrywka sport i polityka (IMG:http://iv.pl/images/17123542837757583550.png)
podglad tabeli
(IMG:http://iv.pl/images/63566826574843567177.png)
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: 4.10.2025 - 17:29