Codeigniter XML Datafeed для нескольких (таблицы MYSQL)

0

доброта.. для меня это была большая головная боль.

Я пытаюсь получить переменные SQL1, SQL2 и SQL3 для обновления различных таблиц mysql.. но как на самом деле SQL2 и SQL3 " product_id " поля, коррелируют с SQL1?

См. "Id" в разделах вставки в SQL2 и SQL3. Я не уверен, как заменить и захватить эти сгенерированные данные в эти разделы, не делая более уродливого кода.

Кроме того, если у кого-нибудь из вас есть идея, как сделать это проще, пожалуйста, помогите ему здесь. Это выглядит довольно грязно для меня.. Конечно, есть лучшие способы :(

// DB Settings
$servername = "localhost";
$username = "user";
$password = "pass";
$dbname = "db";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// Load data from XML file
$xml = simplexml_load_file("Datafeed.xml");

// Capture XML Data 
foreach($xml->children() as $product) { 

    // Change stock wording
    $stock = $product->stock;
    if ($stock == 'yes') {
        $stock = 'on';
    } else {
        $stock = 'off'; }

// Convert XML data and insert into MYSQL

        $sql = "INSERT INTO testshop_products (product_id, product_name, product_type, product_price, product_status) VALUES ("echo $product->code;", "echo $product->cat;", "echo $product->price;","echo $stock;")";

        $sql2 = "INSERT INTO testshop_product_details (product_id, product_color, product_image, details_status) VALUES ('id', "Generating...", "echo $product->img;","echo $stock;")";

        $sql3 = "INSERT INTO testshop_spesifications (product_id, specs_meta, specs_details, specs_slug, specs_status) VALUES ('id', General, "echo $product->img;", general, "echo $stock;")"; 

        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
        $conn->close();

        if ($conn->query($sql2) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
        $conn->close();

        if ($conn->query($sql3) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
        $conn->close();
    } 
Теги:
codeigniter

1 ответ

2
write store procedure and inset all records and all table it will find.

store procedure like this
CREATE  PROCEDURE 'addJobApplicant'(IN XMLINPUT 
text, OUT vresult VARCHAR(100))
BEGIN

DECLARE iCounter INT DEFAULT 1;
DECLARE maxCount INT;
SET vcompID=ExtractValue(XMLINPUT, '/ROOT/HEADER/COMPANYID[$iCounter]');
SET vjpID=ExtractValue(XMLINPUT, '/ROOT/HEADER/JOBID[$iCounter]');

insert command here 

SET vresult = 'Успешно вставлен'; конец

  • 0
    Однако, это действительно крутой ответ. Я использую PHP, чтобы сделать это из XML-файла в MYSQL…, поэтому мне немного затруднительно сделать это таким образом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню