Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql][mdpro-cms] Link Wewnątrz Tabeli Do..., ... inf szczegółowych na temat rekordu.
qtchb
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 24.08.2004
Skąd: Poznań

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


Witam.

Mam w bazie kilka tabel. Na jednej stronie umieściłem tabelę (w sensie html tabelę) prezentującą zawartość tabeli bazy MySQL, konkretnie tabeli ksiązki.

W bazie jest też tabela autorzy, a między tabelą autorzy i ksiązki zachodzi relacja "wiele do wiele". Dlatego jest też tabela autorzy_ksiazek.

Chciałbym, aby pole tytuł na stronie było linkiem do strony ze szczegółowymi informacjami o danej książce. Na tej stronie szczegółowych informacji wyświetlane miałyby być wszystkie informacje z jednego rekordu tabeli ksiązki (czyli wszystkie pola: tytuł, wydawnictwo, rok itd), oraz tabeli autorzy_ksiazek (czyli lista wszystkich autorów).

Całość chodzi jako element serwisu opartego ne MdPro.

Podejrzewam, że w tabeli z listą książek jakieś pole (np. tytuł) musi być linkiem.

Ale jak powinien wyglądać kod strony szczegółowych informacji?
Lamer jestem, więc zapytam tak: czy jeśli użytkownik kliknie na polu tytuł tekst, który jest wpisany w bazie danych w odpowiednim polu rekordu, dla którego klucz podstawowy (id_ksiazki) wynosi X, to skrypt na stronie informacji szczegółowych będzie wykonywany dla X? Czy w tym skrypcie strony szczegółowej muszę jakoś zdefiniować, którego rekordu w tabeli ksiązki ma dane zaprezentować?

Chodzi mi generalnie o to, żeby po kliknięciu na link (tytuł książki dla której w bazie klucz główny jest równy X), skrypt wywoływany linkiem pobierał z MySQL dane dotyczące tylko X.

Kurde, jestem taki lamer, że nawet nie wiem, czy moje pytanie jest czytelne. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Pozdr.
Błazej Kucz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Riklaunim
post
Post #2





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


w obu tabelach musi być pole mające tę samą wartość dla danej książki. np ID lub tytuł
Go to the top of the page
+Quote Post
qtchb
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 24.08.2004
Skąd: Poznań

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


Cze!

Dzięki za odp

Wiem, o tym, ten warunek jest spełniony: w tabeli ksiazki jest pole o unikatowym nr (id_ksiazki), w tabeli autorzyksiazek id_autora jest przypisywane do konkretnego id_ksiazki.

Jeśli chodzi o SQL to wszystko jest ok. Mój problem polega na tym, że nie wiem jak wydobyć dane z bazy i zaprezentować przy uzyciu php na stronie.
Go to the top of the page
+Quote Post
Riklaunim
post
Post #4





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Jeżeli chcesz prosty sposób wyciągania wyników to użyj klasy ezSQL (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ma ładne readme a zapytania tworzy się bardzo łatwo....

1. dajesz zapytanie do listy książek. Tytuł jest linkiem typu index.php?id=$wynik- >kniga_id . później IF Isset _GET[id] i zapytanie do drugiej tabeli z WHERE id = $_GET[id] (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
tak w skrócie
Go to the top of the page
+Quote Post
bigZbig
post
Post #5





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Jeżeli odsyłacz do informacji szczegółowych o ksiazce bedzie wygladal tak:
  1. <?
  2. print'<a href=\"ksiazka.php?id_ksiazka='.$id_ksiazki.'\">'.$tytul.'</a>';
  3. ?>

To zapytania sql generujace szczegolowe informacje o danej knidze powinny wygladac tak:

  1. $query1="SELECT tytul, wydawnictwo, rok
  2. FROM Ksiazki WHERE id_ksiazki = $_GET[id_ksiazki]";
  3. //Zapytanie zwroci jeden rekord
  4.  
  5. $query2="SELECT a.imie, a.nazwisko
  6. FROM Ksiazki k, Autorzy a, AutorzyKsiazek ak
  7. WHERE a.id_autorzy=ak.id_autorzy AND ak.id_ksiazek=k.id_ksiazek; AND k.id_ksiazek = $_GET[id_ksiazki]";
  8. //Zapytanie zwroci n rekordow


Ten post edytował bigZbig 25.08.2004, 08:01:55
Go to the top of the page
+Quote Post
qtchb
post
Post #6





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 24.08.2004
Skąd: Poznań

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


Udało się, ale trochę inaczej, niż Ty to zrobiłeś.

Kod sql mam taki:

  1. $sql2 = "SELECT id_autora FROM k_autorzyksiazek WHERE id_ksiazki=$_GET[id_ksiazki]";
  2. $result2 = mysql_query($sql2, $con) OR die(mysql_error());
  3. $count = mysql_num_rows($result2);
  4.  
  5. $wiersz = mysql_fetch_array($result2);
  6. $query2 = "SELECT n_autor FROM k_autorzy WHERE id_autora=".$wiersz['id_autora'];
  7. FOR ($i = 1; $i < $count; $i++) {
  8. $wiersz = mysql_fetch_array($result2);
  9. $query2 .= " OR id_autora=".$wiersz['id_autora'];
  10. }
  11. $rekordy = mysql_query($query2) OR die(mysql_error());
  12.  
  13. $autorzy = '';
  14.  
  15. while ($record = mysql_fetch_array($rekordy)) {
  16. $autorzy .= $record['n_autor'].", ";
  17. }


Natomiast link wygląda tak (storna jest w cmsie):

  1. <?php
  2.  
  3. echo &#092;"<a href=\"modules.php?op=modload&name=Ksiazka&file=index&id_ksiazki=$id_ksiazki\"> $tytul_ksiazki </a>\";
  4.  
  5. ?>


Dzięki bardzo!

Błażej

Ten post edytował qtchb 26.08.2004, 08:11:29
Go to the top of the page
+Quote Post
scanner
post
Post #7





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Przeniesione: Skrypty obsługi baz danych => MySQL
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: 23.08.2025 - 04:49