Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> czy to mozna uproscic
ydy10
post 28.08.2006, 20:38:15
Post #1





Grupa: Zablokowani
Postów: 87
Pomógł: 0
Dołączył: 29.07.2006

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


  1. <?php
  2. $sql1 = "SELECT * FROM artykuly_c WHERE id='".$_GET['id']."'";
  3.  $wykonaj1 = mysql_query( $sql1 );
  4.  while( $artykuly = mysql_fetch_array ( $wykonaj1 ) )
  5.  {
  6.  $sqlbb = "SELECT * FROM artykuly_b WHERE id='".$artykuly['id_b']."'";
  7.  $wykonajbb = mysql_query( $sqlbb );
  8.  while ( $artykuly_b = mysql_fetch_array ( $wykonajbb ) )
  9.  {
  10.  $sql_a = "SELECT * FROM artykuly_a WHERE id='".$artykuly_b['id_a']."'";
  11.  $wykonaj_a = mysql_query( $sql_a );
  12.  while ( $artykuly_a = mysql_fetch_array ( $wykonaj_a ) )
  13.  {
  14. }
  15. }
  16. }
  17. ?>


czy mozna taki kod zastapic jednym zapytaniem, uproscic go ?
Go to the top of the page
+Quote Post
Zbłąkany
post 29.08.2006, 14:51:38
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

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


Oczywiście, że tak smile.gif , poczytaj o JOIN smile.gif .


--------------------
Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox
Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..."
Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL"
Go to the top of the page
+Quote Post
mike
post 29.08.2006, 16:14:25
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Chy tabele artykuly_a, artykuly_b, artykuly_c sa takie same?

Bo jeśli tak to zalecam przebudowę bazy danych, którą (jęśli sa takie same) projektował ktoś kto nie ma o tym zielonego pojęcia.
Go to the top of the page
+Quote Post
free
post 29.08.2006, 19:45:23
Post #4





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Mike_mech przyznam ze mam na swojej stronie wlasnie 3 tabelki o tej samej strukturze. Są oddzielne, bo dzieki temu jest wieksza przejrzystosc danych. Kazda zawiera od kilkudziesieciu do kilkuset rekordow w danej kategori.
Jakie korzysci bede miał gdy złączę je w całość ?

Ten post edytował free 29.08.2006, 19:46:00
Go to the top of the page
+Quote Post
SongoQ
post 29.08.2006, 20:36:45
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Jakie korzysci bede miał gdy złączę je w całość ?

To ze typem artykuly bedziesz mog zawezac dane.


--------------------
Go to the top of the page
+Quote Post
ydy10
post 29.08.2006, 22:49:28
Post #6





Grupa: Zablokowani
Postów: 87
Pomógł: 0
Dołączył: 29.07.2006

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


zupelnie inna jest struktura.
a(3 pola)i b(6pol) to sa kategorie
c(11 pol) - artykuly


a jak by wygladal w/w z wykorzystaniem JOIN questionmark.gif

Ten post edytował ydy10 29.08.2006, 22:49:53
Go to the top of the page
+Quote Post
SongoQ
post 30.08.2006, 04:54:27
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Np tak
  1. SELECT * FROM tabela1 LEFT JOIN tabela2 ON warunek LEFT JOIN tabela3 ON warunek


--------------------
Go to the top of the page
+Quote Post
free
post 31.08.2006, 11:45:20
Post #8





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Jezeli mam 3 tabele o tej samej konstrukcji, to jak wyswietlic dane z wszystkich 3 tabel o wspolnym warunku ?
Go to the top of the page
+Quote Post
SongoQ
post 31.08.2006, 13:13:26
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Zastosuj WHERE i podaj takie same id.


--------------------
Go to the top of the page
+Quote Post
free
post 10.09.2006, 15:46:51
Post #10





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


  1. <?php
  2. if(isset($_GET['page'])){
  3.  $page=$_GET['page'];
  4. if($page == 'szukaj'){
  5. $search=$_POST['search'];
  6.  $wyniki=explode(" ",$search);
  7.  $warunki=" (tytul LIKE '%$wyniki[0]%' || info LIKE '%$wyniki[0]%')";
  8. for ($i=1;$i<count($wyniki);$i++)
  9. {
  10. $warunki.=" and (tytul LIKE '%$wyniki[$i]%' || info LIKE '%$wyniki[$i]%')";
  11. }
  12.  $pytanie = "SELECT * FROM tabela1 WHERE $warunki UNION SELECT * FROM tabela2 WHERE $war
    unki 
  13.  UNION SELECT * FROM tabela3 WHERE $warunki ORDER BY id DESC ";
  14.  $result = mysql_query($pytanie);
  15.  $ile = mysql_num_rows($result);
  16. ?>

Wyrzuca mi błąd w ostatniej linijce. Co robię nie tak ?

Ten post edytował free 10.09.2006, 15:47:22
Go to the top of the page
+Quote Post
SongoQ
post 10.09.2006, 20:31:34
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Jaki blad i czy przypadkiem poprawnie zapytanie zbudowales ORDER BY? Wydaje mi sie ze do calosci powinno byc zastosowane


--------------------
Go to the top of the page
+Quote Post
free
post 12.09.2006, 12:56:39
Post #12





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Wywala błąd :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in szukaj.php " title="Zobacz w manualu php" target="_manual w ostaniej linijce.
Czyli coś nie tak jest w linijce
  1. $ile = mysql_num_rows($result);

Warunki są dobre. Do tej pory działało jak nie mialem polacznia UNION czyli
  1. $pytanie = "SELECT * FROM tabela1 WHERE $warunki ORDER BY id DESC
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: 18.06.2025 - 08:59