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

पैरेंट आईडी के साथ सरणी विधि का उपयोग करके तालिका में डालें

यह ठीक करना चाहिए। अगर आगे कोई और समस्या हो तो मुझे बताएं।

<?php
try {
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "2d_system";
    $conn = new mysqli($servername, $username, $password, $dbname);
    if($stmt = $conn->prepare($conn, "SELECT `Availability` FROM `number_availability` WHERE `Number`=? AND `GameCenter`=?")){
        foreach($_POST['gamecenter'] as $key => $value){
            $gamecenter = $_POST['gamecenter'][$key];
            $number = $_POST['number'][$key];
            $stmt->bind_param('ii', $number, $gamecenter); // if any of these values is a String, use 's' for that value instead (ii means integer-integer)
            $stmt->execute();
            if($conn->errno){
                throw new Exception("Error: could not check for availability: " . $conn->error);
            }
            $result = $stmt->get_result();
            $data = $result->fetch_array();
            if($data['Availability'] <= 0){
                unset($_POST['gamecenter'][$key]);
                unset($_POST['number'][$key]);
                unset($_POST['price'][$key]);
            }
        }
    }
    if($conn->errno){
        throw new Exception("Error: could not check for availability: " . $conn->error);
    }
    if(count($_POST['gamecenter']) > 0){
        if($conn->query("INSERT INTO `lottery_ticket` (`CreatedDateTime`) VALUES (now())")){
            $lotteryTicketID = $conn->insert_id;
            foreach($_POST['gamecenter'] as $key => $value){
                $gamecenter = $_POST['gamecenter'][$key];
                $number = $_POST['number'][$key];
                $price = $_POST['price'][$key];
                if($stmt = $conn->prepare("INSERT INTO `" . strtolower($gamecenter) . "_draw` (`LotteryId`, `" . $gamecenter . "_Number`, `Price`) VALUES (?, ?, ?)")){
                    $stmt->bind_param('idd', $lotteryTicketID, $number, $price);
                    $stmt->execute();
                }
                if($conn->errno){
                    throw new Exception("Error: could not execute query/queries: " . $conn->error);
                }
            }
        }
        if($conn->errno){
            throw new Exception("Error: could not execute query/queries: " . $conn->error);
        }
        echo "Records added successfully.";
    } else {
        throw new Exception("Error: no available numbers.");
    }
} catch(Exception $e){
    echo $e->getMessage();
}
$conn->close();
?>

वैसे, इससे पहले कि आप विकास करना जारी रखें, पैरामीटरयुक्त कथनों के बारे में और पढ़ें। साथ ही, मैं आपको जो कोड दे रहा हूं उसे समझने की कोशिश करें और टिप्पणियों को पढ़ें। पिछली बार मैंने सब कुछ काफी बदल दिया था और मैं इस प्रश्न में देख सकता हूं कि आपने उस सब को नजरअंदाज कर दिया। इसके अलावा, आप अपने कोड के तर्क को समझ नहीं पा रहे हैं, इसलिए इस पर कुछ विचार करें। प्रत्येक एल्गोरिथम को कागज में लिखने का प्रयास करें, फिर एल्गोरिथम का परीक्षण करें, और फिर उस एल्गोरिथम के आधार पर अपने एप्लिकेशन बनाएं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CreateSQLQuery काम करता है लेकिन QueryOver NHibernate के साथ नहीं है

  2. मैं MySQL में कॉलम कैसे पिछड़ सकता हूं?

  3. मैं MySQL में कमांड लाइन का उपयोग करके SQL फ़ाइल कैसे आयात करूं?

  4. अन्य मेटाडेटा खोए बिना MySQL में कॉलम डेटा प्रकार बदलें (DEFAULT, NOTNULL...)

  5. जावा नौसिखिया को डेटाबेस कनेक्शन में मदद चाहिए