logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

PHP पाठ – पाठ 3.3 – MySQL डेटाबेस के साथ कार्य। डेटा अपडेट करना (UPDATE क्वेरी)।

09/10/2025, by Ivan

हम पहले ही MySQL के ऑपरेटरों जैसे SELECT और INSERT INTO से परिचित हो चुके हैं, अब समय है यह जानने का कि पहले से डाले गए डेटा को डेटाबेस में कैसे अपडेट किया जाए। इसके लिए हम SQL UPDATE ऑपरेटर का उपयोग करेंगे। लेकिन पहले, आइए अपनी index.php फ़ाइल को संशोधित करें और एक नया रूट (path) जोड़ें। नीचे दिए गए कोड को खोजें:

      if( $_GET['admin'] == 1 ){ // यदि URL में admin पैरामीटर है
	    print $obj->display_admin(); // यदि पैरामीटर मौजूद है, तो फ़ॉर्म दिखाएँ
	  }else{
	    print $obj->display_public(); // यदि पैरामीटर नहीं है, तो संदेश दिखाएँ
	  }

और इसे निम्नलिखित कोड से बदलें:

	  switch ($_GET['admin']){
	    case 'add':
		  print $obj->display_admin(); // यदि admin=add, तो नया संदेश जोड़ने का फ़ॉर्म दिखाएँ
		break;
		case 'update':
		  print $obj->display_update();  // यदि admin=update, तो संपादन फ़ॉर्म दिखाएँ
		break;
		default:
		  print $obj->display_public(); // यदि कोई पैरामीटर नहीं, तो सभी संदेश दिखाएँ
	  }

मैंने यहाँ if ऑपरेटर को switch से बदल दिया है, ताकि हम एक ही वेरिएबल $_GET['admin'] के लिए कई मानों की जाँच कर सकें। आगे चलकर हम delete भी जोड़ेंगे। फिलहाल, मैंने 1 को add में बदल दिया है और एक नया केस update जोड़ा है। चूँकि हमने 1 को add में बदला है, इसलिए simpleCMS.php फ़ाइल में लिंक को भी बदलना होगा:

$content .= '<p><a href="/index.php?admin=1">संदेश जोड़ें</a></p>';

इसे बदलें:

$content .= '<p><a href="/index.php?admin=add">संदेश जोड़ें</a></p>';

अब हमें एक नया मेथड display_update() भी जोड़ना है, जिसे हम तब कॉल करेंगे जब GET अनुरोध में admin=update होगा। इस मेथड को इस तरह जोड़ें:

  public function display_update(){
    
  }  

अब हमने वह रूट जोड़ लिया है जो हमारे नए मेथड display_update() को कॉल करेगा। अब हमें इस मेथड को लिंक से जोड़ना है और इसकी कार्यप्रणाली लागू करनी है।

अब सोचते हैं कि अपडेट कैसे किया जाएगा। हमें एक ऐसी SQL क्वेरी की आवश्यकता होगी जिसमें WHERE शर्त दी जाए ताकि हम केवल उस रिकॉर्ड को अपडेट करें जिसकी पहचान स्पष्ट हो। इसके लिए हम रिकॉर्ड के id (हमारे मामले में कॉलम mid) का उपयोग करेंगे। इसलिए हमें मेथड को कॉल करते समय mid का मान पास करना होगा। यह हम GET अनुरोध के माध्यम से कर सकते हैं, जैसे:

http://test/index.php?admin=update&mid=3

या फिर इसे मेथड के पैरामीटर के रूप में भी दे सकते हैं:

  public function display_update($mid){
    
  } 

और इसे इस तरह कॉल करें:

	  switch ($_GET['admin']){
	    case 'add':
		  print $obj->display_admin(); 
		break;
		case 'update':
                  $mid = 1; // या यहाँ $_GET['mid'] भी दे सकते हैं
		  print $obj->display_update($mid); 
		break;
		default:
		  print $obj->display_public(); 
	  }

हालाँकि, GET के माध्यम से mid पास करना आसान है, इसलिए हम पहला तरीका उपयोग करेंगे:

  public function display_update(){
    $message_id = $_GET['mid'];
  }  

लेकिन अगर GET अनुरोध में mid नहीं दिया गया है तो क्या होगा? इसे जाँचना ज़रूरी है:

  public function display_update(){
    $message_id = $_GET['mid']; // mid को वेरिएबल में सहेजें
	if(!empty($message_id)){
	
	}else{
	  $content .= '<p>mid का मान नहीं दिया गया!</p>';
	  $content .= '<p><a href="/index.php">मुख्य पृष्ठ पर लौटें</a></p>';
	}
	return $content;
  }  

अब अगर हमारे पास admin=update है लेकिन mid नहीं है, तो हमें एक पेज मिलेगा जिसमें मुख्य पृष्ठ पर लौटने का लिंक होगा:

http://test/index.php?admin=update

