Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql/php] Zapytanie w zapytaniu
funky_beat
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 24.05.2007
Skąd: Bełchatów

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


Witam,
stworzyłem dwie tabele o nazwie MATERIAŁY z kolumnami: idMaterialu, NazwaMaterialu, idKategoriiMaterialu oraz KATEGORIEMATERIALOW z kolumnami: idKategoriiMaterialu, NazwaKategorii. Mój problem polega na tym, że proboje wyświetlić wybrany materiał z tabeli MATERIAŁY w taki sposób aby było widać wybranego NazwęMateriału oraz przypisaną do niego NazwęKategorii.
Zrobiłem taki skrypt:

  1. <?php
  2.  
  3. require_once ('baza.php'); // Połącz się z bazą danych.
  4.  
  5.  
  6. $IDmaterialu = intval($_REQUEST['id']);
  7.  
  8. $sql = "SET CHARSET latin2"; // Zmiana kodowania znaków w bazie danych.
  9.  
  10. echo "<h3 align=\"center\">Szczegółowe informacje o wybranym materiale</h3>";
  11.  
  12. // Utwórz zapytanie.
  13. $query = "SELECT * FROM materialy WHERE IDmaterialu='".$IDmaterialu."'";
  14. $result = @mysql_query ($query); // Wykonaj zapytanie.
  15. $num = mysql_num_rows ($result); // Ilu jest użytkownikow?
  16.  
  17. if ($result) { // Jeżeli zapytanie zostało wykonane poprawnie, pokaż rekordy.
  18.  
  19.  
  20. // Pobierz i pokaż wszystkie rekordy.
  21. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  22.  
  23.  
  24. $IDkategorii=$row[2];
  25. $querykat = mysql_query("SELECT IDkategorii, NazwaKategorii FROM kategoriematerialow WHERE IDkategor
    ii = '"
    .$IDkategorii."' ORDER BY NazwaKategorii") or die(mysql_error());
  26. $resultkat = @mysql_query ($querykat);
  27. $NazwaKategorii=$row['NazwaKategorii'];
  28.  
  29.  
  30. echo '<table align="center" cellspacing="2" cellpadding="6">
  31.  
  32. <tr><td align="left"><b>Nazwa materiału:</b></td><td align="right">'.$row[1].'</td></tr>
  33. <tr><td align="left"><b>Kategoria:</b></td><td align="right">'.$NazwaKategorii.'</td></tr>
  34.  
  35.  
  36. </table>';
  37.  
  38. }
  39.  
  40.  
  41. mysql_free_result ($result); // Zwolnij zasoby.
  42.  
  43. } else { // Jeżeli zapytanie nie zostało wykonane pomyślnie.
  44. echo '<p>Aktualnie nie ma żadnych materiałów.</p>';
  45. }
  46.  
  47. mysql_close(); // Zamknij połączenie z bazą danych.
  48. ?>
  49.  
  50. <p align="center"><input type="button" value="Wróć" onclick="history.go(-1);">



Czy ktoś będzie potrafił przerobić ten skrypt tak aby działał poprawnie?
Powód edycji: Dodaje tag /~strife/
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole
Go to the top of the page
+Quote Post
maziak
post
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

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


Cytat
MATERIAŁY z kolumnami: idMaterialu, NazwaMaterialu, idKategoriiMaterialu oraz KATEGORIEMATERIALOW z kolumnami: idKategoriiMaterialu, NazwaKategorii. Mój problem polega na tym, że proboje wyświetlić wybrany materiał z tabeli MATERIAŁY w taki sposób aby było widać wybranego NazwęMateriału oraz przypisaną do niego NazwęKategorii.
Zrobiłem taki skrypt:


Witam, jeżeli dobrze zrozumiałem to zapytanie mogłoby wyglądać tak :

  1. SELECT materialy.*,kategorie.NazwaKategorii FROM materialy,kategorie WHERE idMaterialu='TWOJAZMIENNA' AND materialy.IDKategorii=kategorie.IDKategorii

Wtedy jedną zmienną odwołujesz sie do wszystkich kolumn z materiałów (materiały.*) a z kategorii wybrane jest tylko NazwaKategorii (kategorie.NazwaKategorii). Załatwiasz wtedy całość jednym zapytaniem.

Jak masz problemy ze zrozumieniem działania takiego zapytania, to zamiast w skrypcie powpisuj je bezposrednio do bazy (phpmyadminem najłatwiej, jeżeli masz) i zobacz co wyskakuje.

Ten post edytował maziak 15.08.2007, 12:58:34
Go to the top of the page
+Quote Post
funky_beat
post
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 24.05.2007
Skąd: Bełchatów

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


Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zrobiłem tak jak mi polecono

i działa (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)

---
Ale nie dodałeś tagu do tematu, tak
jak Cię proszono, nastęnym razem
dostosuj się do tego ; )
---
~strife
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 - 00:34