[mySQL] Kojarzenie podobnych treści

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Krzysztof Cieślak
Posty: 10
Rejestracja: ndz paź 06, 2002 10:53 am
Lokalizacja: Konin
Kontakt:

[mySQL] Kojarzenie podobnych treści

Post autor: Krzysztof Cieślak »

Mam bazę artykułów oraz osobną bazę ze zdjęciami do wcześniejszych tekstów. Obecnie zdjęcia kojarzone są z artykułami przy pomocy dodatkowego pola w bazie danych ze zdjęciami pt. "art", w którym znajduje się ID arta. Jest to mało efektywny sposób, nie tylko zewzględu na pracochłonność (niektóre teksty mają po 5 i więcej zdjęć), ale na błędy (zdjęcie nie może zostać przypisane do dwóch artykułów).

Myślałem nad nowym rozwiązaniem w postaci dodatkowego pola w bazie z artykułami o nazwie np. "foto" i umieszczeniu w niej identyfikatorów zdjęć oddzielonych przecinkiem. Później można by wartość takiego pola rozbić na pojedyńcze ID fotografii. Problem tylko, że ilość zdjęć dla artykułów rzadko jest taka sama co może spowodować problem przy rozbijaniu ciągu z przecinkami.

A Ty jak radzisz sobie z kojarzeniem treści na swojej stronie?
Wojciech Jurewicz
Przelotem
Przelotem
Posty: 274
Rejestracja: wt lip 22, 2003 11:29 pm
Lokalizacja: Mazury
Kontakt:

Re: [mySQL] Kojarzenie podobnych treści

Post autor: Wojciech Jurewicz »

Nie rozumiem dlaczego rozbijanie treści miało by byc problemem... Użyjesz do tego funkcji explode() i nie będzie problemu, wyjście które proponujesz jest oczywiście dobre.
Krzysztof Cieślak
Posty: 10
Rejestracja: ndz paź 06, 2002 10:53 am
Lokalizacja: Konin
Kontakt:

Re: [mySQL] Kojarzenie podobnych treści

Post autor: Krzysztof Cieślak »

Jednak sobie nie poradziłem :-(

Kod: Zaznacz cały

$photo = explode(",", $rekord[photo]);
Zmienna $rekord[photo] ma postać "12,45,69,23". Użycie funkcji explode () powinno spowodować powstanie tablicy o nazwie $photo. Jendak nie można się do niej odwołać przez nr elementu.
Jak zrobić, aby zmienna mająca postać "12,45,69,23" posłużyła do takiej postaci:

Kod: Zaznacz cały

function miniaturka($id)
Proszę nie sugerować się ilością liczb oddzielonych przecinkami, są do identyfikatory fotografii.
Wojciech Jurewicz
Przelotem
Przelotem
Posty: 274
Rejestracja: wt lip 22, 2003 11:29 pm
Lokalizacja: Mazury
Kontakt:

Re: [mySQL] Kojarzenie podobnych treści

Post autor: Wojciech Jurewicz »

Zrób to w ten sposób:

[php]<?php
$photo = explode(",", $rekord['photo']);
foreach($photo AS $id) {
miniaturka($id);
}
?>[/php]
Nie wiem po co było to function...

I używaj BBCode
ODPOWIEDZ