अब हमें प्रत्येक संदेश के नीचे “संपादित करें” लिंक जोड़ना होगा। इसके लिए display_public() मेथड को संशोधित करें:

  public function display_public() { // संदेश प्रदर्शित करने की मेथड
    $content = '';
	$sql = 'SELECT * FROM Messages ORDER BY mid DESC'; 
	$result = mysql_query($sql) or die(mysql_error());  
	while($row = mysql_fetch_array($result)){ 
	  $content .= '<div class="post">'; 
	  $content .= '<span class="time">#' . $row['mid'] . ' दिनांक ' . date('d-m-Y', $row['created']) . '</span><h2>' . $row['title'] . '</h2>'; 	
	  $content .= '<p>' . $row['bodytext'] . '</p>'; 
	  $content .= '<p><a href="/index.php?admin=update&mid=' . $row['mid'] . '">संदेश संपादित करें</a>'; 
	  $content .= '</div>'; 
	}
	$content .= '<p><a href="/index.php?admin=add">संदेश जोड़ें</a></p>';
    return $content;
  }

अब प्रत्येक संदेश के नीचे “संपादित करें” लिंक दिखाई देगा। संदेश संपादित करने का फ़ॉर्म display_update() मेथड से प्रदर्शित होगा। यह फ़ॉर्म जोड़ने वाले फ़ॉर्म जैसा ही होगा, लेकिन इसमें पहले से मौजूद डेटा दिखाई देगा और एक छिपा हुआ mid फ़ील्ड भी जोड़ा जाएगा:

  public function display_update(){
    $message_id = $_GET['mid']; 
	if(!empty($message_id)){
	  $result = mysql_query('SELECT * FROM Messages WHERE mid='.$message_id); 
	  $message = mysql_fetch_object($result); 
	  $content = '';
	  $content .= '<form action="/index.php?admin=update" method="post">'; 
	  $content .= '<label for="title">नाम:</label><br />';
	  $content .= '<input name="title" id="title" type="text" maxlength="150" value=' . $message->title .' />';
	  $content .= '<div class="clear"></div>';
	  $content .= '<input name="mid" id="mid" type="hidden" value="'.$message->mid.'" />';
	  $content .= '<label for="bodytext">संदेश:</label><br />';
	  $content .= '<textarea name="bodytext" id="bodytext">'. $message->bodytext .'</textarea>';
	  $content .= '<div class="clear"></div>';
	  $content .= '<input type="submit" value="सहेजें" />';
	  $content .= '</form>';	
	  $content .= '<p><a href="/index.php">मुख्य पृष्ठ पर लौटें</a></p>';
	}else{
	  if (!empty($_POST)) {
	    print_r($_POST);
		$content .= '<p><a href="/index.php">मुख्य पृष्ठ पर लौटें</a></p>';
	  }else{
	    $content .= '<p>mid का मान नहीं है!</p>';
	    $content .= '<p><a href="/index.php">मुख्य पृष्ठ पर लौटें</a></p>';
	  }
	}
	return $content;
  } 

अब हमें POST डेटा को प्रोसेस करना होगा। फ़ॉर्म से प्राप्त ऐरे कुछ इस प्रकार होगा:

Array(
    [title] => asdf
    [mid] => 1
    [bodytext] => asdfasf
)

अब हम इस POST डेटा का उपयोग UPDATE क्वेरी में करेंगे:

  public function display_update(){
    $message_id = $_GET['mid']; 
	if(!empty($message_id)){
	  $result = mysql_query('SELECT * FROM Messages WHERE mid='.$message_id); 
	  $message = mysql_fetch_object($result); 
	  $content = '';
	  $content .= '<form action="/index.php?admin=update" method="post">';
	  $content .= '<label for="title">नाम:</label><br />';
	  $content .= '<input name="title" id="title" type="text" maxlength="150" value=' . $message->title .' />';
	  $content .= '<div class="clear"></div>';
	  $content .= '<input name="mid" id="mid" type="hidden" value="'.$message->mid.'" />';
	  $content .= '<label for="bodytext">संदेश:</label><br />';
	  $content .= '<textarea name="bodytext" id="bodytext">'. $message->bodytext .'</textarea>';
	  $content .= '<div class="clear"></div>';
	  $content .= '<input type="submit" value="सहेजें" />';
	  $content .= '</form>';	
	  $content .= '<p><a href="/index.php">मुख्य पृष्ठ पर लौटें</a></p>';
	}else{
	  if (!empty($_POST)) { 
		mysql_query('UPDATE Messages SET title="'.$_POST["title"].'", bodytext="'.$_POST["bodytext"].'" WHERE mid='.$_POST["mid"]);
		$content .= '<p>संदेश अपडेट किया गया!</p>';
		$content .= '<p><a href="/index.php#mid-'.$_POST['mid'].'">रिकॉर्ड पर जाएँ</a></p>';
	  }else{
	    $content .= '<p>mid का मान नहीं है!</p>';
	    $content .= '<p><a href="/index.php">मुख्य पृष्ठ पर लौटें</a></p>';
	  }
	}
	return $content;
  }  

अब आइए समझें कि UPDATE क्वेरी कैसे कार्य करती है: पहले UPDATE कीवर्ड आता है, उसके बाद तालिका का नाम। फिर SET ऑपरेटर आता है, जिसमें हम यह निर्धारित करते हैं कि किन फ़ील्डों के मान अपडेट होंगे। इसके बाद WHERE शर्त दी जाती है, जिससे हम बताते हैं कि केवल वही रिकॉर्ड अपडेट किया जाए जहाँ mid निर्दिष्ट मान के बराबर हो।

आगे चलकर हम सभी MySQL ऑपरेटरों का एक सारांश बनाएँगे, लेकिन यह पाठ उन शुरुआती छात्रों के लिए है जो अभी PHP और MySQL सीखना शुरू कर रहे हैं।

Прикрепленные файлы