Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Newsy Powiązane
Forum PHP.pl > Forum > PHP
matt
Witam

Mam problem ze zrobienie czegoś takiego jak Newsy powiązanie. Nie wiem czy robie dobre zapytanie do mysql.

Robie coś takiego:

  1. <?php
  2. $sql = mysql_query(&#092;"SELECT * FROM news WHERE id_newsa='\".$_GET['id_newsa'].\"'\"); 
  3.  
  4. while($row = mysql_fetch_array($sql)) 
  5.  
  6. { 
  7. $tytul=$row['tytul'];
  8.  
  9. $sql2 = mysql_query(&#092;"SELECT * FROM news WHERE '\".(tytul LIKE %$tytul%).\"'\"); 
  10.  
  11. while($row2 = mysql_fetch_array($sql2)) 
  12.  
  13. { 
  14. $id_newsa=$row2['id_newsa'];
  15. $tytul2=$row2['tytul'];
  16. echo&#092;"&nbsp;-&nbsp;<a href=index.php?co=wiecej&id_newsa=$id_newsa>$tytul2</a><br>\";
  17. }
  18.  
  19. }
  20. ?>


Zwraca błąd typu
Cytat
Parse error: parse error in /srv/www/htdocs/web115/html/nowy_serwis/szablony/news.php on line 104


lub przy takim zapytaniu

  1. <?php
  2. $sql = mysql_query(&#092;"SELECT * FROM news WHERE id_newsa='\".$_GET['id_newsa'].\"'\"); 
  3.  
  4. while($row = mysql_fetch_array($sql)) 
  5.  
  6. { 
  7. $tytul=$row['tytul'];
  8.  
  9. $sql2 = mysql_query(&#092;"SELECT * FROM news WHERE tytul LIKE %$tytul%\"); 
  10.  
  11. while($row2 = mysql_fetch_array($sql2)) 
  12.  
  13. { 
  14. $id_newsa=$row2['id_newsa'];
  15. $tytul2=$row2['tytul'];
  16. echo&#092;"&nbsp;-&nbsp;<a href=index.php?co=wiecej&id_newsa=$id_newsa>$tytul2</a><br>\";
  17. }
  18.  
  19. }
  20.  
  21. echo&#092;"</font></td>
  22. </tr></table><br>&#092;";
  23. }
  24. ?>


taki błąd
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web115/html/nowy_serwis/szablony/news.php on line 106


Prosze o jakieś wskazówki itp
eS...
Podaj linie 104 i 106
Dabroz
10 linijka,
  1. <?php
  2. $sql2 = mysql_query('SELECT * FROM news WHERE tytul LIKE \"%'.$tytul.'%\"'); 
  3.  
  4. ?>
kszychu
Oto wskazówki:
1. naucz się czytać błędy
2. pierwszy błąd oznacza, że masz nieprawidłową składnię, i faktycznie, linia 10 na listingu: co to w ogóle jest?
3. drugi błąd, to sygnalizacja, że najprawdopodobniej w bazie nic nie znaleziono. No idziwne byłoby, gdyby znaleziono, przy takiej składni zapytania.
Oto poprawna składnia:
  1. <?php
  2. $sql2 = mysql_query(&#092;"SELECT * FROM news WHERE tytul LIKE '%\".$tytul.\"%'\");
  3. ?>
matt
nie wywala bledu ale kurde nie pokozuje newsów powiązanych tylko tytuł tego co sie czyta :/

sami zobaczcie

http://www.fcbayern.pl/nowy_serwis/index.p...ecej&id_newsa=2

hasło ppp
kszychu
Cytat(matt @ 2004-07-22 14:06:36)
nie wywala bledu ale kurde nie pokozuje innych newsów tylko tytuł tego co sie czyta :/

No to znaczy, że dobrze działa.
Oto przykład tego co robisz:
- wyszukujesz w bazie artykul o id = xx
- pobierasz jego tytuł, załózmy "ala ma kota"
- wyszukujesz w bazie wszystkie artykuly, ktore w tytule zawierają "ala ma kota"
czyli, gdybys mial w bazie artykuly o tytułach
1. "mała ala ma kota rasy mieszanej"
2. "ala ma małego kota"
3. "ala ma kota"
to które zostałyby znalezione? Ano nr 1 i 3.
matt
Patrz

News 1: Jeremies rezygnuje http://www.fcbayern.pl/nowy_serwis/index.p...ecej&id_newsa=2

News2: Jeremies test http://www.fcbayern.pl/nowy_serwis/index.p...ecej&id_newsa=6

i chodzi mi o to ze zawsze w Aktualności powiązane pokazuje tytuł newsa jaki przegladamy a nie inne co maja w tytule Jeremies

sadsmiley02.gif
kszychu
Nie zrozumiałeś mojego poprzedniego posta? On wyszuka ci newsy, które w tytule będą miały CAŁY tytuł newsa głównego, nieprzedzielony żadnymi znakami.
matt
aaa juz rozumiem

to jak zrobic zeby wyswietlal te inne newsy które bedą mialy podobny tytuł do tego co sie przeglada?
kszychu
No więc cały problem polega na określeniu tego "podobnego tytułu".
Można tak, że dzielisz tytuł na słowa i szukasz newsów, które mają jedno z tych słów w tytule:
  1. <?php
  2. $tutul = explode(&#092;" \", $tytul);
  3. $sql = &#092;"SELECT * FROM news WHERE\";
  4. foreach($tekst as $slowo) {
  5.  $sql .= &#092;" tytul LIKE '\".$slowo.\"' OR\";
  6. }
  7. $sql .= &#092;" 1\";
  8. ?>

Ale też nie jest to takie fajne jak masz w tytule jakieś nieznaczące słowa typu: i, lub, oraz, z, .......
Ja proponuję w tabeli news dodać pole slowa_kluczowe, przy edycji newsa dodawać tam słowa, które Ty uwarzasz za kluczowe i po tych słowach szukać powiązanych newsów.
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.