Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Pobieranie danych z formularza do zapytania MySQL
Forum PHP.pl > Forum > PHP
Grzes1337
Witam. W ramach nauki i pożytku własnego, zacząłem pisać skrypt prostego Bug Trackera. Mam wszystko czego potrzebuje na sam początek. Dodaje BUGi do konkretnych projektów. Chce teraz zrobić sortowanie aby wyświetlał mi tylko BUGi przypisane do konkretnego projektu. Mam więc formularz:
  1. <?php
  2. echo '
  3. <form action="index2.php" method="post">
  4. <select name="project">
  5. ';
  6. ?>
  7. <!-- POBIERANIE LISTY PROJEKTOW DO MENU -->
  8. <?php require "bug-add_projects-menu.php"; ?>
  9.  
  10. <?php
  11. echo '
  12. </select>
  13. <input type="submit" value="Sortuj" />
  14. </form>';
  15. ?>

z któego pobieram zmienna dane przez zmienna project.
W poniższym pliku wybieram z MySQL nazwy projektów które trafiają do powyższego MENU
  1. <?php
  2. $list = mysql_query("SELECT * FROM projects")
  3. or die ('Bledne zapytanie');
  4. // ZLICZANIE ILOSCI WIERSZY
  5. $zlicz = mysql_num_rows($list);
  6. // WYSWIETLANIE WPISOW
  7. for ($i=1; $i <= $zlicz; $i++)
  8. {
  9. $row = mysql_fetch_assoc($list);
  10. $project_name = $row["PROJECT_NAME"];
  11. echo "<option>$project_name</option>";
  12. }
  13. ?>

a tutaj powinno działać wyświetlanie BUGów związanych z wybranym wyżej projektem:
  1. <?php
  2. require "menu.php";
  3. require "globals.php";
  4. dbconnect();
  5. require "bug-sort.php";
  6.  
  7. $project = $_POST['project'];
  8. echo "$project";
  9.  
  10. $sort = mysql_query('SELECT * FROM `bugtracker` WHERE PROJECT_NAME = '$project';')
  11. or die ('Błędne zapytanie');
  12. // ZLICZANIE ILOSCI WIERSZY
  13. $zlicz = mysql_num_rows($sort);
  14. // WYSWIETLANIE WPISOW
  15. for ($i=1; $i <= $zlicz; $i++)
  16. {
  17. $row = mysql_fetch_assoc($sort);
  18. $id_db = $row["id"];
  19. $tytul_db = $row["tytul"];
  20. $opis_db = $row["opis"];
  21. $status_db = $row["status"];
  22. $project_name_db = $row["PROJECT_NAME"];
  23.  
  24. echo"Bug #$id_db | $tytul_db | $opis_db | $project_name_db | $status_db <br />";
  25. };
  26. ?>

jednak nie działa gdyż w zapytaniu MySQL:
  1. $sort = mysql_query('SELECT * FROM `bugtracker` WHERE PROJECT_NAME = '$project';')

nie jest rozpoznawana zmienna $project. Wcześniej jest wyświetlana przez ECHO bez problemu. zapytanie nie zwraca nic. Nie ma błędu jedynie zwraca puste pola ( nic się nie wyświetla ).

Czy da się to jakoś zrobić? czy niestety muszę szukać innej metody?

Pozdrawiam, Grzegorz
kokers
na szybko. jesli chcesz wsadzić zmienną która ma być stringiem to samo zapytanie dawaj w cudzysłowiu, a zmienną w pojedynczym.

spróbuj:

$sort = mysql_query("SELECT * FROM `bugtracker` WHERE PROJECT_NAME = '$project'")


lub

$sort = mysql_query("SELECT * FROM `bugtracker` WHERE PROJECT_NAME LIKE '%$project%'")
Grzes1337
Dziękuje za pomoc. Nie wiem jak to robiłem ale wczoraj próbowałem rożnych kombinacji cudzysłów i apostrofów,

Dzięki!
Pozdrawiam, Grzegorz.
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.