برگزیده های پرشین تولز

کار با اطلاعات داخل فیلد های دیتا بیس Mysql

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
سلام من یک کد نوشتم برای یک سیستم رای گیری 2 تا فیلد در مای اسکیو ال ایجاد کردم که یکی کلید اولیه و دیگری برای قرار گرفتن یکی از اعداد 1 تا 4 است حالا موندم چطوری بدونم که مثلا در این فیلد چند تا 4 و یا چند تا 3 و 2 و1 وجود دارد تا بتونم با این اطلاعات داخل فیلد ها کار کنم .
ممنون میشم سریعتر جوابمو بدهید
کد رو میگذارم تا زودتر به جوابم برسم و شما هم راحتتر راهنمایی فرمایید

این کد Setup.php هست که برای درست کردن جدول و اتصال به دیتابیس ساختم
PHP:
<?PHP
function dbset()
{
	$table='poll'; //set the table name of database 
	$link=mysql_connect('localhost','root',''); //connecting to database "database host . db username . db password
	if(!$link){
	echo ("database cannot find".mysql_error()); 
	exit;}
	mysql_select_db('data',$link); //set  database name
	$query="CREATE TABLE $table(id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Vote int)";
    if(mysql_query($query))
    {
    	echo "Db is set";   	
    }
    else{
    	die('db unable'.mysql_error());
    }
    mysql_close($link);
}
dbset();
?>

این هم کد اصلی برای رای گیری vote.php

که شامل فیلد های رای گیری می باشد
PHP:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="fa">
<title>New Page 1</title>
</head>

<body>
<form method="POST" action="poll.php">
		
<table border="0" width="125" style="border: 2px solid #0066CC; padding: 2px">
	<tr>
		<td dir="rtl" align="center" valign="top" style="border-bottom: 2px solid #0066CC; padding: 2px" bgcolor="#0066CC">
		<span style="padding:2px;text-indent:3px; font-weight:700"dir=rtl>&nbsp;به 
		نظر شما طراحی <span lang="en-us">&nbsp; </span>این سایت چگونه است</span></td>
	</tr>
	<tr>
		<td dir="rtl" align="right" valign="top">
		<table border="0" width="120" cellspacing="3" cellpadding="2">
			<tr>
				<td><input type="radio" value="1" name="R1" checked> عالی</td>
			</tr>
			<tr>
				<td><input type="radio" value="2" name="R1"> خوب</td>
			</tr>
			<tr>
				<td><input type="radio" value="3" name="R1">&nbsp; بد</td>
			</tr>
			<tr>
				<td><input type="radio" value="4" name="R1">&nbsp; افتضاح</td>
			</tr>
		</table>
		</td>
	</tr>
	<tr>
		<td dir="rtl" align="right" valign="top">		
			<p>
			<input type="submit" value="Vote" name="B1" style="font-family: Verdana; font-size: 8pt; border: 1px dotted #FFCC99; padding: 1px; background-color: #0099CC; float:left"><?PHP include('number.php');?></p>
		</td>
	</tr>
</table>
</form>
</body>

</html>
و این هم برای پردازش کد ها و قرار دادن آنها در درون فیلد های دیتا بیس Poll.php
PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE);  
$count=1;
function setdata()
{
	Global $count;
	$link=mysql_connect('localhost','root',''); 
	if(!$link){
	echo ("database cannot find".mysql_error()); 
	exit;}
	mysql_select_db('data',$link);
	$table='poll';
	$vote=$_POST['R1'];
	$data="INSERT into $table
                         (id ,vote)
                          values
                         ('.$count++.','".$vote."')";
	$data=trim($data);
	if (mysql_query($data))
	{
		echo "Thanks For Your Vote";
		exit;
	}
	else {
		echo "Error :"."  ".mysql_error();
	}
}
setdata();


?>
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
اینو یادم رفتش number.php که تعداد رای ها رو نشون میده

در ضمن من خیلی تازه کارم هرجاش که میشه من یه چیز جدید ی یاد بگیرم لطفا تذکر بدهید

PHP:
<?PHP function number()
{
	$link=mysql_connect('localhost','root',''); 
	if(!$link){
	echo ("database cannot find".mysql_error()); 
	exit;}
	mysql_select_db('data',$link);
	$query = "select*from poll ORDER BY `id`";
$result = mysql_query($query, $link) or die(mysql_error());
//get the number of rows in the result set
$number_of_rows = mysql_num_rows($result);
$voter=$number_of_rows;
echo $voter." "."رای";
}
number();
?>
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
41
محل سکونت
PubliC_HtmL
سلام

شما مي تونيد از تابع count استفاده کني به شرح زير:

PHP:
mysql_query("select count(1) from 2 where 3=?");

که بجاي اعداد بکار رفته شما بايد مقادير زير رو جايگزين کني

1- نام فيلدي که مي خواي تعداد رکوردهاي داراي يه شرط مشخص از اون فيلد رو بدست بياري
2- نام جدول
3- نام فيلدي که بايد داراي شرط مورد نظر شما باشه
4- مقدار شرط
مثلا اگر يه جدول داري بنام opinion که راي داده شده در فيلد مثلا vote اين جدول ذخيره مي شه و شما مي خواي تعداد راي هايي رو که مقدارشون برابر 4 هست بدست بياري بايد کدت مثل اين باشه :
PHP:
mysql_query("select count(vote) from opinion where vote=4");

