Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem łączeniem table
Forum PHP.pl > Forum > Przedszkole
zerosix
Witam,
borykam się z pewnym problemem.Otóż mam dwie tabelki:
comment : id,addid,text,user,data i pierwszafaza:id,nazwa,kwadrat,user,male,data
Próbuje pobrać całą tabele comment dorzucajac z tabeli pierwszafaza kwadrat.Probowalem w tej sposob ale wywala blad zlego zapytania. Probowalem tak:
  1. <?php
  2. include_once('db.php');
  3. $wynik = mysql_query("SELECT id,addid,user,kwadrat FROM comment LEFT JOIN pierwszafaza ON comment.addid = pierwszafaza.id ORDER BY DESC LIMIT 12");
  4. $znalezionych=@mysql_num_rows($wynik);
  5.  
  6.  
  7. echo "<table width='100%' border='0' cellspacing='2' cellpadding='0'><tr><td width='60'>";
  8. $i=1;
  9. while($r = mysql_fetch_assoc($wynik)){
  10. $rkwadrat = $r['kwadrat'];
  11. $rtext = $r['text'];
  12. $rid = $r['id'];
  13. #ruser= $r['user'];
  14.  
  15.  
  16. echo "<table width='100%' border='0' cellspacing='2' cellpadding='0'><tr><td width='60'>
  17. <div align='center' class='randthumb2' style='float: right;'>
  18. <a href='index.php?id=.$rid.'><img src='foto/kwadrat/$rkwadrat' border='1' /></a></div></td><td>
  19. <div align='left' style='padding-left: 5px;'>$rtext<br>
  20. <span class='style2'>Dodane przez.$ruser.</span></div></td></tr></table>
  21. ";
  22. if (is_int($i/4)) {
  23. echo "</tr><tr>";
  24. }
  25. ++$i;
  26. }
  27. $rest = 4-$i%4;
  28. for($i=1;$i<=$rest;++$i)
  29. {
  30. echo "<td></td>";
  31. }
  32. echo "</tr></table></div>";
  33.  
  34.  
  35. ?>


Podsunie ktos cos?
deLL
Jaki błąd?

Spr.
Kod
SELECT * FROM `comment` LEFT JOIN `pierwszafaza` ON `comment.addid` = `pierwszafaza.id` ORDER BY DESC LIMIT 12
zerosix
niestety dalej to samo
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\galery\1234.php on line 4

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\galery\1234.php on line 9
wookieb
Wrzuć zapytańie do phpmyadmina i podaj komunikat błędu. ZReszta kurde podstawy.
Temat: Jak poprawnie zadac pytanie
zerosix

MySQL zwrócił komunikat: Dokumentacja
#1064 - Something is wrong in your syntax obok 'DESC LIMIT 12' w linii 1

wookieb
No to po order BY zazwyczaj podaje sie nazwe kolumny po której się sortuje.
zerosix
dodałem i nic..wcześniej nawet całkiem usunałem to chyba nie to..
wookieb
No to pokaż co dodałeś.
Wrzuć wtedy to zapytanie ponownie do phpmyadmina i czekamy na komunikat błędu.
zerosix
MySQL zwrócił komunikat: Dokumentacja
#1054 - Nieznana kolumna 'comment.addid' w on clause
jak to mozliwe skoro kolumna istnieje?sprawdzalem 20 razy?
wookieb
Upewnij się jeszcze raz.
Sprawdź czy nazwa tego pola nie jest podana w ``
I NIE PODAŁEŚ ZAPYTANIA!
zerosix
SELECT * FROM `comment` LEFT JOIN `pierwszafaza` ON `comment.addid` = `pierwszafaza.id` ORDER BY `data` DESC LIMIT 12
MySQL zwrócił komunikat: Dokumentacja
#1054 - Nieznana kolumna 'comment.addid' w on clause

kurde sprawdzalem juz 1000 razy....
erix
  1. `comment.addid`

MySQL traktuje to jako nazwę pola, a nie tabela.pole. Zwróć większą uwagę na to, jak znaki akcentu wstawiłeś.
zerosix
zrobilem to dokladnie tak jak podpowiadal kolega powyzej...
jak sprawic aby mysql interpretowal to poprawnie?
wookieb
Wywalic te znaki
zerosix
ok dziala dzieki i sory za klopot

wybaczcie ale mam jeszcze jedno pytanie.smile.gif
Rozumiem ze laczac te dwie tabele i umieszczajac je w tablicy $wynik "otrzymuje"jedna duza polaczona tablice z wartosciami obydwu tabel.Mam jednak problem poniewaz $rkwadrat = $r['kwadrat']; nie odbiera wartosci.Musze pobrac dodatkowy argument w zapytaniu?
erix
Daj sobie ~var_dump na tę tablicę i będziesz miał wszystko jasne.
zerosix
dzieki koledzy:D

to jeszcze raz ja:)
wiem ze przynudzam ,ale mam jeszcze jeden problem ktory spedza mi sen z powiek.W tablica nie pobiera kolumny user

array(8) { ["id"]=> string(2) "18" ["idadd"]=> string(2) "18" ["user"]=> string(0) "" ["text"]=> string(12) "haaaaaaaaalo" ["data"]=> string(19) "2010-07-02 12:16:50" ["nazwa"]=> string(26) "foto/normal/a273193360.jpg" ["kwadrat"]=> string(27) "foto/kwadrat/c273193360.jpg" ["male"]=> string(25) "foto/thumb/.273193360.jpg" }

zapytanie dziala na pozostalych kolumnach:
SELECT * FROM comment LEFT JOIN pierwszafaza ON comment.idadd = pierwszafaza.id


co moze byc tego powodem?
wookieb
Tzn, że masz rekord odwołujący się do nie istniejącego użytkownika (nie mam pewności) albo też user o podanym id ma pustą wartość "user"
zerosix
8 z 10 rekordow w kolumnie ma inna wartosc niz zero.
wookieb
Nie ma to żadnego związku w tym co CI napisałem.
zerosix
a wszystkie odwolania wyrzucaja NULL dla usera

tez tak mysle,ale dalej nie rozumiem czemu to moze nie dzialac
wookieb
No to podaj strukturę tabel, dane w nich i zapytanie jakie wywołujesz.
zerosix
comment:
id idadd user text data
pierwszafaza
id nazwa user kwadrat male data

zapytanie :SELECT * FROM comment LEFT JOIN pierwszafaza ON comment.idadd = pierwszafaza.id

teraz zauwazylem ze w dwoch kolumnach mam kolumne o nazwie user . Jest jakas opcja na rozwiazanie tego problemu czy najlepiej poprostu zmienic nazwejednej z kolumn?
wookieb
Wypisać kolumny które chcesz pobrać
  1. SELECT comment.id, comment.user (itd) FROM comment LEFT JOIN pierwszafaza ON comment.idadd = pierwszafaza.id
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.