nexpay

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

شروع موضوع توسط Romain_Gary ‏28 دسامبر 2005 در انجمن PHP

  1. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    سلام من یک کد نوشتم برای یک سیستم رای گیری 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();


    ?>
     
  2. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    اینو یادم رفتش 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();
    ?>
     
  3. first saeed

    first saeed Registered User

    تاریخ عضویت:
    ‏25 آگوست 2005
    نوشته ها:
    813
    تشکر شده:
    2
    محل سکونت:
    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:
     
  4. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    ببخشید دیر سرزدم آخه خونه نبودم
    دستت درد نکنه کمک بزرگی به من کردی
     
  5. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    من از این کد به صورت زیر استفاده کردم ولی فقط جوابی که به من میده عدد 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 رو داخل یک متغیر قرار بدم
     
  6. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    من منتظرم
    لطفا کمک کنید
     
  7. miladmovie

    miladmovie مدیر بازنشسته کاربر فعال

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    1,936
    تشکر شده:
    2
    می تونی نام table ها و کار هر کدوم رو بنویسی ؟
     
  8. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    من چی کار کنم ؟
    یکی کمک کنه دیگه
     
  9. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    یک تیبل بیشتر نداره که اسمش Poll هست و 2 تا هم فیلد به نام های id و vote که vote یکی از ااعداد 1 تا 4 رو ذخیره میکنه
     
  10. first saeed

    first saeed Registered User

    تاریخ عضویت:
    ‏25 آگوست 2005
    نوشته ها:
    813
    تشکر شده:
    2
    محل سکونت:
    PubliC_HtmL
    به جاي mysql_num_rows از mysql_fetch_rows استفاده کن

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

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    دستت درد نکنه میرم نگاه میکنم
     
  12. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    نشد که نشد
    اگه میشه کد خودتو بگذار
     
  13. avajang.com .leftjee.ir.right
  14. first saeed

    first saeed Registered User

    تاریخ عضویت:
    ‏25 آگوست 2005
    نوشته ها:
    813
    تشکر شده:
    2
    محل سکونت:
    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";
    ?>
     
  15. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    خیلی ممنون
     
zarpopخرید بک لینک عسل طبیعی و گرده گل ایرانیfootbal