البته لزومي نداره که حتما پارامترهاي 1 و 3 با هم يکي باشند يعني شرط شما مي تونه در فيلد ديگري هم باشه

براي بدست آوردن مجموع عددي مقادير ثبت شده در فيلد هاي داراي شرط مورد نظرت هم مثل بالا بايد عمل کني فقط بجاي count از sum استفاده کن
در ضمن دقت کن که بين کلمه count و يا sum و پرانتز بعدش نبايد فاصله باشه


راستي چه خوب مي شد در بعضي از اين isp هاي پر ادعاي تهران رو گل گرفت :wacko: نيم ساعت پشت خط موندم تا کانکت شدم . دقيقا 700 جور ارور داد تا کانکت شد :wacko:
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
ببخشید دیر سرزدم آخه خونه نبودم
دستت درد نکنه کمک بزرگی به من کردی
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
من از این کد به صورت زیر استفاده کردم ولی فقط جوابی که به من میده عدد 1 است کجا اشتباه کردم
PHP:
<?PHP
    $link=mysql_connect('localhost','root',''); 
	if(!$link){
	echo ("database cannot find".mysql_error()); 
	exit;}
	mysql_select_db('data',$link);
    $roe=mysql_query("select count(vote) from poll where vote=4");    
    $num4=mysql_num_rows($roe);
    echo $num4;
    /*------------------------------------*/
?
>

چطور این کد رو استفاده کنم که تعداد عدد 4 در فیلد poll رو داخل یک متغیر قرار بدم
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
من چی کار کنم ؟
یکی کمک کنه دیگه
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
به نقل از miladmovie :
می تونی نام table ها و کار هر کدوم رو بنویسی ؟
یک تیبل بیشتر نداره که اسمش Poll هست و 2 تا هم فیلد به نام های id و vote که vote یکی از ااعداد 1 تا 4 رو ذخیره میکنه
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
41
محل سکونت
PubliC_HtmL
به نقل از joliocesar :
من از این کد به صورت زیر استفاده کردم ولی فقط جوابی که به من میده عدد 1 است کجا اشتباه کردم
PHP:
<?PHP
    $link=mysql_connect('localhost','root',''); 
	if(!$link){
	echo ("database cannot find".mysql_error()); 
	exit;}
	mysql_select_db('data',$link);
    $roe=mysql_query("select count(vote) from poll where vote=4");    
    $num4=mysql_num_rows($roe);
    echo $num4;
    /*------------------------------------*/
?
>

چطور این کد رو استفاده کنم که تعداد عدد 4 در فیلد poll رو داخل یک متغیر قرار بدم

به جاي mysql_num_rows از mysql_fetch_rows استفاده کن

اگه بازم مشکل داشتي بگو نمونه کد خودمو بزارم برات
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
دستت درد نکنه میرم نگاه میکنم
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
نشد که نشد
اگه میشه کد خودتو بگذار
 

first saeed

Registered User
تاریخ عضویت
25 آگوست 2005
نوشته‌ها
815
لایک‌ها
2
سن
41
محل سکونت
PubliC_HtmL
سلام ببخشيد دير شد

اين کدي که در زير خواهم نوشت به اين صورت عمل مي کنه که راي دهنده به موضوع مورد راي گيري يک نمره از 0 تا 10 خواهد داد
اما نتيجه راي گيري به صورت نمره 20 تايي محاسبه و اعلام مي شود يعني اينکه در بخش نتيجه راي گيري شما نمره آن موضوع را بين 0 تا 20 خواهيد ديد

البته اين کد خالي از اشکال شايد نباشد اما بهرحال درست کار مي کنه خوشحال مي شم اگه ايراداي اين کد رو برام بنويسيد تا برا من هم تجربه اي باشه

اين کد شامل 2 صفحه است
1- صفحه vote.php
PHP:
<?
print "
<form name=vote method=post action=vote2.php>
<table align=left width=200>
<tr><td>0<input type=radio name=vote value=0></td></tr>
<tr><td>1<input type=radio name=vote value=1></td></tr>
<tr><td>2<input type=radio name=vote value=2></td></tr>
<tr><td>3<input type=radio name=vote value=3></td></tr>
<tr><td>4<input type=radio name=vote value=4></td></tr>
<tr><td>5<input type=radio name=vote value=5></td></tr>
<tr><td>6<input type=radio name=vote value=6></td></tr>
<tr><td>7<input type=radio name=vote value=7></td></tr>
<tr><td>8<input type=radio name=vote value=8></td></tr>
<tr><td>9<input type=radio name=vote value=9></td></tr>
<tr><td>10<input type=radio name=vote value=10></td></tr>
<tr><td><input type=submit value='ok'></td></tr>
</table>
</form>
"
?>
2- صفحه vote2.php
PHP:
<?
 $vote=$_POST["vote"];
 $link=mysql_connect("localhost","username","pass");
       mysql_select_db("your db name",$link);
                        mysql_query("insert opinion(votes) values ('$vote')");

                           $sam=mysql_query("select sum(votes) from opinion");
                           $s=mysql_fetch_row($sam);
  foreach ($s as $su)

         $cont=mysql_query("select count(votes) from opinion");
         $c=mysql_fetch_row($cont);
  foreach ($c as $co)
        print "number of voters $co<br>";
         $a=$su*20;
         $b=$co*10;
         $result=$a/$b;
        print "topic point (between 0 and 20)$result";
?>
 
بالا