Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql]Wyświetlanie poszczególnych rekordów z bazy
Forum PHP.pl > Forum > Przedszkole
wert1
Witam,
(podaję źródło mojej stronki)
  1. <?php 
  2. // Ta strona wyświetla adresy URL zapisane w bazie danych.
  3.  
  4. // Ustawienie tytułu strony i dołączenie nagłówka HTML.
  5. $page_title = 'Przeglądanie adresów URL';
  6. include ('./includes/header.html');
  7.  
  8. require_once ('../mysql_connect.php'); // Nawiązanie połączenia z bazą danych.
  9.  
  10. // Tworzenie formularza pozwalającego wybrać kategorię adresów URL
  11. echo '<div align="center">
  12. <form method="get" action="view_urls.php">
  13. <select name="type">
  14. <option value="NULL">Wybierz kategorię:</option>
  15. ';
  16.  
  17. // Pobieranie i wyświetlanie dostępnych kategorii.
  18. $query = 'SELECT * FROM url_categories ORDER BY category ASC';
  19. $result = mysql_query ($query);
  20. while ($row = mysql_fetch_array ($result, MYSQL_NUM)) {
  21. echo "<option value="$row[0]">$row[1]</option>
  22. ";
  23. }
  24.  
  25. // Zakończenie formularza.
  26. echo '</select>
  27. <input type="submit" name="submit" value="Przejdź">
  28. </form>
  29. </div>
  30. ';
  31.  
  32. // Pobieranie adresów URL należących do określonej kategorii (jeśli ją wybrano).
  33. // Sprawdzanie, czy typ jest liczbą całkowitą.
  34. if (isset($_GET['type'])) {
  35. $type = (int) $_GET['type'];
  36. } else {
  37. $type = 0;
  38. }
  39.  
  40. if ($type > 0) {
  41.  
  42. // Pobieranie nazwy bieżącego typu.
  43. $query = "SELECT category FROM url_categories WHERE url_category_id=$type";
  44. $result = mysql_query ($query);
  45. list ($category) = mysql_fetch_array ($result, MYSQL_NUM);
  46.  
  47. echo "<hr /><div align="center"><b>Łącza z kategorii: $category</b><br />
  48. <small>(Wszystkie łącza zostaną otwarte w oddzielnych oknach. Niedawno dodane łącza
     są wyświetlane jako pierwsze).</small></div>n"
    ;
  49.  
  50. $first = TRUE; // Inicjalizacja zmiennej.
  51.  
  52. // Wysyłanie zapytania do bazy danych.
  53. $query = "SELECT u.url_id, url, title, description FROM urls AS u, url_associations A
    S ua WHERE u.url_id = ua.url_id AND ua.url_category_id=$type AND ua.approved = 'Y' ORDER BY date_submitted DESC"
    ;
  54. $result = mysql_query ($query);
  55.  
  56. // Wyświetlanie wszystkich adresów URL.
  57. while ($row = mysql_fetch_array ($result, MYSQL_ASSOC)) {
  58.  
  59. // Jeśli jest to pierwszy rekord, trzeba utworzyć nagłówek tabeli.
  60. if ($first) {
  61. echo '<table border="0" width="100%" cellspacing="3" cellpadding="3" align="center">
  62. <tr>
  63. <td align="right" width="40%"><font size="+1">Łącze</font></td>
  64. <td align="left" width="50%"><font size="+1">Opis</font></td>
  65. <td align="center" width="10%"> </td>
  66. </tr>';
  67. $first = FALSE; // Pierwszy rekord został zwrócony.
  68. } // Koniec instrukcji IF $first.
  69.  
  70. // Wyświetlanie rekordów.
  71. echo " <tr>
  72. <td align="right"><a href="http://{$row['url']}" target="_new">{$row['title']}</a></td>
  73. <td align="left">{$row['description']}</td>
  74. <td align="center"><a href="edit_url.php?uid={$row['url_id']}">edytuj</a></td>
  75. </tr>n";
  76.  
  77. } // Koniec pętli while.
  78.  
  79. // Jeśli żadne rekordy nie zostały wyświetlone...
  80. if ($first) {
  81. echo '<div align="center">Obecnie nie ma żadnych łączy należących do tej kategorii.</div>';
  82. } else {
  83. echo '</table>'; // Zamykanie tabeli.
  84. }
  85.  
  86. } // Koniec instrukcji warunkowej $_GET['type'].
  87.  
  88. mysql_close(); // Zamknięcie połączenia z bazą danych.
  89. include ('./includes/footer.html');
  90. ?>

To jest strona do wyświetlania rekordów z bazy.

Moje pytanie polega na tym:
Jak zrobić żeby wyświetlał się tylko jedna opcja z tej kategori a nie wszystkie questionmark.gif?
Z góry dziękuje za pomoc
Wiktor Meissner
JaRoPHP
Cytat(wert1 @ 4.04.2007, 06:53:27 ) *
Jak zrobić żeby wyświetlał się tylko jedna opcja z tej kategori a nie wszystkie questionmark.gif?
Z tej, czyli której smile.gif.
Wystarczy w odpowiednim zapytaniu SQL (wybierającym opcje z 'tej' kategorii) dodać klauzulę LIMIT:
Cytat
The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must both be non-negative integer constants (except when using prepared statements).

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):
  1. SELECT * FROM tbl LIMIT 5, 10; # Retrieve rows 6-15

With one argument, the value specifies the number of rows to return from the beginning of the result set:
  1. SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows
In other words, LIMIT row_count is equivalent to LIMIT 0, row_count.
wert1
w tabeli mam pole url_id i każdy wpis ma inną wartość w tym polu
jak wpisać w php żeby wyświetlało tylko np. 1 (url_id) a nie wszystkie?questionmark.gif?
uli
  1. SELECT * FROM tbl WHERE url_id=1


tbl - odpowiednia tabela
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.