Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem ze sfromuowaniem zapytania
hmmm
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 0
Dołączył: 4.01.2005

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


mam problem ze sformuowaniem zapytania ...

mam dwie tabele:
1. kategorie
- id
- kategoria (np. 'niemiecki', 'programy')
2. download
- id
- kategoria (numery odpowiadajace dla kategorie.id)
- plik (nazwa pliku)
- nazwa (opis pliku)
- wielkosc

chcialbym teraz za pomoca najchetniej jednego zapytania, jezeli sie nie da, to dwoch (przypuszczam, ze petla w petli) wyswietlic to w takiej formie:

Kod
nazwa_kategorii1:
nazwa_pliku  |  opis_pliku  |  wielkosc_pliku
nazwa_kategorii2:
nazwa_pliku  |  opis_pliku  |  wielkosc_pliku
i tak dalej

czyli podzielic najpierw na kategorie i pod nazwa kazdej kategorii wyswietlic pliki nalezace do tej kategorii.
probowalem, ale nie wychodzi.
wszystko bylo dobrze, dopoki mialem jedna tabele - kategorie i zamiast wartosci liczbowych w kolumnie kategorie mialem nazwy kategorii.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 247
Pomógł: 0
Dołączył: 4.01.2005

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


to znaczy, to co podalem w pierwszym poscie - nazwy tabel i kolumn, to czytac nalezy bez tych nawiasow.
to, ze dobrze jest nazywac klucze obce i glowne np. id_kategorie, to wiem, no ale tak jakos sobie utrudniam zawsze (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

no ale zmienilem juz nazwy kolumn:
download:
- id
- kategoria
- nazwa
- opis
- wielkosc
kategorie:
- id
- kategoria

twoje zapytanie dziala i nawet je rozumiem, ale nie wiem, jak mam je wykorzystac, aby wyswietlic je juz na stronie w takiej formie, jakbym chcial.
poza tym, zwraca mi wszystkie rekordy, nie wiem, czy o to chodzi ...
w formie uproszczonej chodzi mi o cos takiego:
Kod
nazwa kategorii1
wyswietlenie wszystkich plikow z tej kategorii

nazwa kategorii2
wyswietlenie wszystkich plikow z tej kategorii

itd.
nie wiem, jak to zrobic w php.
w tabelke wsadzic to zaden problem, ale nie wiem, jak wyswietlic (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)


E D I T :
wymyslilem cos, tylko zastanawiam sie, czy mozna to jakos skrocic.
ja niestety nie mam zadnych pomyslow ...
  1. <?php
  2. include('katalog/plik.inc');
  3. $db = mysql_connect($host, $user, $pass);
  4. mysql_select_db($name, $db);
  5.  
  6. // zliczam ilosc rekordow w tabeli kategorie
  7. // i tworze tablice z id wszystkich kategorii
  8. $polecenie3 = mysql_query(&#092;"SELECT count(id), id FROM kategorie GROUP BY id ORDER BY kategoria\");
  9. while ($wynik3 = mysql_fetch_array($polecenie3, MYSQL_NUM)) {
  10. $download_ilosc = $wynik3[0];
  11. $kategorie[] = $wynik3[1];
  12. }
  13.  
  14. if ($download_ilosc > 0) {
  15.  
  16. echo &#092;"t\" . '<table id=\"download\" cellspacing=\"0\" cellpadding=\"0\">' . \"n\";
  17.  
  18. // funckja tworzaca linki do plikow
  19. function plik ($zmienna1, $zmienna2, $zmienna3) {
  20. return '<a href=\"download/' . $zmienna1 . '\">' . $zmienna2 . ' <span class=\"szary\">[' . $zmienna3 . 'KB]</span></a>';
  21. }
  22.  
  23. // wyswietlenie wszystkich rodzajow kategorii
  24. foreach ($kategorie as $pokaz) {
  25. // pobieram odpowiednia nazwe kategorii dla danego id
  26. $polecenie4 = mysql_query(&#092;"SELECT kategoria FROM kategorie WHERE id = $pokaz\");
  27. while ($wynik4 = mysql_fetch_array($polecenie4, MYSQL_NUM)) {
  28. $kategoria = $wynik4[0];
  29. }
  30. ?>
  31. <tr>
  32. <td class=\"td2\" colspan=\"2\">
  33. <?=$kategoria . &#092;"n\";?>
  34. </td>
  35. </tr>
  36. <?php
  37. // pobieram wartosci dla kazdego pliku
  38. // i wyswietlam je
  39. $polecenie5 = mysql_query(&#092;"SELECT nazwa, opis, wielkosc FROM download WHERE download.kategoria = $poka
    z\");
  40. $numer = 1;
  41. while ($wynik5 = mysql_fetch_array($polecenie5, MYSQL_NUM)) {
  42. ?>
  43. <tr>
  44. <td class=\"td1\">
  45. <?=$numer++;?>.
  46. </td>
  47. <td class=\"td2\">
  48. <?=plik($wynik5[0], $wynik5[1], $wynik5[2]);?>
  49. </td>
  50. </tr>
  51. <?php
  52. }
  53. }
  54.  
  55. echo &#092;"t\" . '</table>' . \"n\";
  56.  
  57. } else {
  58. ?>
  59. <div id=\"download\">
  60.  
  61. jak dotad brak wpisow w ksiedze gosci.
  62.  
  63. </div>
  64. <?php
  65. }
  66. ?>


Ten post edytował hmmm 5.04.2005, 19:13:04
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 06:43