2013-04-17 13 views
19

मैं एक तालिका में सभी पंक्तियों में एक ही कॉलम अपडेट करना चाहता हूं, क्या कोई मुझे टेबल को अपडेट करने का तरीका दे सकता है? केवल एक इनपुट फ़ील्ड है जो सभी पंक्तियों के मूल्य को अद्यतन करना चाहिए। यह कोड काम नहीं कर रहा है और मुझे पता है कि इंडेक्स और सरणी में कुछ गड़बड़ है।किसी तालिका में सभी पंक्तियों में एक कॉलम अपडेट करना

<?php 
    <form method="post" dir="rtl" name="maxcharfield" >      
     <textarea onKeyDown="textCounter(this,'progressbar1',300)" 
      onKeyUp="textCounter(this,'progressbar1',300)" 
      onFocus="textCounter(this,'progressbar1',300)" 
      style="font-family:'B_yekan';" id="text" name="text" rows="0" cols="0" class="required"></textarea> 
     <div class="cleaner h10"></div> 

     <div style="font-family:'B_yekan';" dir="rtl" id="progressbar1" class="progress" ></div> 
     <script>textCounter(document.getElementById("maxcharfield"),"progressbar1",100)</script>  

     <input class="styled-button-8" style="margin-top:10px; float:right; margin-right:50px; font-size: 14px; padding: 5px 14px;" type="submit" value="save" name="Submit" /> 
     <input style="font-family:'B_yekan';" type="reset" value="reset" id="reset" name="reset" class="submit_btn float_l" /> 

    </form> 

<?php 
// for updating Check if button name "Submit" is active, do this 
if(isset($_POST['Submit']) && $_POST['Submit'] == 'save') 
    { 
     $sql1="UPDATE `".$tbl_name."` SET `board`='".$_REQUEST['text']."' "; 
          $result1=mysql_query($sql1); 
    } 

    } 
?> 

उत्तर

43

आप समाधान को अधिक जटिल बना रहे हैं। प्रत्येक रिकॉर्ड को अपडेट करने के लिए, जिस दृष्टिकोण को आप लेने का प्रयास कर रहे हैं वह है:

  1. सभी रिकॉर्ड चुनें।
  2. प्रत्येक रिकॉर्ड के लिए आईडी प्राप्त करें।
  3. आईडी के माध्यम से लूप।
  4. उस आईडी द्वारा प्रत्येक रिकॉर्ड अपडेट करें।

UPDATE सिंटैक्स का ऐसा करने का एक आसान तरीका है। आपको UPDATE कथन पर WHERE खंड की आपूर्ति करने की आवश्यकता नहीं है। उस खंड के बिना, यह डिफ़ॉल्ट रूप से तालिका में हर रिकॉर्ड अपडेट कर देगा:

UPDATE TableName SET `board`='value' 

इसके अलावा, ध्यान रखें कि आप अपने कोड में एक SQL injection जोखिम है भी ध्यान रखें। $_REQUEST['text'] सीधे अपने SQL क्वेरी में उपयोग करके, आप किसी भी उपयोगकर्ता को अपनी क्वेरी में SQL कोड भेजने की अनुमति देते हैं। आपका कोड तब भी निष्पादित करता है जो वे आपको भेजते हैं। यह उन्हें आपके डेटा को भ्रष्ट या हटाने की अनुमति दे सकता है, यहां तक ​​कि आपके सर्वर पर व्यवस्थापकीय पहुंच भी प्राप्त कर सकता है।

स्टार्टर्स के लिए, कृपया mysql_* फ़ंक्शंस का उपयोग करना बंद करें। PHP ने उन्हें बहिष्कृत कर दिया है और अब उनका उपयोग नहीं किया जाना चाहिए। उनके लिए a mysqli_ replacement है। इसके अलावा, SQL क्वेरी में उनका उपयोग करने से पहले अपने इनपुट को sanitize करने के लिए the mysqli_real_escape_string() function का उपयोग करें। और अंत में, अपने SQL स्ट्रिंग में सीधे मूल्यों को संयोजित करने के बजाय prepared statements का उपयोग करें।

+0

धन्यवाद मैंने जो कहा वह मैंने किया लेकिन फिर भी मैं –

+0

@ मोहम्मद अपडेट नहीं कर सकता: क्या आप मूल कोड को नए कोड से अपडेट कर सकते हैं? किसी भी चीज की संभावना शायद गलत हो सकती है। – David

+0

मैंने –

संबंधित मुद्दे