php6
صفحه 1 از 1
php6
برای سایت خود یک سیستم رای گیری بسازید
در اين مقاله مي خواهم يك اسكريپت php رو بهتون نشون بدم كه باهاش مي شه يه قسمت راي گيري براي سايتمون درست كنيم (مثل همون چيزي كه توي صفحه اول همين جا هست.)
براي اين كار ما فقط از يك جدول استفاده مي كنيم ،
جدول را مطابق اين دستورات مي سازيم :
CREATE TABLE `poll` (
`id` int(11) NOT NULL auto_increment,
`topic` text NOT NULL,
`type` char(1) NOT NULL default '',
`count` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT='My Web Poll' AUTO_INCREMENT=14 ;
خوب حالا يه توضيح كوچولو در مورد جدول مي دم :
اين جدول 4 تا فيلد داره كه id فيلد Auto increament است و topic سوال راي گيري و گزينه هاي راي گيري است همچنين در فيلد type مشخص میکنیم که این رکورد سوال ما است یا یکی از گزینه های ما است ... براي سوال راي گيري كه فقط يكي است در اين فيلد q قرار مي دهيم و براي گزينه ها s قرار مي دهيم .
فیلد count هم كه تعداد راي براي هر گزينه را در خود نگه مي دارد .
چرا از دو جدول استفاده نكرديم ؟ براي اين كه سرعت دستيابي به يك جدول خيلي بيشتر از دو جدول است .
خوب بريم سراغ كد :
<?php
$host = "localhost";
$db_name = "temp";
$db_user = "root";
$db_pass = "MyPassword";
$link = mysql_connect($host,$db_user,$db_pass) or die(musql_error());
mysql_select_db($db_name,$link) or die("Can not select Data base!");
//Check Action Set ...
if(isset($_GET['action']))
{
if($_GET['action'] == 'vote')
{
$poll_id = (isset($_POST['webpoll'])) ? $_POST['webpoll'] : '';
if($poll_id != '')
{
$sql = "UPDATE `poll` SET `count`=count+1 where `id`='".$poll_id."' AND `type`='s'";
$result = mysql_query($sql) or die(mysql_error());
}
}
$count = 0;
$sql = "SELECT * FROM `poll` WHERE `type`='s'";
$result = mysql_query($sql) or die(mysql_error());
$n = mysql_num_rows($result);
for ($i=0;$i<$n;$i++)
{
$count += mysql_result($result,$i,3);
};
if($count == 0){$count = 1;};
$output = 'The Result of Vote<br><br>';
for ($i=0;$i<$n;$i++)
{
$num = mysql_result($result,$i,3) * 100;
$num /= $count;
$num = (int) $num;
$output .= mysql_result($result,$i,1).' '.$num.'%<table border="0" width="'.$num.'%" height="20" bgcolor="#0000FF"><tr><td></td></tr></table>';
};
$output .= '<br>The webPoll Result From '.$count.' Votes<br><a target="_self" href="'.$_SERVER['PHP_SELF'].'">[Back]</a>';
}
else
{
//Web Poll...
$sql = "SELECT * FROM `poll` WHERE `type`='s'";
$poll = mysql_query($sql) or die(mysql_error());
$topic_sql = "SELECT `topic` FROM `poll` WHERE `type`='q'";
$poll_result = mysql_query($topic_sql) or die(mysql_error());
$poll_question = mysql_result($poll_result,0,0);
$poll_total = mysql_num_rows($poll);
$output = '<p>'.$poll_question.'</p><form>';
$vote_count = 0;
for ($i = 0; $i </a>
راهنمايي :
اين كد را در فايلي با هر نامي كه خواستيد و با پسوند php ذخيره كنيد و اجرا نماييد .
در
$db_name = "temp";
به جای temp نام ديتا بيس خود را بنويسيد.
در
$db_user = "root";
به جاي root نام كاربري ديتا بيس خود را بنويسيد.
در
$db_pass = "MyPassword";
به جاي My Password كلمه عبور ديتا بيس را بنويسيد .
در اين مقاله مي خواهم يك اسكريپت php رو بهتون نشون بدم كه باهاش مي شه يه قسمت راي گيري براي سايتمون درست كنيم (مثل همون چيزي كه توي صفحه اول همين جا هست.)
براي اين كار ما فقط از يك جدول استفاده مي كنيم ،
جدول را مطابق اين دستورات مي سازيم :
CREATE TABLE `poll` (
`id` int(11) NOT NULL auto_increment,
`topic` text NOT NULL,
`type` char(1) NOT NULL default '',
`count` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT='My Web Poll' AUTO_INCREMENT=14 ;
خوب حالا يه توضيح كوچولو در مورد جدول مي دم :
اين جدول 4 تا فيلد داره كه id فيلد Auto increament است و topic سوال راي گيري و گزينه هاي راي گيري است همچنين در فيلد type مشخص میکنیم که این رکورد سوال ما است یا یکی از گزینه های ما است ... براي سوال راي گيري كه فقط يكي است در اين فيلد q قرار مي دهيم و براي گزينه ها s قرار مي دهيم .
فیلد count هم كه تعداد راي براي هر گزينه را در خود نگه مي دارد .
چرا از دو جدول استفاده نكرديم ؟ براي اين كه سرعت دستيابي به يك جدول خيلي بيشتر از دو جدول است .
خوب بريم سراغ كد :
<?php
$host = "localhost";
$db_name = "temp";
$db_user = "root";
$db_pass = "MyPassword";
$link = mysql_connect($host,$db_user,$db_pass) or die(musql_error());
mysql_select_db($db_name,$link) or die("Can not select Data base!");
//Check Action Set ...
if(isset($_GET['action']))
{
if($_GET['action'] == 'vote')
{
$poll_id = (isset($_POST['webpoll'])) ? $_POST['webpoll'] : '';
if($poll_id != '')
{
$sql = "UPDATE `poll` SET `count`=count+1 where `id`='".$poll_id."' AND `type`='s'";
$result = mysql_query($sql) or die(mysql_error());
}
}
$count = 0;
$sql = "SELECT * FROM `poll` WHERE `type`='s'";
$result = mysql_query($sql) or die(mysql_error());
$n = mysql_num_rows($result);
for ($i=0;$i<$n;$i++)
{
$count += mysql_result($result,$i,3);
};
if($count == 0){$count = 1;};
$output = 'The Result of Vote<br><br>';
for ($i=0;$i<$n;$i++)
{
$num = mysql_result($result,$i,3) * 100;
$num /= $count;
$num = (int) $num;
$output .= mysql_result($result,$i,1).' '.$num.'%<table border="0" width="'.$num.'%" height="20" bgcolor="#0000FF"><tr><td></td></tr></table>';
};
$output .= '<br>The webPoll Result From '.$count.' Votes<br><a target="_self" href="'.$_SERVER['PHP_SELF'].'">[Back]</a>';
}
else
{
//Web Poll...
$sql = "SELECT * FROM `poll` WHERE `type`='s'";
$poll = mysql_query($sql) or die(mysql_error());
$topic_sql = "SELECT `topic` FROM `poll` WHERE `type`='q'";
$poll_result = mysql_query($topic_sql) or die(mysql_error());
$poll_question = mysql_result($poll_result,0,0);
$poll_total = mysql_num_rows($poll);
$output = '<p>'.$poll_question.'</p><form>';
$vote_count = 0;
for ($i = 0; $i </a>
راهنمايي :
اين كد را در فايلي با هر نامي كه خواستيد و با پسوند php ذخيره كنيد و اجرا نماييد .
در
$db_name = "temp";
به جای temp نام ديتا بيس خود را بنويسيد.
در
$db_user = "root";
به جاي root نام كاربري ديتا بيس خود را بنويسيد.
در
$db_pass = "MyPassword";
به جاي My Password كلمه عبور ديتا بيس را بنويسيد .
صفحه 1 از 1
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد