Paul149
9.02.2015, 11:39:12
Witam chciałbym się zapytać jak mam połączyć 2 takie tabele ze sobą?
ID / Login / Hasło / Avatar / Admin /...
AID / Autor / opis / title/.../ Avatar 0 lub 1 /
interesuje mnie zapytanie które wyciągnie zdjęcia z tabeli usera do profilu. Pozdrawiam
Pyton_000
9.02.2015, 11:44:51
Tu każdy chce pilnie pomocy

Zmień nazwę tematu na jakąś bardziej odpowiednią i pokaż strukturę tabel i jakieś dane bo w tej chwili nie wiadomo co jest co i do czego.
Paul149
9.02.2015, 11:49:57
to jest mój 2 post

więc nie wiem jak zmienić temat
więc gdzie mam uderzyć?
nospor
9.02.2015, 11:54:45
Nie ma co z tego powodu szczerzyc zebow... Klikasz na EDYTUJ w pierwszym poscie i zmieniasz
Paul149
9.02.2015, 12:00:11
Więc tak czy ktoś mi tutaj pomoże?
Potrzebuję wyświetlić z tabeli zdjęcia zdjęcia sortowane po AID, zdjęcia przypisane do Loginu, z Avatarem = 1 który ma pole int(1)
Konta - ID / Login / Hasło / Avatar / Admin /...
Zdjecia AID / Autor / opis / title/.../ Avatar 0 lub 1 /
nospor
9.02.2015, 12:03:26
LEFT JOIN - patrz manual mysql
Paul149
9.02.2015, 12:07:33
czyli jak mam napisać te zapytanie? bo nie kumam juz
nospor
9.02.2015, 12:11:53
Masz uzyc LEFT JOIN. Napisalem, sprawdz w manuala jak. Tam masz opisane na przykladach
http://dev.mysql.com/doc/refman/5.0/en/join.html
Paul149
9.02.2015, 12:35:18
Dałem coś takiego
$photos = mysql_query("SELECT * FROM Zdjecia LEFT JOIN Konta ON Zdjecia.AID=Konta.Login WHERE `Autor` = '$_SESSION[nick] AND `Avatar` = '1' ORDER BY `AID` DESC");
<a href='
<? echo ($p['AID']); ?>' rel='lytebox'>
<img src='
<? echo ($p['AID']); ?>' class='big_mod' alt='' /></a>
<? } ?>
I nie działa
Pyton_000
9.02.2015, 12:38:06
No to super. Szkoda że nie powiedziałeś jaki błąd.
Linijkę z zapytaniem masz POZA znacznikami <?php
Paul149
9.02.2015, 12:42:10
Błąd jest taki
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/mznmnbcs/public_html/amithlon.pl/templates/topmodels/theme_profile.php on line 32
i linijka z zapytaniem jest w znacznikach <? php
nospor
9.02.2015, 12:44:03
Tu masz napisane jak wyswietlac bledy zapytan:
Temat: Jak poprawnie zada pytanieCo bledu to na pewno masz taki, ze nie zamknales apostrofu, ktory otworzyles dla wartosci AUTOR
Masz tez blad logiczny...
Zdjecia.AID=Konta.Login
po nazwie AID wnioskuje, ze ze jest tam ID a nie LOGIN
Paul149
9.02.2015, 12:52:37
Błąd: Query was empty
Więc co mam nie tak z tym kodem? może pomożecie sformułować zapytanie??
<?
$photos = mysql_query("SELECT * FROM Zdjecia LEFT JOIN Konta ON Zdjecia.AID=Konta.Login WHERE `Autor` = '$_SESSION[nick]' AND `Avatar` = '1' ORDER BY `AID` DESC"); <a href='
<? echo ($p['AID']); ?>' rel='lytebox'>
<img src='
<? echo ($p['AID']); ?>' class='big_mod' alt='
<? echo ($p['AID']); ?>' /></a>
<? } ?>
nospor
9.02.2015, 13:04:24

Dobra, to teraz przeczytaj z tamtego linku WERSJE DLA WYJATKOWO OPORNYCH
Cytat
Wersja dla wyjątkowo opornych
Jeśli macie kod w takiej postaci:
[PHP] pobierz, plaintext
mysql_query('jakieś zapytanie');
to macie ten kod zamienić na taki:
[PHP] pobierz, plaintext
$sql = 'jakieś zapytanie';
echo 'ZAPYTANIE:'.$sql;
mysql_query($sql) or die('BŁĄD:'.mysql_error());
Masz zmienic swoj pierwotny kod wg. tego schematu. Tym razem skup sie. To naprawde nie jest trudne...
Paul149
9.02.2015, 13:14:17
ZAPYTANIE:SELECT * FROM Zdjecia LEFT JOIN Konta ON Zdjecia.AID=Konta.Login WHERE `Autor` = '' AND `Avatar` = '1' ORDER BY `AID` DESCBŁĄD:Column 'Avatar' in where clause is ambiguous
o to i błąd więc co jest nie tak?
nospor
9.02.2015, 13:18:45
nie: `Avatar` = '1'
a: Zdjecia.`Avatar` = '1'
Pyton_000
9.02.2015, 13:19:20
Kolumna Avatar w WHERE nie jest jednoznaczna. Musisz dodać prefix w postaci nazwy tabeli albo Konta albo Zdjecia
Paul149
9.02.2015, 13:33:37
Kod
http://www.amithlon.pl/profil/4/Paul149.html
Pusto nie ma zdjęcia

haha obłęd
a o to kod
<?
$photos = mysql_query("SELECT * FROM Zdjecia LEFT JOIN Konta ON Zdjecia.AID=Konta.Login WHERE Zdjecia.`Autor` = '$_SESSION[nick]' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC"); <a href='/uploads/avatars/
<? echo ($p['AID']); ?>.jpg' rel='lytebox'>
<img src='/uploads/avatars/
<? echo ($p['AID']); ?>.jpg' class='big_mod' alt='
<? echo ($p['AID']); ?>' /></a>
<? } ?>
nospor
9.02.2015, 13:44:16
Zdjecia.AID=Konta.Login
Nie poprawiles tego a pisalem ci o tym. Czytasz co sie do ciebie pisze czy tylko po lebkach co drugie zdanie?
ps: skoro sie dobierasz bezposrednio do tabeli Zdjecia i nie potrzebujesz niz z tabeli usera, to juz w ogole nie wiem z czym miales problem... zwykly select bez LEFT JOIN
$photos = mysql_query("SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = '$_SESSION[nick]' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC");
I juz.
A jak nadal ci nie wyswietla zdjecia, znaczy ze warunek
Zdjecia.`Autor` = '$_SESSION[nick]' AND Zdjecia.`Avatar` = '1'
nie jest spelniony. Sprawdz
Paul149
9.02.2015, 13:48:48
Zdjecia.AID=Konta.ID zmieniłem i dalej to samo czyli pusto
Dalej to samo pusto
nospor
9.02.2015, 13:51:19
Zrob to
Cytat
ps: skoro sie dobierasz bezposrednio do tabeli Zdjecia i nie potrzebujesz niz z tabeli usera, to juz w ogole nie wiem z czym miales problem... zwykly select bez LEFT JOIN
$photos = mysql_query("SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = '$_SESSION[nick]' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC");
I juz.
A jak nadal ci nie wyswietla zdjecia, znaczy ze warunek
Zdjecia.`Autor` = '$_SESSION[nick]' AND Zdjecia.`Avatar` = '1'
nie jest spelniony. Sprawdz
I sprawdz jak wyglada wygenerowane zapytanie
Paul149
9.02.2015, 14:02:11
Dalej Pusto w zapytaniu
nospor
9.02.2015, 14:07:15
Miales ssprawdzic jak wyglda zapytanie..
echo "SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = '$_SESSION[nick]' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC";
Paul149
9.02.2015, 14:11:00
Tak jak tutaj
SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = '' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC
i nic więcej
nospor
9.02.2015, 14:12:01
O rety... wszystko trzeba palcem pokazac?
No nie widzisz:
Zdjecia.`Autor` = ''
ze jest puste? Znaczy ze $_SESSION[nick] nie zawiera nicku jak ci sie wydawalo...
Paul149
9.02.2015, 14:19:34
Coś jest nie tak, więc jak mam to teraz zrobić? może napisze na PW?
Boshi
9.02.2015, 14:25:04
Czytasz co się do ciebie pisze? ... Sesja jest pusta!
Paul149
9.02.2015, 14:27:11
właśnie bo nick sesji jest właśnie w tabeli z kontami... i dla tego muszę połączyć te 2 tabele w 1 i zapytaniem wyciągnąć wyniki na strone, innych pomysłów nie mam.
nospor
9.02.2015, 14:32:52
Rety... czy ty robisz wersje z LEFT JOIN czy nie, to do zapytania dane wpisujesz z
$_SESSION[nick]
a jak woł widac, ze tam nic nie ma....
Zrozum to wkoncu... sprawdz co zawiera całą Twoja sesja
print_r($_SESSION);
Paul149
9.02.2015, 14:39:10
Array ( [Zalogowany] => 1 [Nick] => Paul149 )
Array ( ) - wylogowany
nospor
9.02.2015, 14:39:56

