Маркиране на дума като линк

kitchenbg

Registered
Здравейте, имам следното питане ... как ще стане следното нещо:

имам записани продукти към дадена рецепта, и отделно в друга таблица имам записани продукти с техните особености ... един вид енциклопедия. Как може да стане така че като се отвори рецепта и ако даден продукт го има в енциклопедията да го направи на линк и съоетвтно като се натисне на него да го препраща към енциклопедията?

дано да сте ме разбрали ... Благодарско предварително.
 
Всичко, което виждаш е на теория, тъй като няма пуснат код от теб!

Предполагаме, че записите са ти в датабаза.

Разделяш елементите от рецептата един по един, ти си знаеш как и ги слагаш в един масив. ( Ако не можеш http://web-tourist.net/forum/viewtopic.php?t=126179 )

След като вече са сложени в масив-че въртиш 1 цикъл!

PHP:
for($i = 0; $i < count($elements); $i++) {
$sql = "SELECT * FROM enciklopedia_na_produkta WHERE produkt = '{$elements[$i]}'";
$query = mysql_query($sql);
$r = fetch_assoc($query);
echo "<a href='LINK_KYM_ENCIKLOPEDIATA'>".$r['informaciqta_ot_dbto']."</a>";
}

Може това да го направиш на функция и да го викаш.
Може предварително да си проверяваш елементите от рецептата.
Всичко това е с цел оптимизация и бързодействие.

Докато не публикуваш код, не можем да ти помогнем повече, но ако пък имаш код, то тогава всичко това би трябвало да ти помогне!

Поздрави!
 
продуктите от рецептата ги записвам в таблица като текст:
Код:
1 кг дребни патладжани, 1 с.л. сол, 1 кг захар, сокът от 3 лимона, настърганата кора от 1 лимон, 1 ч.л. настърган джинджифил, 12 зърна карамфил, 2 ч.л. канела.

енциклопедията е отделна таблица където продуктите са записани по име и съответно обяснение.

Горе долу ми стана ясно какво трябва да се направи, и това ще направи като линк само продуктите при които има съвпадение?
 
Ми това е логиката да.
Сега като гледам как си ги записал, най - удачното решение според мен ще е да направиш да излизат така:

1 кг. - сол, 2кг. - захар,
или
1кг - сол;
1кг - захар;

И с един регулярен израз да вземеш всичко м/у - и ,

В случая регулярния израз работи с твоя код.
Код:
preg_match_all("/(\s-\s|\s-|-\s|-)(.*?)(\.|\,)/ismu", $string, $final);

Това ти е регулярния израз. Масива $final[2] съдържа двете стойности, тоест $final[2][0] e сол, a $final[2][1] e захар!

PS

след като имаш $final[2] се случва заявката

Код:
for($i = 0; $i < count($final[2]); $i++) {
$sql = "SELECT * FROM `info` WHERE `produkt` = '{$final[2][$i]}'";
$query .... дъра бъра 
и си правиш да вика 
echo "<a href='LINK_KYM_INFOTO'>".$final[2][$i]."</a>";

Поздрави!
 

Back
Горе