Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP] Dynamiczne tworzenie podstron.
shtoc
post 29.09.2009, 14:07:49
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Witam chciałem zapytać jak generować dynamicznie podstrony.

Chodzi mi o to, że mam baze danych. np w jednej tabeli mamy alfabet
1 A
2 B
3 C
itd.
a w drugiej tabeli powiedzmy imiona i na dana Litere mają przypisane takie ID jak id konkretnej litery w poprzedniej tabeli
1 Alina 1
2 Adam 1
3 Ada 1
4 Bartek 2
itd.

i powiedzmy tworze stronę statyczną imiona.php na której wyświetlam cały alfabet.
i chciałbym klikając na daną literę żeby otwierała się nowa podstrona z imionami np. na litere "A"

Można by było stworzyć 20 kilka podstron typu a.php i tam wyświetlać imiona i na imiona.php zrobić odnośnik do tej podstrony. Ale chciałbym żeby to było robione bez tworzenia tych podstron statycznie.

Może ktoś coś podpowiedzieć questionmark.gif
Go to the top of the page
+Quote Post
Spawnm
post 29.09.2009, 14:16:31
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Poczytaj o stronicowaniu (LIMIT) i pobieraniu danych z bazy z warunkami (where)
Go to the top of the page
+Quote Post
shtoc
post 29.09.2009, 14:18:08
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


wiem co to jest stronicowanie.

Ale nie chodzi mi o dzielenie strony tylko żeby się tworzyła nowa z wynikami powiązanymi wyborem na stronie statycznej.
Go to the top of the page
+Quote Post
Spawnm
post 29.09.2009, 14:20:12
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




no to jak masz <a href='imiona.php?id=2'>b</a>

i w imiona.php

dajesz
  1. $id=(int)$_GET['id'];
  2. $sql="select * from imiona where litera_id=$id ";
Go to the top of the page
+Quote Post
alegorn
post 29.09.2009, 14:21:27
Post #5





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


zacznij pisac w php...
a wlasciwie od nauki jak i co dziala.. to o co pytasz - jest podstawa zrozumienia dzialania skryptow server side
ksiazka, tutoriale, manual...

w tej chwili moglbym ci algorytm podac, o ile bedziesz umial rozwinac..

1. pobieram liste pierwszych liter imion z tabeli -> wyswietlam
2. przekazuje id pierwszej litery -> wyswietlam imiona zaczynajace sie na ta litere


technologie - html, php(lub cos podobnego), sql (lub jakis inny interfejs do bazy danych)

da sie to zrobic na jednej tabeli, i jednym pliku...


Go to the top of the page
+Quote Post
shtoc
post 29.09.2009, 14:50:40
Post #6





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  4. <meta name="keywords" content="" />
  5. <meta name="description" content="" />
  6. <link href="default.css" rel="stylesheet" type="text/css" />
  7. </head>
  8.  
  9. <div id="wrapper">
  10.  
  11. <!-- start header -->
  12. <div id="header">
  13. <div id="menu">
  14. <ul>
  15. </ul>
  16. </div>
  17. </div>
  18. <!-- end header -->
  19.  
  20. <div id="logo">
  21. </div>
  22.  
  23. <!-- start page -->
  24. <div id="page">
  25. <!-- start content -->
  26. <div id="content">
  27. <div class="post">
  28. <h1 class="title">Wybierz Litere</h1><br /><br /><hr />
  29. <div class="entry">
  30. <p>
  31. <?php
  32.  
  33. set_time_limit(0);
  34. $pol=mysql_connect('', '', '') or die('Błąd połączenia: '.mysql_error());
  35. mysql_selectdb('') or die('Błąd wyboru bazy: '.mysql_error());
  36. mysql_query("SET NAMES utf8");
  37.  
  38.  
  39. $query = 'SELECT * FROM `litery`';
  40. $roww = mysql_query($query);
  41. while ($row = mysql_fetch_array($roww))
  42. {
  43. $litera=mysql_escape_string($row['litera']);
  44. $id=mysql_escape_string($row['id']);
  45.  
  46. ?>
  47.  
  48. <td>-> <a href="/<?php echo $id ?>"><?php echo $litera; ?></a></td><br />
  49.  
  50.  
  51. <?php } ?>
  52. </p>
  53.  
  54. </div>
  55. </div>
  56. </div>
  57. <!-- end content -->
  58. <!-- start sidebar -->
  59. <div id="sidebar">
  60. <ul>
  61. <li id="search">
  62. <h2>Menu</h2>
  63. <ul>
  64.  
  65. </ul>
  66. </li>
  67. </ul>
  68. </div>
  69. <!-- end sidebar -->
  70. <div style="clear: both;"> </div>
  71. </div>
  72. <!-- end page -->
  73. <!-- start footer -->
  74. <div id="footer">
  75. <div id="footer-wrap">
  76. </div>
  77. </div>
  78. <!-- end footer -->
  79.  
  80. </div>
  81.  
  82. <div style="text-align: center; font-size: 0.75em;"></div></body>
  83. </html>
  84.  


Nie bardzo wiem jak to zastosować możesz powiedzieć jak urzyć tego

  1. $id=(int)$_GET['id'];
  2.  
  3. $sql="select * from imiona where litera_id=$id ";

żeby dało efekt questionmark.gif

Ten post edytował shtoc 29.09.2009, 15:01:32
Go to the top of the page
+Quote Post
Fafu
post 29.09.2009, 15:43:46
Post #7





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


  1. $litera = 'B';
  2. mysql_query("SELECT * FROM tabela WHERE imie LIKE '$litera%'");


--------------------
http://rafal.brzezinski.me - skrypty, tutoriale i inne.
Jeśli udało Ci się rozwiązać problem podziękuj osobom, które ci pomogły.
Go to the top of the page
+Quote Post
alegorn
post 29.09.2009, 15:56:01
Post #8





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


tak jak napisalem, mozesz spokojnie zrobic to na jednej tablicy (i bedzie o wiele bardziej odpowiadac prawdzie)

zapytanie do bazy:
  1. SELECT DISTINCT SUBSTRING(imie, 1, 1) AS lit, COUNT(SUBSTRING(imie, 1, 1)) AS ile FROM tabela GROUP BY lit


proste, prawdziwe i tresciwe
masz wszystkie litery oraz ilosc wystapien w bazie....

Ten post edytował alegorn 29.09.2009, 15:57:06
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: 10.05.2025 - 07:04