Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]zapytanie SQL z dwóch tabel
morarz
post 13.04.2011, 09:58:33
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

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


Witam,

Jak mogę wykonać zapytanie z dwóch tabel ?

Bo chciałem oprócz danych z tabeli wyświetlić jeszcze obrazek, ale obrazek znajduje się w drugiej tabeli.

Mam tak :

tabela gi_awpcp_ads i gi_awpcp_adphoto

z pierwszej tabeli 'gi_awpcp_ads' wyciągam informację w ten sposób:

  1. <?php
  2. function awpcp_topics() {
  3. $connection = mysql_connect(localhost,"********","********") or die("Baza błąd");
  4. $db = mysql_select_db("**********",$connection) or die("Tabela błąd");
  5. $charset = mysql_client_encoding($connection);
  6. if ( $charset != 'utf8' ) {
  7. mysql_set_charset('utf8',$connection);
  8. }
  9. $sql = "select * from gi_awpcp_ads ORDER BY rand() LIMIT 5";
  10. $result = mysql_query($sql) or die("Zapytanie błąd");
  11.  
  12. for($x=1;$x<=5;$x++){
  13. $row = mysql_fetch_array($result);
  14. $row['ad_title'] = str_replace("ą","ą",$row['ad_title']);
  15. $row['ad_title'] = str_replace("ż","ż",$row['ad_title']);
  16. $row['ad_title'] = str_replace("ł","ł",$row['ad_title']);
  17. $row['ad_title'] = str_replace("ę","ę",$row['ad_title']);
  18. $row['ad_title'] = str_replace("ć","c",$row['ad_title']);
  19. $row['ad_title'] = str_replace("ń","ń",$row['ad_title']);
  20. $row['ad_title'] = str_replace("ź","ź",$row['ad_title']);
  21. $row['ad_title'] = str_replace("ś","ś",$row['ad_title']);
  22. $row['ad_title'] = str_replace("ć","ć",$row['ad_title']);
  23.  
  24. echo "<ul>";
  25. echo "<li><a href = \"http://www.***************/ogloszenia/ogloszenia/$row[ad_id]\"><img src ='http://***************/images/kropka.png'/> $row[ad_title]</a><br></li>";
  26. echo "</ul>";
  27.  
  28. }
  29. }
  30. mysql_close($connection);
  31.  
  32. ?>


I chciałem przed tekstem dodać zdjęcie, tabela gi_awpcp_adphoto wygląda tak, ad_id to numer id ogłoszenia :
key_id-- ad_id-- image_name------ disabled
12------ 7------ 1300574451_0.jpg------ 0


Jak mogę wykonać to zapytanie ? Bo nie wiem jak z dwóch tabel informacje wyciągnąć...
Z góry dzięki za odpowiedz.
Go to the top of the page
+Quote Post
ToAr
post 13.04.2011, 10:30:17
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 18
Dołączył: 7.04.2011
Skąd: Toruń

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


  1. SELECT a.ad_id, a.ad_title, b.image_name FROM gi_awpcp_ads AS a, gi_awpcp_adphoto AS b WHERE a.ad_id = b.ad_id
Go to the top of the page
+Quote Post
morarz
post 22.04.2011, 08:53:05
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

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


