Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Теперь рассмотрим возможность работы с закладкамиПользователь может просматривать список своих закладок. Удаление реализовано при помощи AJAX, при изменении он попадает в ту же форму, что и при добавлении. На рисунке 13 приведена форма списка закладок, а на рисунке 14 – форма добавления новой закладки. Рисунок 12 Форма списка закладок
Рисунок 13 Форма добавления новой закладки 16. Код просмотра списка закладок представлен ниже: <? session_start(); $guest = false; if (!isset($_SESSION['user_id'])) { $guest = true; } include 'mysql.php'; include 'bm_fns.php'; $id = (int)$_POST['id']; //echo $id; $page = (int)$_POST['page']; get_bms_links($id, $page, 3); ?> <div id="cont"> <script language="JavaScript" type="text/javascript"> <!-- $("document").ready(function() { $(".acts>a").click(function() { if ($(this).attr('t') == '1') return; if (!confirm("Удалить ссылку?")) return; var i = $(this).parent().parent().attr('id'); $.get("del.php", {'linkid': i }, function(data) { //alert(data); var s = "#"+i; //$("#bm").children().find(s).remove(); $.post("list.php",{id:<? echo $id;?>, page: <? echo $page;?>}, function(data){ $("#tt").html(data); //alert(data); }); }); //alert($(this).parent().parent().attr('id')); }); }); //--> </script> <table class="bmTable" id="bm"> <?php if ($page<=0) $page=1; $r = get_user_bms($id, $page); if ($r) { $n = mysql_num_rows($r); if ($n<1) echo 'Нет закладок'; else { $same_user = false; if ($id == $_SESSION['user_id']) $same_user = true; while ($m = mysql_fetch_array($r, MYSQL_NUM)) { echo "<tr id=\"$m[4]\">"; echo "<td><a href=\"$m[1]\">$m[0]</a><br />"; if (!empty($m[2])) echo nl2br(wordwrap($m[2], 40, "\n", 1))."<br />"; echo "<b>Категория:</b> $m[3]<br />Адрес: <a href=\"$m[1]\">".htmlspecialchars($m[1])."</a></td>"; if ($same_user) { echo "<td class=\"acts\"><a href=\"upd.php?linkid=$m[4]\" t=\"1\">Изменить</a><br /><a href=\"#\" t=\"0\">Удалить</a></td>"; } else { if (!$guest) echo "<td class=\"acts\"><a href=\"add_from.php?linkid=$m[4]\" t=\"1\">Добавить к себе</a></td>"; } echo '</tr>'; } } } ?> </table> </div> 17. Основные функции из подключаемого файла приведены далее: <?php unset($bm_count); $bm_count = 5; function get_bms_links($userid, &$page, $links) { global $bm_count; $q = "SELECT COUNT(*) FROM bookmark WHERE bookmark.user_id = $userid"; //echo $q; $r = mysql_query($q); $res = mysql_fetch_row($r); unset($pages); //echo $res[0]; $pages = ceil($res[0]/$bm_count); if ($page < 1) $page = 1; if ($page > $pages) $page = $pages; //echo $page; // links - число ссылок рядом if ($page > $links) $starttext = "<a href=\"$PHP_SELF?page=1&id=$userid\">«</a>"; else $starttext = ''; if ($page < ($pages-$links+1)) $endtext = "<a href=\"$PHP_SELF?page=$pages&id=$userid\">»</a>"; else $endtext = ''; $nearpages = ''; for ($i = $page-($links-1); $i <= $page+($links-1); $i++) { if (($i>0) && ($i<=$pages)) { $nearpages.="<a href=\"$PHP_SELF?page=$i&id=$userid\""; if ($i == $page) $nearpages.='style="font-weight:bold;"'; $nearpages.=">$i</a> "; } } echo '<div style="text-align:right;">'.$starttext.' '.$nearpages.' '.$endtext.'</div>'; } function get_user_bms($userid, $page) { global $bm_count; $l1 = ($page-1)*$bm_count; $q = "SELECT bm.title, bm.url, bm.descr, cat.name, bm.link_id from bookmark bm, categories cat WHERE bm.user_id = $userid AND cat.catid = bm.catid ORDER BY bm.url LIMIT $l1, $bm_count"; $r = mysql_query($q); //echo $q; if (!$r) return false; return $r; } function delete_bm($userid, $linkid) { //echo $userid; //echo "delete from bookmark where user_id={$userid} and url='$url'"; $linkid = (int)$linkid; $q = "select url from bookmark where user_id=$userid and link_id=$linkid"; $res = mysql_query($q); $u = mysql_fetch_row($res); if (!mysql_query("delete from bookmark where user_id=$userid and link_id=$linkid")) return false; return $u[0]; } function upd_bm($userid, $url, $title, $description, $cat_id, $linkid) { $title = mysql_real_escape_string($title); $title = htmlspecialchars($title); $description = mysql_real_escape_string($description); $description = htmlspecialchars($description); if ($url{(strlen($url)-1)} == '/') $url = substr($url,0,(strlen($url)-1)); $url = mysql_escape_string($url); $cat_id = (int)$cat_id; $linkid = (int)$linkid; $q = "UPDATE bookmark SET title='$title', url='$url', descr='$description', catid=$cat_id WHERE "; $q = $q."user_id=$userid AND link_id=$linkid"; //echo $q; if (!mysql_query($q)) return false; return true; } function add_bm($userid, $newurl, $title, $description, $cat_id) { //есть ли такая закладка $title = mysql_real_escape_string($title); $description = mysql_real_escape_string($description); $description = htmlspecialchars($description); $title = htmlspecialchars($title); //echo $newurl; // - тут все корректно if ($newurl{strlen($newurl)} == '/') $newurl = substr($newurl,0,strlen($url)-2); $newurl = mysql_real_escape_string($newurl); $cat_id = (int)$cat_id; $q = "select * from bookmark where user_id=$userid and url='$newurl'"; //echo $q; $r = mysql_query($q); if (mysql_num_rows($r) > 0) throw new Exception('Такая закладка уже есть!'); $q = "insert into bookmark values(NULL, $userid, '$title', '$newurl', '$description', $cat_id)"; if (!mysql_query($q)) throw new Exception('Не удается добавить закладку!'); return true; } function recommend_urls($userid, $popularity = 1) { $query="SELECT SUBSTRING_INDEX(a.url, '/', 3), count(a.url) FROM bookmark a WHERE a.user_id IN ( SELECT DISTINCT ( b2.user_id ) FROM bookmark b1, bookmark b2 WHERE b1.user_id = $userid AND b1.user_id!= b2.user_id AND SUBSTRING_INDEX(b1.url, '/', 3) = SUBSTRING_INDEX(b2.url, '/', 3) ) AND SUBSTRING_INDEX(a.url, '/', 10) NOT IN ( SELECT SUBSTRING_INDEX(url, '/', 10) FROM bookmark WHERE user_id = $userid ) GROUP BY SUBSTRING_INDEX(url, '/', 3) LIMIT 5";// having count(SUBSTRING_INDEX(url, '/', 3))>1"; //echo nl2br($query).'<br /><hr>'; $r = mysql_query($query); if (!$r) throw new Exception('Не удается найти закладки для рекомендации.'); if (mysql_num_rows($r)==0) throw new Exception('Не удается найти закладки для рекомендации.'); return $r; } ?>
|