Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Newsy Powiązane
matt
post 22.07.2004, 13:56:55
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 12.08.2003
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
eS...
post 22.07.2004, 14:02:34
Post #2





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


Podaj linie 104 i 106


--------------------
Go to the top of the page
+Quote Post
Dabroz
post 22.07.2004, 14:02:57
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Poland, Płock

Ostrzeżenie: (0%)
-----


10 linijka,
  1. <?php
  2. $sql2 = mysql_query('SELECT * FROM news WHERE tytul LIKE \"%'.$tytul.'%\"'); 
  3.  
  4. ?>


Ten post edytował Dabroz 22.07.2004, 14:03:26


--------------------
Go to the top of the page
+Quote Post
kszychu
post 22.07.2004, 14:06:24
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
matt
post 22.07.2004, 14:06:36
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 12.08.2003
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


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

Ten post edytował matt 22.07.2004, 14:07:33
Go to the top of the page
+Quote Post
kszychu
post 22.07.2004, 14:10:39
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


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.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
matt
post 22.07.2004, 14:13:58
Post #7





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 12.08.2003
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kszychu
post 22.07.2004, 14:21:07
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


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.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
matt
post 22.07.2004, 14:23:27
Post #9





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 12.08.2003
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


aaa juz rozumiem

to jak zrobic zeby wyswietlal te inne newsy które bedą mialy podobny tytuł do tego co sie przeglada?
Go to the top of the page
+Quote Post
kszychu
post 22.07.2004, 14:31:10
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


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.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 08:57