Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Powtórzenia w wynikach
Forum PHP.pl > Forum > Przedszkole
Martin24
Jak uniknąć powtórzeń w wynikach wyszukiwania jeśli wyszukuję wedle trzech kryterów i wyniki się powtarzają?
ikioloak
Wklej kod. Bo to juz chyba 3 zalozony temat ktory dotyczacy twojej strony i gubie sie co jest gdzie i jak.
Martin24
  1. <?php
  2.  
  3. require_once ('../../mysql_connect.php');
  4. $tabela = &#092;"CREATE TABLE tmp (book_id VARCHAR(6) )\";
  5. $utworz = @mysql_query ($tabela) or die (mysql_error());
  6.  
  7. $query1 = &#092;"SELECT id FROM books WHERE autor LIKE '$search%' \"; 
  8. $result1= @mysql_query ($query1); 
  9. $row1= mysql_fetch_array($result1);
  10. $wstaw1 = &#092;"INSERT INTO tmp (book_id) VALUES ('{$row1[0]}')\";
  11. $akcja1 = @mysql_query ($wstaw1) or die (mysql_error());
  12.  
  13. $query2= &#092;"SELECT id FROM books WHERE tytul LIKE '$search%' \"; 
  14. $result2 = @mysql_query ($query2); 
  15. $row2 = mysql_fetch_array($result2);
  16. $wstaw2 = &#092;"INSERT INTO tmp (book_id) VALUES ('{$row2[0]}')\";
  17. $akcja2 = @mysql_query ($wstaw2) or die (mysql_error());
  18.  
  19. $query3 = &#092;"SELECT id FROM books WHERE opis LIKE '%$search%' \"; 
  20. $result3 = @mysql_query ($query3) or die (mysql_error()); 
  21. $row3 = mysql_fetch_array($result3);
  22. $wstaw3 = &#092;"INSERT INTO tmp (book_id) VALUES ('{$row3[0]}')\";
  23. $akcja3 = @mysql_query ($wstaw3) or die (mysql_error());
  24.  
  25. $odczyt = &#092;"SELECT books.autor , books.tytul FROM books, tmp WHERE books.id=tmp.book_id LIMIT 0,5\";
  26. $result_odczyt = @mysql_query($odczyt) or die (mysql_error());
  27. $row_count = mysql_num_rows($result_odczyt);
  28. if($row_count == 0) {
  29. $message ='<p>Brak wyszukiwanej pozycji!</p>';
  30. } else {
  31. while ($row = mysql_fetch_array($result_odczyt)) {
  32. // print itd
  33.  
  34. ?>
ikioloak
To co wstawilas, niestety nie bedzie dobrze dzialac. Zauwaz - po kazdym selectie wrzucasz do tabeli tmp TYLKO 1 wynik wyszukiwania. Dajmy na to jesli ksiazek danego autora bedzie kilka, to w tabeli tmp znajdzie sie tylko jedna.
Poza tym, to jest to troche poplatane wszystko.. Tam na koncu mozesz wrzucac sobie po kolei do pomocniczej tablicy i przy kazdym wrzucaniu sprawdzac czy taki element sie juz w niej znajduje - jesli tak - to nie wrzucac a jesli nie to wrzucac:) [malo po polsku wiem:)]
Martin24
A co zrobić, żeby wrzucić więcej niż jedną książkę?
strife
Ogólnie to można przez
  1. SELECT *
  2. FROM tabela ORDER BY kategoria

albo
  1. SELECT DISTINCT kategoria
  2. FROM tabela

wtedy nie będzie powtórzeń, tych samych kategori..
zbig13
Cytat(Martin24 @ 2005-08-08 00:29:24)
A co zrobić, żeby wrzucić więcej niż jedną książkę?

  1. INSERT
  2. INTO books (autor, tytul) VALUES ('autor1', 'tytul1'), ('autor2', 'tytul2'), ('autor3', 'tytul3') // itd...
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.