Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Prosta wyszukiwarka
Forum PHP.pl > Forum > Przedszkole
konradinho
Witam.

Napisałem taki oto prosty skrypt wyszukiwarki. Ma ona za zadanie wyszukiwać piosenki w bazie danych. Wszystko jest ok, gdy wpisze nazwę piosenki, która znajduję się w bazie to wyświetli mi się link do niej, gdy nic nie wpiszę wyświetli mi się stosowny komunikat natomiast jak wpiszę błędną wartość, której nie ma w bazie to nie wyświetla się nic a chciałbym aby wyświetlał się komunikat, że nie ma takiej piosenki w bazie danych.
  1. if (isset($_POST['szukaj']))
  2. {
  3. if ($_POST['piosenka']=="")
  4. {
  5. echo "<pb>Nie odnaleziono piosenki w naszej bazie. Spróbuj podownie!</pb>";
  6.  
  7. } elseif ($_POST['piosenka'])
  8. {
  9. $zapytanie="tytul_utworu='".$_POST['piosenka']."'";
  10. }
  11. }
  12.  
  13. if (($_POST['piosenka']==""))
  14. {
  15.  
  16. } else {
  17. $dane=mysql_query("SELECT nazwa_artysty, tytul_utworu FROM artysta INNER JOIN utwor ON (artysta.id_artysty=utwor.id_artysty) where ".$zapytanie.";");
  18.  
  19. while ($wiersz=mysql_fetch_array($dane))
  20. {
  21. echo "<b><a href='plyta_sluchaj.php?tytul2=".$wiersz['tytul_utworu']."'>".$wiersz['tytul_utworu']."<a/> ".$wiersz['nazwa_artysty']."</b>";
  22.  
  23. }
  24. }


Dodam jeszcze, że próbowałem w warunku dać:
  1. if ($_POST['piosenka']=="" OR (mysql_num_rows($zapytanie)==0))

Ale to rozwiązanie całkowicie sypie mi już wyszukiwarkę.

Z góry dziękuję za wszelaką pomoc.
Pozdrawiam.
EdeusEx
Co to w ogóle za rozwiązanie?

  1. if (isset($_POST["szukaj"])) {
  2. if (empty($_POST["piosenka"])) {
  3. echo 'Podaj tytuł piosenki, aby kontynuować wyszukiwanie.';
  4. } else {
  5. $tytul = addslashes(strip_tags(trim($_POST["piosenka"])));
  6.  
  7. $query = mysql_query("SELECT nazwa_artysty, tytul_utworu FROM artysta INNER JOIN utwor ON (artysta.id_artysty=utwor.id_artysty) where tytul_utworu='".$tytul."'");
  8. if (mysql_num_rows($query)>0) {
  9. while ($data = mysql_fetch_assoc($query)) {
  10. echo "<b><a href='plyta_sluchaj.php?tytul2=".$data['tytul_utworu']."'>".$data['tytul_utworu']."<a/> ".$data['nazwa_artysty']."</b><BR/>";
  11. }
  12. } else {
  13. echo 'Nie znaleziono wyników dla szukanego tytułu utworu.';
  14. }
  15. }
  16. }
adam882
przykładowo:
  1.  
  2. $dane=mysql_query("SELECT nazwa_artysty, tytul_utworu FROM artysta INNER JOIN utwor ON (artysta.id_artysty=utwor.id_artysty) where ".$zapytanie.";");
  3. if(mysql_num_rows($dane)>0){ //edit
  4. while ($wiersz=mysql_fetch_array($dane))
  5. {
  6. echo "<b><a href='plyta_sluchaj.php?tytul2=".$wiersz['tytul_utworu']."'>".$wiersz['tytul_utworu']."<a/> ".$wiersz['nazwa_artysty']."</b>";
  7.  
  8. }
  9. }else{ echo 'nie ma takiej piosenki'; } //edit
  10.  
Wicepsik
  1. if($dane){ // czy zapytanie = true, czy sie powiodło czy nie
  2. // wyświetlasz dane
  3. }else{
  4. echo 'Brak piosenki';
  5. }
konradinho
Dzięki za pomoc.

Rozwiązałem to, a ściślej mówiąc rozwiązał to użytkownik EdeusEx w ten sposób:

  1. if (isset($_POST["szukaj"])) {
  2. if (empty($_POST["piosenka"])) {
  3. echo 'Podaj tytuł piosenki, aby kontynuować wyszukiwanie.';
  4. } else {
  5. $tytul = addslashes(strip_tags(trim($_POST["piosenka"])));
  6.  
  7. $query = mysql_query("SELECT nazwa_artysty, tytul_utworu FROM artysta INNER JOIN utwor ON (artysta.id_artysty=utwor.id_artysty) where tytul_utworu='".$tytul."'");
  8. if (mysql_num_rows($query)>0) {
  9. while ($data = mysql_fetch_assoc($query)) {
  10. echo "<b><a href='plyta_sluchaj.php?tytul2=".$data['tytul_utworu']."'>".$data['tytul_utworu']."<a/> ".$data['nazwa_artysty']."</b><BR/>";
  11. }
  12. } else {
  13. echo 'Nie znaleziono wyników dla szukanego tytułu utworu.';
  14. }
  15. }
  16. }
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.