آژانس هواپیماییexchanging

درمورد متغیر ی که بدون مقدار باشد

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

  1. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    سلام
    من یک اسکریپت دارم می نویسم نمیدونم (برای رای گیری)
    4 تا دکمه رادیویی توی صفحه اصلی است که به صفحه پی اچ پی متغیرشون رو ارسال می کنند ولی خب مسلما باید یکیش انتخاب بشه دیگه وقتی یکیش انتخاب میشه 3 تا دیگه هیچ مقداری رو به متغیر (ارسال به یک آرایه) ارسال نمیکنند و برنامه ارور میده که 3 تا متغیر دیگه هیچ مقداری رو ندارند :wacko:
    من کدش رو میگذارم فقط بهم نخندیدا من تازه دارم پی اچ پی یاد می گیرم .
    لطفا کمک کنید (نمیخوام یک برنامه بنویسم دارم فقط تمرین می کنم:) )
    PHP:
    <?php
        $a
    =array(1=>$_GET['R1'],2=>$_GET['R2'],3=>$_GET['R3'],4=>$_GET['R4']);            
    function 
    dbset()
    {
        
    $link=mysql_connect('localhost','root',''); 
        if(!
    $link){
        die (
    "database cannot find".mysql_error()); 
        exit;}
        
    mysql_select_db('vot',$link);
        
    $query="CREATE TABLE poll(id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, best int ,good int ,bad int ,verybad int)";
        
    mysql_query($query);
    }
    dbset();
    function 
    setdata()
    {
        Global 
    $a;
    if (!(
    $a[1]||$a[2]||$a[3]||$a[4])){    
     
    $data="insert to poll (id , best , good , bad , very bad)
     values('1','"
    .$a[1]."','".$a[2]."','".$a[3]."','".$a[4]."')";
     
    $data=trim($data);
     exit;
    }
    if (
    mysql_query($data))
        {
            echo 
    "your data added thank you";
            exit;
        }
        else {
            echo 
    "Error :"."  ".mysql_error();
        }
    }
    ?>
    اینم کد اچ تی املش :
    HTML:
    <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="Get" 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="R2"> خوب</td>
    			</tr>
    			<tr>
    				<td><input type="radio" value="3" name="R3">&nbsp; بد</td>
    			</tr>
    			<tr>
    				<td><input type="radio" value="4" name="R4">&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"></p>
    		
    		</td>
    	</tr>
    </table>
    </form>
    </body>
    
    </html>
    
    در مورد کد اچ تی ام ال هم نمیدونم چرا اگه اسم دکمه های رادیویی یکی نباشه همشون انتخاب میشن
    ممنون میشم راهنمایی فرمایید
     
  2. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    لطفا جواب بدید دیگه !
     
  3. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    یه سوتی گنده دادی!!!
    اسم اون رادیو باتن ها باید یکی باشه نه 4 تا
    مقدارشون فرق میکنه ولی اسمشون نه تگ name رو ادیت کن و هر 4 تا رو مثل هم بذار
     
  4. Parsa_361

    Parsa_361 کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏5 آگوست 2005
    نوشته ها:
    889
    تشکر شده:
    10
    محل سکونت:
    Isfahan, php.ini
    تأیید وشه !!! :D

    ضمناً برای جلوگیری از این ارور های بیخودی میشه از یک @ قبل از اون عملیات قرار داد تا ارور رو چاپ نکنه ! :D
    (برای این مورد نمیگما، جاهای دیگه)
     
  5. Romain_Gary

    Romain_Gary Registered User

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

    بازم ممنونم
     
  6. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    Parsa_361 دست شما هم درد نکنه این @ که گفتی توی این کد کاری نمیتونه وکنه؟
     
  7. appbannerkhuniresbanner
  8. Parsa_361

    Parsa_361 کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏5 آگوست 2005
    نوشته ها:
    889
    تشکر شده:
    10
    محل سکونت:
    Isfahan, php.ini
    ببین وقتی نام تمام رادیو باتم ها رو یکی کنی همه چیز حل میشه !
    یعنی فقط یک متغیر وجود داره که مقداره اون رادیو باتمی که انتخاب شده توشه !!




    تو اسکریپتی که اینجا گذاشتی نمیخواد استفاده کنی، اگه چیزی رو که سالار گفت عمل کنی مشکلت حله !
    ولی برای جاهایی که تو فرمشو فیلد اختیاری میزارن کاربرد داره
    مثلاً برای اولین بار که میخوان مقدار متغیر رو بررسی کنند یه @ میزارن اولش که اگه متغیر تعریف نشده بود ارورش رو چاپ نکنه !
     
  9. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    وقتی اسمشون یکی باشه فقط به متغیر با اون اسم با مقداری که از لیست انتخاب میکنی فرستاده میشه
    در زمن برای جلوگیری از ارور های بیخود که بیشتر این ارور ها توی localhost ویندوز نمایش داده میشن اینو اول فایلت بذار:
    PHP:
    error_reporting(E_ALL E_NOTICE);
    این کار باعث میشه که همه ارور های بجا و اصلی رو نشون بده و از نشون دادن ارور های الکی مثل undefined variable ... جلوگیری میکنه...
     
  10. Romain_Gary

    Romain_Gary Registered User

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

    HTML:
    <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"></p>
    		
    		</td>
    	</tr>
    </table>
    </form>
    </body>
    
    </html>
    
    اینم کد پی اچ پی
    PHP:
    <?php
    error_reporting
    (E_ALL E_NOTICE);  
    $table='poll';
    function 
    dbset()
    {
        global 
    $table;
        @
    $link=mysql_connect('localhost','root',''); 
        if(!
    $link){
        die (
    "database cannot find".mysql_error()); 
        exit;}
        
    mysql_select_db('ffs',$link);
        
    $query="CREATE TABLE $table(id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, best int ,good int  ,bad int  ,verybad int )";
        if(
    mysql_query($query))
        {
            die(
    'db unable'.mysql_error());
        }
    }
    dbset();
    function 
    a()
    {
        
    $a='$_POST["R1"]';
        
    // $a=='1'||$a=='2'||$a=='3'||$a=='4';
        
    if ($a==1){
        
    $z=1;
         
    $b=0;
         
    $c=0;
         
    $d=0;
         exit;
        }else if (
    $a==2){
         
    $z=0;
         
    $b=1;
         
    $c=0;
         
    $d=0;
         exit;
         }
         else if (
    $a==3){
         
    $z=0;
         
    $b=0;
         
    $c=1;
         
    $d=0;
         exit;
         }    
         else if (
    $a==4){
         
    $z=0;
         
    $b=0;
         
    $c=0;
         
    $d=1;
         exit;
         }
    }
    a();
    function 
    setdata()
    {
        global 
    $table;
        global 
    $z;
        global 
    $b;
        global 
    $c;
        global 
    $d;
        
    $data="INSERT into $table
                             (id ,best,good,bad,verybad)
                              values
                             ('.1++.','"
    .$z."','".$b."','".$c."','".$d."')";
        
    $data=trim($data);
        if (
    mysql_query($data))
        {
            echo 
    "your data added thank you";
            exit;
        }
        else {
            echo 
    "Error :"."  ".mysql_error();
        }
    }
    setdata();
    ?>
     
  11. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    یه سوالی دارم
    چرا اینقدر شلوغش کردی؟
    خیلی ساده تر میتونستی این کارو بکنی!
     
  12. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    خب راستش همینطوری به فکرم رسید
    ولی این کار نمیکنه
    نمیدونم مشکلش چیه؟
    یکمک بکن سالار جان من یاد بگیرم اینو بنویسم
    الان مشکلش کجاشه؟
     
  13. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    ببین الان یه کمی فکر کن روش
    ببین چطوری میتونی با ساده ترین روش ذخیره کنی
    ببین تو 4 تا ستون برای جوابا در نظر گرفتی در صورتی که میتونی یه ستون بذاری و مقادیرشون از 1 تا 4 متغیر بذاری
    در ضمن
    چرا هر بار یه تیبل میسازی؟
    CREATE TABLE
     
  14. avajang.com .leftavajang.com.right
  15. Romain_Gary

    Romain_Gary Registered User

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

    راست میگیا من الان که فکر میکنم میبینم 1 عدد فیلد هم کارو راه میندازه
    از اون ساخت دوباره جدولم ممنونم خودم راستش اصلا بهش فکر نکردم که اون کد هر دفعه داره اجرا میشه
    من میرم تغییرات میدم ببینم چی میشه
    سالار خان بازم دستتد رد نکنه فکر کنم کم کم دارم توی پی اچ پی راه میفتم البته با کمک شما
     
  16. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    ایول من این چیزایی که گفتی انجام دادم درست شد:D
    خیلی حال کردم میرم بقیشو مینویسم
    اگه مشکلی برخورد کردم بازم مزاحم میشم
    بازم دستت درد نکنه
     
  17. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    سلام
    من تونستم تعداد رای های داده شده رو روی صفحه نمایش بدم ولی به اون فیلد هایی که یکی از اعداد 1 تا 4 مربوط به 4 گزینه در اون قرار دارد نتونستم کاری کنم میخوام بفهمم که چند تا از فیلد ها مقدار 4 یا 2 یا مثلا 1 رو دارن ؟
    خیلی ممنون
     
  18. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    dیکی کمک کنه دیگه
    سالار خان کجایی؟؟؟؟
    من منتظرم
    کلا می خوام بدونم چطوری روی اعداد و کلا چیزایی که توی دیتابیس قرار میگیرن محاسبه انجام بدم
     
  19. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    سوالم رو توی یک تاپیک جدید مطرح می کنم
     
  20. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    ببین ساده میگم
    بعد از اینکه با حلقه WHILE اطلاعات را گرفتی توش چک کن ببین کدومشون این مقدار هستند که میخواستی:: ببین این یه سکریپت ساده::
    PHP:
    <?php
    //Make a connection to mysql 
    //...

    $sql "SELECT * FROM `data`";
    $result mysql_query($sql);
    while(
    $list mysql_fetch_array($result)){
              
    $vote  $list[vote];
              
    $id $list[id];
              if(
    $vote == "2"){
                        echo
    "User with id: $id : Selected 2nd item...<br>";
              }
    }
    ?>
    در ضمن
    این کارا وظیفه ی منه!!!