Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Wyświetlanie danych w wyszukiwarce
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich użytkowników tego forum smile.gif
Mam problem.
Stworzyłem sobie wyszukiwarkę własnej witryny i mam problem z wyświetlaniem wyników.
Wyświetla je dobrze, ale chciałbym, aby po znalezieniu wyników kliknąć w interesujący mnie kod i przeniesie mnie do odpowiedniego artykułu.
Lecz tutaj nasuwa się problem. Nie bardzo wiem co przypisać do zmiennej $adres i zmiennej $id
Mógłby prosić o pomoc?
Z góry dziękuje smile.gif

szukaj.php

  1. <?php
  2. include('functions/filtr.php');
  3. include('include/db.php');
  4. echo '<h2>Wyniki wyszukiwania</h2>';
  5. $_POST['wynik'] = trim(filtr($_POST['wynik']));
  6. if(empty($_POST['wynik']))
  7. {
  8. echo 'Formularz został wypełniony niepoprawnie!<br /> Nie można wyświetlić wyników wyszukiwania!';
  9. echo '<br /><br />';
  10. }
  11. else
  12. {
  13. $zapytanie = "SELECT home.tresc FROM home WHERE tresc LIKE '%{$_POST['wynik']}%'
  14. UNION SELECT kontakt.tresc FROM kontakt WHERE tresc LIKE '%{$_POST['wynik']}%'
  15. UNION SELECT oferta.tresc FROM oferta WHERE tresc LIKE '%{$_POST['wynik']}%'
  16. UNION SELECT o_mnie.tresc FROM o_mnie WHERE tresc LIKE '%{$_POST['wynik']}%'
  17. UNION SELECT portfolio.tresc FROM portfolio WHERE tresc LIKE '%{$_POST['wynik']}%'
  18. UNION SELECT portfolio.nazwa FROM portfolio WHERE nazwa LIKE '%{$_POST['wynik']}%'
  19. UNION SELECT portfolio.technologia FROM portfolio WHERE technologia LIKE '%{$_POST['wynik']}%'
  20. UNION SELECT portfolio.adres_strony FROM portfolio WHERE adres_strony LIKE '%{$_POST['wynik']}%'
  21. UNION SELECT reklama.tresc FROM reklama WHERE tresc LIKE '%{$_POST['wynik']}%'
  22. UNION SELECT skrypty.tresc FROM skrypty WHERE tresc LIKE '%{$_POST['wynik']}%'
  23. UNION SELECT skrypty.nazwa FROM skrypty WHERE nazwa LIKE '%{$_POST['wynik']}%'";
  24. $idzapytania = mysql_query($zapytanie);
  25. $oblicz = mysql_num_rows($idzapytania);
  26. echo'Znaleziono: '.$oblicz.'<br /><br />';
  27. for($x=0;$x<$oblicz;$x++)
  28. {
  29. $wiersz = mysql_fetch_array($idzapytania);
  30. echo $x+1;
  31. echo '. ';
  32. $wyraz = explode(' ',substr($wiersz['tresc'], 50));
  33. $wyrazy = substr($wiersz['tresc'], 0, 50).$wyraz[0];
  34. $wyraz = $wyrazy;
  35. $wyrazek = str_replace($array,'',$wyraz);
  36. //odpowiada za wyświetlanie
  37. echo '<a style="text-decoration: none;" href="/'.$adres.'/'.$id.'"><b>'.$wyrazek.'</b></a>';
  38. //koniec wyświetlania
  39. echo'<br /><br />';
  40. }
  41. }
  42. mysql_close($connect);
  43. ?>


Pozdrawiam,
adrianozo

