Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP MySQL डेटाबेस में एकाधिक चेकबॉक्स और टेक्स्टबॉक्स सरणी डालने वाला है

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

हालांकि, जब आपके पास किसी फॉर्म में चेकबॉक्स होता है, तो यह केवल चेक किए गए लोगों को सबमिट करता है। इसका परिणाम यह होता है कि $_POST['checkbox'] . की अनुक्रमणिकाएं सरणी संबंधित $_POST['item'] . से मेल नहीं खाती और $_POST['quantity'] तत्व आपको स्पष्ट अनुक्रमणिका को checkbox . में डालने की आवश्यकता है नाम ताकि आप उन्हें जोड़ सकें।

<form method = "POST">

<input type = "hidden" name = "item[]" value = "cupcake">
<input type = "text" name = "items" value = "cupcake" readonly><br>
<b>Price :</b> <span name = "price" value = "3.00">$17.00</span><br>
Quantity: <input tabindex="1" name="quantity[]" min="0" max="5" type="number" class="quantity" value="1" /><br>
<input tabindex="1" name="checkbox[0]" type="checkbox" value="17" /><span>Add to Cart</span></label></div></div></td><br>

<input type = "hidden" name = "item[]" value = "cake">
<input type = "text" name = "items" value = "cake" readonly><br>
<b>Price :</b> <span name = "price" value = "20.00">$20.00</span><br>
Quantity: <input tabindex="1" name="quantity[]" min="0" max="5" type="number" class="quantity" value="1" /><br>
<input tabindex="1" name="checkbox[1]" type="checkbox" value="20" /><span>Add to Cart</span></label></div></div></td><br>

<input type = "submit" name = "insertBT"><br>
</form>

तब आपका PHP कोड इस तरह हो सकता है:

$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)");
$stmt->bind_param("sis", $name, $quantity, $price);
foreach ($_POST['checkbox'] as $i => $price) {
    $name = $_POST['name'][$i];
    $quantity = $_POST['quantity'][$i];
    $stmt->execute();
}

बीटीडब्लू, कीमतों को अपने एचटीएमएल में डालना एक बुरा विचार है। उपयोगकर्ता द्वारा फ़ॉर्म सबमिट करने से पहले वेब इंस्पेक्टर का उपयोग करके HTML को संशोधित करने से कुछ भी नहीं रोकता है, ताकि वे कीमत कम कर सकें। फ़ॉर्म को संसाधित करते समय आपको डेटाबेस से मूल्य प्राप्त करने चाहिए।

साथ ही, ध्यान दें कि आपने अपने मूल कोड में MySQLi का उपयोग करके डेटाबेस कनेक्शन खोला था, लेकिन फिर आपने mysql_query का उपयोग करके सम्मिलित करने का प्रयास किया। $conn->query() . के बजाय . आप एपीआई को इस तरह नहीं मिला सकते हैं; myql_query केवल तभी उपयोग किया जा सकता है जब आप mysql_connect . के साथ कनेक्शन खोलते हैं ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में एक स्ट्रिंग को आज तक कैसे परिवर्तित करें?

  2. हाइब्रिड क्लाउड डेटाबेस ट्रैफ़िक को कैसे एन्क्रिप्ट करें

  3. केस असंवेदनशील होने के लिए लिनक्स सर्वर में MySQL तालिका के नाम कैसे बदलें?

  4. SQL ALTER TABLE सिंटैक्स - DBMS द्वारा सूचीबद्ध

  5. PHP के भीतर से .sql फ़ाइलें लोड हो रही हैं