Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql/php] Zapytanie w zapytaniu
Forum PHP.pl > Forum > Przedszkole
funky_beat
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?
Cysiaczek
Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole
maziak
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.
funky_beat
Dzięki smile.gif zrobiłem tak jak mi polecono

i działa guitar.gif

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