Co tutaj może być źle? Nie wiem czemu ale nie przypisuje mi do adresu

  1. <?php
  2. include('functions/filtr.php');
  3. include('include/db.php');
  4. echo '<h2>Wyniki wyszukiwania</h2>';
  5. $_POST['wynik'] = trim(filtr($_POST['wynik']));
  6. if(empty($_POST['wynik']))
  7. {
  8. echo 'Formularz został wypełniony niepoprawnie!<br /> Nie można wyświetlić wyników wyszukiwania!';
  9. echo '<br /><br />';
  10. }
  11. else
  12. {
  13. $zapytanie = "SELECT tresc FROM home WHERE tresc LIKE '%{$_POST['wynik']}%'
  14. UNION SELECT tresc FROM kontakt WHERE tresc LIKE '%{$_POST['wynik']}%'
  15. UNION SELECT tresc FROM oferta WHERE tresc LIKE '%{$_POST['wynik']}%'
  16. UNION SELECT tresc FROM o_mnie WHERE tresc LIKE '%{$_POST['wynik']}%'
  17. UNION SELECT tresc FROM portfolio WHERE tresc LIKE '%{$_POST['wynik']}%'
  18. UNION SELECT nazwa FROM portfolio WHERE nazwa LIKE '%{$_POST['wynik']}%'
  19. UNION SELECT technologia FROM portfolio WHERE technologia LIKE '%{$_POST['wynik']}%'
  20. UNION SELECT adres_strony FROM portfolio WHERE adres_strony LIKE '%{$_POST['wynik']}%'
  21. UNION SELECT tresc FROM reklama WHERE tresc LIKE '%{$_POST['wynik']}%'
  22. UNION SELECT tresc FROM skrypty WHERE tresc LIKE '%{$_POST['wynik']}%'
  23. UNION SELECT nazwa FROM skrypty WHERE nazwa LIKE '%{$_POST['wynik']}%'
  24. UNION SELECT id FROM home
  25. UNION SELECT id FROM kontakt
  26. UNION SELECT id FROM oferta
  27. UNION SELECT id FROM o_mnie
  28. UNION SELECT id FROM portfolio
  29. UNION SELECT id FROM reklama
  30. UNION SELECT id FROM skrypty
  31. UNION SELECT adres FROM home
  32. UNION SELECT adres FROM kontakt
  33. UNION SELECT adres FROM oferta
  34. UNION SELECT adres FROM o_mnie
  35. UNION SELECT adres FROM portfolio
  36. UNION SELECT adres FROM reklama
  37. UNION SELECT adres FROM skrypty";
  38. $idzapytania = mysql_query($zapytanie);
  39. $oblicz = mysql_num_rows($idzapytania);
  40. echo'Znaleziono: '.$oblicz.'<br /><br />';
  41. for($x=0;$x<$oblicz;$x++)
  42. {
  43. $wiersz = mysql_fetch_array($idzapytania);
  44. echo $x+1;
  45. echo '. ';
  46. $wyraz = explode(' ',substr($wiersz['tresc'], 50));
  47. $wyrazy = substr($wiersz['tresc'], 0, 50).$wyraz[0];
  48. $wyraz = $wyrazy;
  49. $wyrazek = str_replace($array,'',$wyraz);
  50. echo '<a style="text-decoration: none;" href="/'.$wiersz['adres'].'/'.$wiersz['id'].'"><b>'.$wyrazek.'</b></a>';
  51. echo'<br /><br />';
  52. }
  53. }
  54. mysql_close($connect);
  55. ?>


TEMAT CLOSE
marck
Strasznie zamotałeś ja bym to zrobił tak:
echo"<table>";
$zapytanko=mysql_query("Select * FROM tabela_z_danymi WHERE pole1 LIKE %szukane% OR pole2 LIKE %szukane% itd.")

Z zapytania odczytuję ID pozycji znalezionego rekordu a dalej np. tak:
Kod
while($ln=mysql_fetch_array($zapytanko)){
$id=$ln['id']
$pole1=$ln['pole1'];
$pole2=$ln['pole2'];

echo"<tr><td><a href='detale.php?id='$id'>$pole1 $pole2</a></td></tr>\r\n";
}
echo"</table>";

A na stronie detali kleisz wypis łączony z detalami tylko tej, znalezionej pozycji, bo id przekazałeś metodą GET na stronę detale. Proste nie?
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.