Вставка данных в базу данных mysql с помощью флажков php - PullRequest
0 голосов
/ 09 мая 2019

Немного рассердившись, перепробовал кучу вещей, но ничего не получалось.Я хочу создать форму для моего финального проекта фан-сайта Magic the Gathering, где вы можете установить флажки, чтобы заполнить столбец в базе данных либо буквой, либо вообще ничего.

<!Doctype html>
<html>

<head>
</head>

<body>
    <?php

    if (!empty($_POST)) {
        //connect to the database
        $mysqli = new mysqli('localhost', 'root', '', 'magic');
        //check the connection
        if ($mysqli->connect_error) {
            die('Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error);
        }
        //insert the data
        $sql = "INSERT INTO decks ( DeckName, Author, CardList ) VALUES ( '{$mysqli->real_escape_string($_POST['DeckName'])}', '{$mysqli->real_escape_string($_POST['Author'])}', '{$mysqli->real_escape_string($_POST['CardList'])}' )";
        $insert = $mysqli->query($sql);
        //insert the checkbox data
        if (isset($_POST['Red'])) {
            $sql = "INSERT INTO decks ( Red ) VALUES ( '{$mysqli->real_escape_string('R')}' ) ";
        } else {
            $sql = "INSERT INTO decks ( Red ) VALUES (' ')";
        }

        //response from the database
        if ($insert) {
            echo "Success!";
        } else {
            die("Error, please try again!");
        }

        //kill the connection
        $mysqli->close();
    }
    ?>

    <form method="post" action="">
        <input name="DeckName" type="text">
        <br>
        <br>
        <input name="Author" type="text">
        <br>
        <br>
        <input type="checkbox" id="Red" name="Red"> <img src="red.png" alt="Red">
        <input type="checkbox" id="Blue" name="Blue"> <img src="blue.png" alt="Blue">
        <input type="checkbox" id="Green" name="Green"> <img src="green.png" alt="Green">
        <input type="checkbox" id="White" name="White"> <img src="white.png" alt="White">
        <input type="checkbox" id="Black" name="Black"> <img src="black.png" alt="Black">
        <br>
        <br>
        <input name="CardList" type="text">
        <br>
        <br>
        <input type="submit" value="Submit Form">
    </form>
</body>

</html>

Я хочу, чтобы это былоR в столбце, если флажок установлен, и ничего, если это не так.В колонку вообще ничего не идет.

Ответы [ 3 ]

0 голосов
/ 09 мая 2019
In HTML
    <label> Language</label>
    <input type="checkbox" name="lan[]" value="eng">English
    <input type="checkbox" name="lan[]" value="tam">Tamil
    <input type="checkbox" name="lan[]" value="tel">Telugu
    <input type="checkbox" name="lan[]" value="hin">Hindi    
In php
    $lan=$_POST["lan"];
    $slan=implode[","$lan];
0 голосов
/ 09 мая 2019

if (!empty($_POST)) {
    //connect to the database
    $mysqli = new mysqli('localhost', 'root', '', 'magic');
    //check the connection
    if ($mysqli->connect_error) {
        die('Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error);
    }
    //Do NOT insert the data HERE 

    // the checkbox data
    if (isset($_POST['Red'])) {
        $red = 'R';
    } else {
        $red = ' ';
    }
    $sql = "INSERT INTO decks ( DeckName, Author, CardList, Red ) VALUES ( '{$mysqli->real_escape_string($_POST['DeckName'])}', '{$mysqli->real_escape_string($_POST['Author'])}', '{$mysqli->real_escape_string($_POST['CardList'])}' , '{$mysqli->real_escape_string($red)}' )";
    $insert = $mysqli->query($sql);
    //response from the database
    if ($insert) {
        echo "Success!";
    } else {
        die("Error, please try again!");
    }
    // I put the value of (red) in the insert sql before executing it so must be done with all check boxes ! ALL MUST BE IN ONE INSERT SENTENCE 
    //kill the connection
    $mysqli->close();
}
?>

<form method="post" action="">
    <input name="DeckName" type="text">
    <br>
    <br>
    <input name="Author" type="text">
    <br>
    <br>
    <input type="checkbox" id="Red" name="Red"> <img src="red.png" alt="Red">
    <input type="checkbox" id="Blue" name="Blue"> <img src="blue.png" alt="Blue">
    <input type="checkbox" id="Green" name="Green"> <img src="green.png" alt="Green">
    <input type="checkbox" id="White" name="White"> <img src="white.png" alt="White">
    <input type="checkbox" id="Black" name="Black"> <img src="black.png" alt="Black">
    <br>
    <br>
    <input name="CardList" type="text">
    <br>
    <br>
    <input type="submit" value="Submit Form">
</form>

В вашем коде вы просто устанавливаете предложение sql для вставки красного, но не выполняете его, и даже если вы это сделалибудет в новой строке с пустыми значениями других столбцов,

Код, который я написал, работает нормально для флажка Red

0 голосов
/ 09 мая 2019

Попробуйте вставить данные с кодом ниже:

<?php

if ( !empty( $_POST) ) {
    //connect to the database
    $mysqli = new mysqli( 'localhost', 'root', '', 'magic' );

    //check the connection
    if ( $mysqli->connect_error ) {
        die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
    }

    //insert the data
    $sql = "INSERT INTO decks ( DeckName, Author, CardList ) VALUES ( '{$mysqli->real_escape_string($_POST['DeckName'])}', '{$mysqli->real_escape_string($_POST['Author'])}', '{$mysqli->real_escape_string($_POST['CardList'])}' )";

    //insert the checkbox data
    if ( isset($_POST['Red']) ) {
        $sql = "INSERT INTO decks ( Red ) VALUES ( '{$mysqli->real_escape_string('R')}' ) ";
    } else { 
        $sql = "INSERT INTO decks ( Red ) VALUES (' ')";
    }

    //response from the database
    if ($mysqli->query($sql) === TRUE) {
        echo "Success!";
    } else {
        die("Error, please try again!");
    }

    //kill the connection
    $mysqli->close();
}
?>

Удалите эту строку $insert = $mysqli-> query($sql); из своего кода и замените if ($mysqli->query($sql) === TRUE) { на код тура if ( $insert ) {

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...