वेबसाइट पर सामग्री बनाना, संपादित करना, अपडेट करना और हटाना साइट को गतिशील बनाता है। यही हम इस पोस्ट में करने जा रहे हैं।
एक उपयोगकर्ता जो हमारी साइट पर जाता है, वह पोस्ट बनाने में सक्षम होगा जो एक mysql डेटाबेस में सहेजे जाएंगे, डेटाबेस से पोस्ट पुनर्प्राप्त करेंगे और उन्हें वेब पेज पर प्रदर्शित करेंगे। प्रत्येक पोस्ट को संपादित करें और हटाएं बटन के साथ प्रदर्शित किया जाएगा ताकि उपयोगकर्ता पोस्ट को अपडेट करने के साथ-साथ उन्हें हटा सकें।
सबसे पहले, crud नाम का एक डेटाबेस बनाएं। क्रूड डेटाबेस में, जानकारी . नामक एक तालिका बनाएं जानकारी तालिका में निम्नलिखित कॉलम होने चाहिए:
-
आईडी - इंट(11)
- नाम - वर्चर(100)
- पता - वर्कर(100)
हाँ! बस दो मैदान। मैं यहां चीजों को सरल रखने की कोशिश कर रहा हूं। तो, चलिए अगले चरण पर चलते हैं।
index.php नाम की एक फाइल बनाएं और उसमें निम्नलिखित कोड पेस्ट करें:
<!DOCTYPE html>
<html>
<head>
<title>CRUD: CReate, Update, Delete PHP MySQL</title>
</head>
<body>
<form method="post" action="server.php" >
<div class="input-group">
<label>Name</label>
<input type="text" name="name" value="">
</div>
<div class="input-group">
<label>Address</label>
<input type="text" name="address" value="">
</div>
<div class="input-group">
<button class="btn" type="submit" name="save" >Save</button>
</div>
</form>
</body>
</html>
यदि आप अपने ब्राउज़र पर साइट को सहेजते और खोलते हैं, तो आपको कुछ इस तरह मिलता है:
दुनिया में सबसे अच्छा रूप नहीं दिखता है ना? चलिए इसे ठीक करते हैं। इस लाइन को सीधे अपनी index.php फ़ाइल के हेड सेक्शन में
<link rel="stylesheet" type="text/css" href="style.css">
स्टाइलशीट फ़ाइल से स्टाइल लोड करने के लिए वह लिंक है। आइए Styles.css फ़ाइल बनाएं और उसमें यह स्टाइलिंग कोड जोड़ें।
body {
font-size: 19px;
}
table{
width: 50%;
margin: 30px auto;
border-collapse: collapse;
text-align: left;
}
tr {
border-bottom: 1px solid #cbcbcb;
}
th, td{
border: none;
height: 30px;
padding: 2px;
}
tr:hover {
background: #F5F5F5;
}
form {
width: 45%;
margin: 50px auto;
text-align: left;
padding: 20px;
border: 1px solid #bbbbbb;
border-radius: 5px;
}
.input-group {
margin: 10px 0px 10px 0px;
}
.input-group label {
display: block;
text-align: left;
margin: 3px;
}
.input-group input {
height: 30px;
width: 93%;
padding: 5px 10px;
font-size: 16px;
border-radius: 5px;
border: 1px solid gray;
}
.btn {
padding: 10px;
font-size: 15px;
color: white;
background: #5F9EA0;
border: none;
border-radius: 5px;
}
.edit_btn {
text-decoration: none;
padding: 2px 5px;
background: #2E8B57;
color: white;
border-radius: 3px;
}
.del_btn {
text-decoration: none;
padding: 2px 5px;
color: white;
border-radius: 3px;
background: #800000;
}
.msg {
margin: 30px auto;
padding: 10px;
border-radius: 5px;
color: #3c763d;
background: #dff0d8;
border: 1px solid #3c763d;
width: 50%;
text-align: center;
}
आइए अब ब्राउज़र में अपना फॉर्म फिर से देखें:
वह बेहतर है!
मैं आमतौर पर जितना संभव हो सके अपने एचटीएमएल कोड को अपने PHP कोड से अलग करना पसंद करता हूं। मैं उस अच्छे अभ्यास को मानता हूं। उस नोट पर, चलिए php_code.php नामक एक और फ़ाइल बनाते हैं जहां हम डेटाबेस से कनेक्ट करने, डेटाबेस को क्वेरी करने और इसी तरह की सभी PHP कार्यक्षमताओं को लागू करते हैं।
तो php_code.php खोलें और उसमें निम्न कोड पेस्ट करें:
<?php
session_start();
$db = mysqli_connect('localhost', 'root', '', 'crud');
// initialize variables
$name = "";
$address = "";
$id = 0;
$update = false;
if (isset($_POST['save'])) {
$name = $_POST['name'];
$address = $_POST['address'];
mysqli_query($db, "INSERT INTO info (name, address) VALUES ('$name', '$address')");
$_SESSION['message'] = "Address saved";
header('location: index.php');
}
// ...
अब इस फाइल को अपनी index.php फाइल के सबसे ऊपर (सबसे पहली लाइन) में शामिल करें। इस तरह:
<?php include('server.php'); ?>
इस बिंदु पर, यह कोड केवल डेटाबेस से कनेक्ट होता है, कुछ चर प्रारंभ करता है और हमारे द्वारा पहले बनाई गई जानकारी में फ़ॉर्म से सबमिट किए गए डेटा को डेटाबेस में सहेजता है। यह सीआरयूडी का केवल क्रिएट पार्ट है। आइए दूसरों के साथ आगे बढ़ें।
अब फिर से अपनी index.php फाइल पर जाएं और इस कोड को
// ...
<body>
<?php if (isset($_SESSION['message'])): ?>
<div class="msg">
<?php
echo $_SESSION['message'];
unset($_SESSION['message']);
?>
</div>
<?php endif ?>
यह कोड उपयोगकर्ता को यह बताने के लिए एक पुष्टिकरण संदेश प्रदर्शित करता है कि डेटाबेस में एक नया रिकॉर्ड बनाया गया है।
डेटाबेस रिकॉर्ड्स को पुनः प्राप्त करने और उन्हें पेज पर प्रदर्शित करने के लिए, इस कोड को इनपुट फॉर्म के ठीक ऊपर जोड़ें:
<?php $results = mysqli_query($db, "SELECT * FROM info"); ?>
<table>
<thead>
<tr>
<th>Name</th>
<th>Address</th>
<th colspan="2">Action</th>
</tr>
</thead>
<?php while ($row = mysqli_fetch_array($results)) { ?>
<tr>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['address']; ?></td>
<td>
<a href="index.php?edit=<?php echo $row['id']; ?>" class="edit_btn" >Edit</a>
</td>
<td>
<a href="server.php?del=<?php echo $row['id']; ?>" class="del_btn">Delete</a>
</td>
</tr>
<?php } ?>
</table>
<form>
// ...
आइए एक नया रिकॉर्ड बनाएं और देखें कि क्या यह काम करता है:
..और वोइला !! यह एकदम सही काम करता है!
अब हम संपादन की ओर बढ़ते हैं। अपनी index.php फ़ाइल के शीर्ष पर (शामिल विवरण के तुरंत बाद) निम्नलिखित कोड जोड़ें:
<?php
if (isset($_GET['edit'])) {
$id = $_GET['edit'];
$update = true;
$record = mysqli_query($db, "SELECT * FROM info WHERE id=$id");
if (count($record) == 1 ) {
$n = mysqli_fetch_array($record);
$name = $n['name'];
$address = $n['address'];
}
}
?>
डेटाबेस रिकॉर्ड को संपादित करते समय, हमें पुराने मानों को फॉर्म में डालने की आवश्यकता होती है ताकि उन्हें संशोधित किया जा सके। ऐसा करने के लिए, आइए फॉर्म पर हमारे इनपुट फ़ील्ड को संशोधित करें और डेटाबेस ($name, $address) से लिए गए मानों को value के मानों के रूप में सेट करें। फ़ॉर्म फ़ील्ड की विशेषता.
रिकॉर्ड की आईडी को होल्ड करने के लिए एक छिपा हुआ फ़ील्ड भी जोड़ें जिसे हम अपडेट कर रहे हैं ताकि इसे डेटाबेस में विशिष्ट रूप से इसकी आईडी से पहचाना जा सके। यह इसे बेहतर तरीके से समझाता है:
// newly added field
<input type="hidden" name="id" value="<?php echo $id; ?>">
// modified form fields
<input type="text" name="name" value="<?php echo $name; ?>">
<input type="text" name="address" value="<?php echo $address; ?>">
याद रखें कि वह सब इनपुट