|
|
|
สอบถามเกี่ยวกับ code เพิ่มจำนวน count ใน array คะ ไปได้ code ทำ tag cloud มาคะ แบบนี้นะคะ |
|
|
|
|
|
|
|
ไปได้ code ทำ tag cloud มาคะ แบบนี้นะคะ
Code (PHP)
<?php
$db_host = "127.0.0.1";
$db_user = "root";
$db_pass = "";
$db_name = "test";
mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db($db_name);
function tag_info() {
$result = mysql_query("SELECT * FROM tags GROUP BY tagName ORDER BY tagName DESC");
while($row = mysql_fetch_array($result)) {
$arr[$row['tagName']] = $row['count'];
}
//ksort($arr);
return $arr;
}
function tag_cloud() {
$min_size = 8;
$max_size = 28;
$tags = tag_info();
$minimum_count = min(array_values($tags));
$maximum_count = max(array_values($tags));
$spread = $maximum_count - $minimum_count;
if($spread == 0) {
$spread = 1;
}
$cloud_html = '';
$cloud_tags = array();
$step = ($max_size - $min_size)/($spread);
foreach ($tags as $tag => $count) {
$size = $min_size + ($count - $minimum_count)
* $step;
// $size = ($max_size + $min_size)/$spread;
$cloud_tags[] = '<a style="font-size: '. floor($size) . 'px'
. '" class="tag_cloud" href="http://127.0.0.1/content/' . $tag . '.html'
. '" title="\'' . $tag . '\' returned a count of ' . $count . '">'
. htmlspecialchars(stripslashes($tag)) . '</a>';
}
$cloud_html = join("\n", $cloud_tags) . "\n";
return $cloud_html;
}
$update_counter=$count+1;
$sql1="update $row set counter_page='$update_counter'";
$dbquery1=mysql_db_query($db_name,$sql1);
?>
<style type="text/css">
.tag_cloud
{padding: 3px; text-decoration: none;
font-family: verdana; }
.tag_cloud:link { color: #FF66CC; }
.tag_cloud:visited { color: #9900FF; }
.tag_cloud:hover { color: #FF66CC; background: #000000; }
.tag_cloud:active { color: #6699FF; background: #000000; }
div.wrapper{
position:absolute;
height:200px;
width:400px;
}
</style>
<div id="wrapper" class="wrapper">
<?php print tag_cloud(); ?>
</div>
ฐานข้อมูลนะคะ
Code
-- phpMyAdmin SQL Dump
-- version 3.1.3.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: May 21, 2010 at 03:07 PM
-- Server version: 5.1.33
-- PHP Version: 5.2.9
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `test`
--
-- --------------------------------------------------------
--
-- Table structure for table `tags`
--
CREATE TABLE IF NOT EXISTS `tags` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tagName` varchar(30) NOT NULL,
`count` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Dumping data for table `tags`
--
INSERT INTO `tags` (`id`, `tagName`, `count`) VALUES
(1, 'Tags cloud', 90),
(2, 'Tags cloud2', 96),
(3, 'tags5', 98),
(4, 'tags6', 92);
ตัวcodeใช้การได้ดีคะ แต่ว่าอยากให้มีการเพิ่มจำนวน count เวลาคลิ๊กคำนั้นๆ นะคะ (ในcodeไม่มีค่ะ)
เช่น คลิ๊ก tag6 จากเดิมที่มี count อยู่ 92 พอคลิ๊กไปแล้ว count จะเพิ่มเป็น 93 ประมาณนี้นะคะ
พอจะทราบวิธีมั้ยคะ (ลองทำดูแล้วปรากฎว่าไปเพิ่มเฉพาะ ตัวแรก "90" เป็น "91" แล้วก็เปลี่ยนทุกตัวเป็น "91" หมดเลยคะ T^T) ใครพอจะทราบวิธีทำบ้างคะ
ปล.ตัว code หาจากเว็บต่างประเทศคะ เป็น ฟรี code
ขอบคุณล่วงหน้านะคะ
Tag : - - - -
|
|
|
|
|
|
Date :
2010-05-21 14:23:24 |
By :
raharonee |
View :
1280 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sql1="update $row set counter_page='$update_counter' where id = รหัสของแทกที่เราต้องการ ";
|
|
|
|
|
Date :
2010-05-21 14:32:29 |
By :
itdekd |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณนะคะ จะลองเอาไปทำดู ได้ผลยังไงจะมาแจ้งให้ทราบอีกทีคะ
|
|
|
|
|
Date :
2010-05-21 15:24:08 |
By :
raharonee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษนะคะ
บรรทัดที่ 54 - 57 มันผิดน่ะคะ เป็นตัวที่ลองแล้วทำไม่ได้ ตัวที่ขึ้นตามตัวอย่างที่บอกไว้ จะเป็นตัวนี้นะคะ
ขอโทษจริงๆ คะ
Code (PHP)
<?php
$db_host = "127.0.0.1";
$db_user = "root";
$db_pass = "";
$db_name = "test";
mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db($db_name);
function tag_info() {
$result = mysql_query("SELECT * FROM tags GROUP BY tagName ORDER BY tagName DESC");
while($row = mysql_fetch_array($result)) {
$arr[$row['tagName']] = $row['count'];
}
//ksort($arr);
return $arr;
}
function tag_cloud() {
$min_size = 8;
$max_size = 28;
$tags = tag_info();
$minimum_count = min(array_values($tags));
$maximum_count = max(array_values($tags));
$spread = $maximum_count - $minimum_count;
if($spread == 0) {
$spread = 1;
}
$cloud_html = '';
$cloud_tags = array();
$counter = array();
$step = ($max_size - $min_size)/($spread);
foreach ($tags as $tag => $count) {
$size = $min_size + ($count - $minimum_count)
* $step;
// $size = ($max_size + $min_size)/$spread;
$cloud_tags[] = '<a style="font-size: '. floor($size) . 'px'
. '" class="tag_cloud" href="http://127.0.0.1/websites/exp.1/' . $tag . '.php'
. '" title="\'' . $tag . '\' returned a count of ' . $count . '">'
. htmlspecialchars(stripslashes($tag)) . '</a>'. $count;
$counter[] = mysql_query("UPDATE tags set count = $count+1");
}
$cloud_html = join("\n", $cloud_tags) . "\n";
return $cloud_html;
}
?>
<style type="text/css">
.tag_cloud
{padding: 3px; text-decoration: none;
font-family: verdana; }
.tag_cloud:link { color: #FF66CC; }
.tag_cloud:visited { color: #9900FF; }
.tag_cloud:hover { color: #FF66CC; background: #000000; }
.tag_cloud:active { color: #6699FF; background: #000000; }
div.wrapper{
position:absolute;
height:200px;
width:400px;
}
</style>
<div id="wrapper" class="wrapper">
<?php print tag_cloud(); ?>
</div>
|
|
|
|
|
Date :
2010-05-21 15:32:11 |
By :
raharonee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ้อ..บรรทัดที่ 35 - 37
35. $cloud_html = '';
36. $cloud_tags = array();
37. $counter = array();
ใส่ก็ได้ไม่ใส่ก็ได้นะคะ ลองดูแล้วผลลัพธ์ออกมาเหมือนกันคะ
?? ไม่รู้เหมือนกันคะ ว่าเค้าใส่ไว้ทำไม ??
|
|
|
|
|
Date :
2010-05-21 15:34:04 |
By :
raharonee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่มีใครตอบเลยเหรอ T^T
แต่ยังไงก็ได้แล้วนะคะ วิธีแก้ก็ไปเพิ่มโค๊ดตาม No. 1 บอกไว้ ในหน้าที่ลิงค์ไปนะคะ
ขอบคุณนะคะ
|
|
|
|
|
Date :
2010-05-27 14:07:29 |
By :
raharonee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|