Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql][mdpro-cms] Link Wewnątrz Tabeli Do...
Forum PHP.pl > Forum > Bazy danych > MySQL
qtchb
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. sad.gif sad.gif sad.gif

Pozdr.
Błazej Kucz
Riklaunim
w obu tabelach musi być pole mające tę samą wartość dla danej książki. np ID lub tytuł
qtchb
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.
Riklaunim
Jeżeli chcesz prosty sposób wyciągania wyników to użyj klasy ezSQL 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] smile.gif
tak w skrócie
bigZbig
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
qtchb
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
scanner
Przeniesione: Skrypty obsługi baz danych => MySQL
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-2024 Invision Power Services, Inc.