Nick
nick
znajdz 10 roznic :/
Paul149
9.02.2015, 14:48:01
Nie taki efekt miał być.
nospor
9.02.2015, 14:50:27
A jaki efekt mial byc?
Poprawiles
$_SESSION[nick]
na
$_SESSION[Nick]
?
Paul149
9.02.2015, 14:51:27
to miało być tak jak wchodzisz na dane konto użytkownika nawet niezalogowany i masz widoczne jego zdjęcia i zdjęcie profilowe, a po zalogowaniu wyświetla mi na każdym koncie moje zdjęcia.
nospor
9.02.2015, 14:53:24
Kurcze... sam zaczales pobierac dane ludka z sesji wiec miej pretensje do siebie... Jak chciales pobierac dane kliknietego ludka, to wstawiaj tam nick kliknietego ludka. To ty wiesz, skad ten nick wziac. Z url?
Paul149
9.02.2015, 14:58:24
podpowiedz mi jak by takie zapytanie miało wyglądać? mniej więcej żebym mógł napisać.
nospor
9.02.2015, 14:59:36
Ty w ogole nie czytasz co sie do Ciebie pisze :/
Zapytanie się nie zmienia.... zmienia sie tylko to, skad bierzesz ten NICK...
Zamiast z :
$_SESSION[Nick]
masz go brać z URL czy skad ty go tam masz
Paul149
9.02.2015, 15:07:34
{
$profile = mysql_query("SELECT * FROM `Konta` WHERE `ID` = '$_GET[id]'"); $photos = mysql_query("SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = '$_GET[Nick]' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC");
}
Mam coś takiego tylko. Pomożesz?
nospor
9.02.2015, 15:09:30
$photos = mysql_query("SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = '$_GET[Nick]' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC");
No i super, teraz sobie wyswietl zdjecia, jak to wyswietlales pare postow wczesniej
Paul149
9.02.2015, 15:15:37
Pusto niestety nawet jak zmienie na
$_GET[ID], $_GET[Login], $_GET[Nick]
<?
$photos = mysql_query("SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = '$_GET[Login]' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC"); <a href='/uploads/avatars/
<? echo ($p['AID']); ?>.jpg' rel='lytebox'>
<img src='/uploads/avatars/
<? echo ($p['AID']); ?>.jpg' class='big_mod' alt='
<? echo ($p['AID']); ?>' /></a>
<? } ?>
nospor
9.02.2015, 15:17:44
Ty ciagle strzelasz.... zobacz co masz w $_GET i przestan strzelac :/
print_r($_GET);
b4rt3kk
9.02.2015, 15:18:06
Cytat(Paul149 @ 9.02.2015, 15:15:37 )

Pusto niestety nawet jak zmienie na
$_GET[ID], $_GET[Login], $_GET[Nick]
<?
$photos = mysql_query("SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = '$_GET[Login]' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC"); <a href='/uploads/avatars/
<? echo ($p['AID']); ?>.jpg' rel='lytebox'>
<img src='/uploads/avatars/
<? echo ($p['AID']); ?>.jpg' class='big_mod' alt='
<? echo ($p['AID']); ?>' /></a>
<? } ?>
Może pokaż co masz z var_dump($_GET)? Jak wygląda URL?
Paul149
9.02.2015, 15:23:08
z print_r mam coś takiego:
Array ( [id] => 10/adam )
a URL wygląda tak
<a href='/profil/<? echo ($v['ID']); ?>/<? echo ($v['Login']); ?>.html' class='modela' title='modelka'><img src='<? echo ($v['Avatar']); ?>' alt='modelka' /></a>
nospor
9.02.2015, 15:24:48
$zm = explode('/',$_GET['id']);
$nick = $zm[1];
I zmienną $nick masz wstawic zamiast swojego starego
$_SESSION[nick]
Paul149
9.02.2015, 15:44:10
Dalej pusto :/
Ok działa, dałem zmienną w złe miejsce, a w index.php? macie jakieś pomysły?
b4rt3kk
9.02.2015, 15:45:02
Cytat(Paul149 @ 9.02.2015, 15:39:05 )

Dalej pusto :/
Naucz się debugować swój kod, bo cały wątek się z grubsza do tego sprowadza. Czyli przede wszystkim wyświetl sobie zawartość zmiennych, jak i treść zapytania i jeśli coś się nie zgadza, to zastanów się z jakiego powodu i jak to poprawić.
nospor
9.02.2015, 15:52:33
Cytat
Ok działa, dałem zmienną w złe miejsce, a w index.php? macie jakieś pomysły?
Jakie znowu pomysly? Skoro ci dziala to o jakich pomyslach mowisz?
Paul149
9.02.2015, 15:56:44
Kod
http://www.amithlon.pl/
$profile = mysql_query("SELECT * FROM `Konta` ORDER BY ID DESC LIMIT 0, 16"); $photos = mysql_query("SELECT * FROM Zdjecia WHERE Zdjecia.`Autor` = 'Paul149' AND Zdjecia.`Avatar` = '1' ORDER BY `AID` DESC");
Ostatnie Zapytanie
nospor
9.02.2015, 16:00:38
Dobra, sluchaj, niech ktos inny sie z Tobą uzera, ja juz nie mam sił. I tak za duzo czasu zmarnowałem przez Twoj totalny brak myslenia.
Najpierw piszesz ze juz dziala, potem wstawiasz jakies zapytanie i weź sie człowieku domysl o co Tobie może chodzić...
b4rt3kk
9.02.2015, 16:03:18
A dlaczego ten profil wysypuje całą stronę?
http://www.amithlon.pl/profil/-10/dupa.html
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.