Robię tak i mam błąd zapytanie więc pewnie inaczej to zapytanie musi być wykonane :
  1. $sql = "SELECT a.ad_id, a.ad_title, b.image_name FROM gi_awpcp_ads AS a, gi_awpcp_adphoto AS b WHERE a.ad_id = b.ad_id ORDER BY rand() LIMIT 5";
  2. $result = mysql_query($sql) or die("Zapytanie błąd");
  3.  
  4. for($x=1;$x<=5;$x++){
  5. $row = mysql_fetch_array($result);
  6. echo "<ul>";
  7. echo "<li><a href = "http://www.xxxxxxxxxxxxx/gi/wp-content/uploads/awpcp/$row[ad_id]">$row[image_name]</a><a href = \"http://www.xxxxxxxxxxxx/gi/ogloszenia/ogloszenia/$row[ad_id]\"><img src ='http://xxxxxxxxxxxxx/gi/images/kropka.png'/> $row[ad_title]</a><br></li>";
  8. echo "</ul>";


W echo to pogrubione niebieski dodałem żeby wyświetlić zdjęcie. Wszystkie zdjęcia są w tym folderze awpcp.

Co robię źle ?

Ten post edytował morarz 22.04.2011, 08:53:54
Go to the top of the page
+Quote Post
nospor
post 22.04.2011, 08:58:31
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie: die("Zapytanie błąd")
a: die(mysql_error())


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Hpsi
post 22.04.2011, 09:13:26
Post #5





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


  1. $sql = "SELECT a.ad_id, a.ad_title, b.image_name FROM gi_awpcp_ads AS a LEFT JOIN gi_awpcp_adphoto AS b ON a.ad_id = b.ad_id ORDER BY rand() LIMIT 5";
  2. $result = mysql_query($sql) or die("Zapytanie b??d");
  3.  
  4. while($r = mysql_fetch_array($result) {
  5. echo "<ul>";
  6. echo '<li><a href = "http://www.xxxxxxxxxxxxx/gi/wp-content/uploads/awpcp/'.$r['ad_id'].'">'.$['image_name']</a><a href ="http://www.xxxxxxxxxxxx/gi/ogloszenia/ogloszenia/'.$row['ad_id'].'"><img src ="http://xxxxxxxxxxxxx/gi/images/kropka.png"/>'.$row['ad_title'].'</a><br></li>';
  7. echo "</ul>";}


Zamiast WHERE a.ad_id = b.ad_id ON albo jak ja to zrobiłem USING(ad_id)

Ten post edytował Hpsi+ 22.04.2011, 09:15:03


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
matino
post 22.04.2011, 09:22:46
Post #6





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

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


Tak na marginesie funkcja str_replace może przyjmować jako drugi i trzeci argument tablicę, więc sugeruję zrobić coś takiego:
  1. ...
  2. $search = array('ą', 'ć', ....);
  3. $replace = array('a', 'c', ....);
  4. $row['ad_title'] = str_replace($search, $replace, $row['ad_title']);
Go to the top of the page
+Quote Post
morarz
post 26.04.2011, 10:13:32
Post #7





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

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


Żadna z powyższych opcji nie działa.
Ja próbowałem w ten sposób :

  1. $sql = "select * from gi_awpcp_ads ORDER BY rand() LIMIT 5";
  2. $image_sql = "select * from gi_awpcp_adphotos where ad_id = " . $row['ad_id'] . " LIMIT 1";
  3. $Image_result = mysql_query($image_sql);
  4. $image_row = mysql_fetch_array($Image_result);
  5. $result = mysql_query($sql) or die("Zapytanie błąd");
  6.  
  7. for($x=1;$x<=5;$x++){
  8. $row = mysql_fetch_array($result);
  9. echo "<ul>";
  10. echo "<li><img src='http://xxxxxxxxx.xxx/gi/wp-content/uploads/awpcp/' . $image_row['image_name'] ./><a href = \"http://www.xxxxxxx.xxx/gi/ogloszenia/ogloszenia/$row[ad_id]\"><img src ='http://xxxxxxx.xxx/gi/images/kropka.png'/> $row[ad_title]</a><br></li>";
  11. echo "</ul>";


Ale nie działa. Jak mogę przerobić powyższy kod żeby zaczął działać ?

nospor napisał:
  1. nie: die("Zapytanie błąd")


OK jak się uporam z tym to dam tak. A jaka to różnica jest między tym co mam a tym co Ty proponujesz ?

Ten post edytował morarz 26.04.2011, 10:14:02
Go to the top of the page
+Quote Post
nospor
post 26.04.2011, 10:15:00
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
OK jak się uporam z tym to dam tak. A jaka to różnica jest między tym co mam a tym co Ty proponujesz ?

No przecież widać na pierwszy rzut oka.... zamiast nic nie mowiącego "Zapytanie błąd" dostaniesz tekst błędu który już coś będzie mówił.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
morarz
post 29.04.2011, 13:11:11
Post #9





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

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


Cytat
No przecież widać na pierwszy rzut oka.... zamiast nic nie mowiącego "Zapytanie błąd" dostaniesz tekst błędu który już coś będzie mówił.

A no tak ups smile.gif.

Hej HPSI,

Próbuję przerobić Twój kod żeby u mnie działało, ale nie działa.

Dlaczego używasz apostrofów ? U mnie tak nie działa.

Może to zapytanie jest coś nie tak bo mam błąd taki :

Table 'xxxxxxxxx.gi_awpcp_adphoto' doesn't exist wtf ?

Ten post edytował morarz 26.04.2011, 11:05:26
Go to the top of the page
+Quote Post
Hpsi
post 29.04.2011, 13:16:59
Post #10





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Po pierwsze nie używam apostrofów tylko gravisów smile.gif wyglądają podobnie ale to nie to samo ( ten przycisk znajdziesz w tym samym miejscu co tylde )
gravis: ` -> apostrof ' (jak widać jeśli sie przyjrzysz jest róznica miedzy nimi)
to zrób z gravisem zapytanie a nie w apostrofie to powinno ci odszukac smile.gif
a dlaczego je używam, hmm raczej to jest głownie kwestia przyzwyczajenia smile.gif

Ten post edytował Hpsi+ 29.04.2011, 13:19:18


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
morarz
post 19.05.2011, 11:23:29
Post #11





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

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


Ok ale wiesz po skopiowaniu tego Twojego kodu ciągle są apostrofy, te gravisy w których miejscach wstawiasz,tylko pomiędzy np: [`ad_id`] ?
  1. echo '<li><a href = "http://www.xxxxxxxxxxxxx/gi/wp-content/uploads/awpcp/'.$r['ad_id'].'">'.$['image_name']</a><a href ="http://www.xxxxxxxxxxxx/gi/ogloszenia/ogloszenia/'.$row['ad_id'].'"><img src ="http://xxxxxxxxxxxxx/gi/images/kropka.png"/>'.$row['ad_title'].'</a><br></li>';
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 12:26