如何在使用PHP和MySQL的复选框中使用布尔值

问题描述 投票:0回答:1

所以我试图弄清楚如何使用复选框设置布尔值。

编辑:我需要将布尔值保存到数据库中,如果在编辑联系人或添加新联系人时选中,则为true;如果未选中,则为false。

我曾经在PHP和MySQL中使用过字符串和整数,但是似乎无法弄清楚布尔值(我对PHP还是很陌生)。

同样,我知道这样设置字符串,但是对于布尔值我该怎么办?还是仅仅是字符串?我可以将其验证为字符串还是整数?

mysqli_stmt_bind_param($stmt, 'sssssssss', $gos_bname, $gos_pname, $gos_email, $gos_url, $gos_phone, $gos_address, $gos_city, $gos_province, $gos_desc);

我知道很多,但是这是我到目前为止所拥有的一切。

The checkbox in MySQL

编辑页面

<?php

include(__DIR__."/includes/db.php");
include(__DIR__."/includes/validate.php");


$conNotFound = true;
$conDetails = [];

$isPostRequest = false;
$isValidForm = false;
$successfulSave = false;


if ($_SERVER['REQUEST_METHOD'] === "GET") {
  if (isset($_GET['id'])) {
    $con_id = validate_number($_GET['id']);

    if ($con_id != false) {
      $conDetails = get_con_by_id($con_id);
    }
  }


} else if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $isPostRequest = true;
    $gos_bname = "";
    $gos_pname = "";
    $gos_email = "";
    $gos_phone = "";
    $gos_url = "";
    $gos_address = "";
    $gos_city = "";
    $gos_province = "";
    $gos_description = "";
    $gos_checkbox = 1; 
    $con_id = null;

    if (isset($_POST['gos_bname'])
        && isset($_POST['gos_pname'])
        && isset($_POST['gos_email'])
        && isset($_POST['gos_phone'])
        && isset($_POST['gos_url'])
        && isset($_POST['gos_address'])
        && isset($_POST['gos_city'])
        && isset($_POST['gos_province'])
        && isset($_POST['gos_description'])
        && isset($_POST['gos_checkbox'])
        && isset($_POST['con_id'])){

        $gos_bname = validate_string($_POST['gos_bname']);
        $gos_pname = validate_string($_POST['gos_pname']);
        $gos_email = validate_string($_POST['gos_email']);
        $gos_phone = validate_string($_POST['gos_phone']);
        $gos_url = validate_string($_POST['gos_url']);
        $gos_address = validate_string($_POST['gos_address']);
        $gos_city = validate_string($_POST['gos_city']);
        $gos_province = validate_string($_POST['gos_province']);
        $gos_description = validate_string($_POST['gos_description']);
        $char_id = validate_number($_POST['char_id']);


        if ($gos_bname != false
            && $gos_pname != false
            && $gos_email != false
            && $gos_phone != false
            && $gos_url != false
            && $gos_address != false
            && $gos_city != false
            && $gos_province != false
            && $gos_description != false
            && $gos_checkbox = !false
            && $con_id != false){

            $isValidForm = true;
        }

    }


    if ($isValidForm) {
      $successfulSave = update_con_by_id($gos_bname, $gos_pname, $gos_email, $gos_url, $gos_phone, $gos_address, $gos_city, $gos_province, $gos_desc, $gos_checkbox, $con_id);
    }
}

?>
<!doctype html>
<html class="no-js" lang="">

<head>
  <meta charset="utf-8">
  <title>Edit Character</title>
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1">


  <link href="https://fonts.googleapis.com/css?family=Luckiest+Guy&display=swap" rel="stylesheet">

  <link href="https://fonts.googleapis.com/css?family=Raleway:400,700&display=swap" rel="stylesheet">

  <link rel="stylesheet" href="css/main.css">
</head>

<body>

  <header>
        <h1>Contacts DB</h1>
        <nav class="nav-bar">
          <ul class="nav-list">
            <li><a href="index.php">Home</a></li>
            <li><a href="list.php">Character List</a></li>
            <li><a href="insert.php">Add Characters</a></li>
            <li><a href="search.php">Search</a></li>
          </ul>          
        </nav>
  </header>
  <main>
      <div class="form-container">
        <?php if($conNotFound && $conDetails == [] && !$isPostRequest) {?>
          <h2>Contact not found</h2>
          <p>Note: this would normally go to a 404</p>
        <?php } else if (!$isPostRequest){ ?>
        <form method='post' action='<?php echo $_SERVER['PHP_SELF']; ?>'>

          <h2>Edit Contact: <?php echo $conDetails['gos_bname']?></h2>

          <input type="number"
                class="hidden"
                name="char_id"
                value="<?php echo $con_id?>"
                >

          <div class="form-group">
            <label for="business-name">Business Name:</label>
            <input type="text"
                  class="form-control"
                  id="business-name"
                  name="gos_bname"
                  value="<?php echo $conDetails['gos_bname']?>"
                  >
          </div>

          <div class="form-group">
            <label for="contact-person">Contact:</label>
            <input type="text"
                  class="form-control"
                  id="contact-person"
                  name="gos_pname"
                  value="<?php echo $conDetails['gos_pname']?>"
                  >
          </div>

          <div class="form-group">
            <label for="email">Email:</label>
            <input type="text"
                  class="form-control"
                  id="email"
                  name="gos_email"
                  value="<?php echo $conDetails['gos_email']?>"
                  >
          </div>

          <div class="form-group">
            <label for="phone">Phone:</label>
            <input type="text"
                  class="form-control"
                  id="phone"
                  name="gos_phone"
                  value="<?php echo $conDetails['gos_phone']?>"
                  >
          </div>

          <div class="form-group">
            <label for="website">Website</label>
            <input type="text"
                  class="form-control"
                  id="website"
                  name="gos_url"
                  value="<?php echo $conDetails['gos_url']?>"
                  >
          </div>

          <div class="form-group">
            <label for="address">Address</label>
            <input type="text"
                  class="form-control"
                  id="address"
                  name="gos_address"
                  value="<?php echo $conDetails['gos_address']?>"
                  >
          </div>

          <div class="form-group">
            <label for="city">City:</label>
            <input type="text"
                  class="form-control"
                  id="city"
                  name="gos_city"
                  value="<?php echo $conDetails['gos_city']?>"
                  >
          </div>

          <div class="form-group">
            <label for="province">Province:</label>
            <input type="text"
                  class="form-control"
                  id="province"
                  name="gos_province"
                  value="<?php echo $conDetails['gos_province']?>"
                  >
          </div>


          <div class="form-group">
            <label for="description">Description:</label>
            <textarea rows="8" type="text"
                  class="form-control"
                  id="description"
                  name="gos_desc"
                  value="<?php echo $conDetails['gos_desc']?>">
                  <?php echo $conDetails['gos_desc']?>
            </textarea>

          </div>

          <div class="form-group">
            <label for="sent-resume">Sent Resume To:</label>
            <input type="checkbox"
                  class="form-control"
                  id="sent-resume"
                  name="gos_checkbox"
                  value="<?php echo $conDetails['gos_checkbox']?>"
                  >
          </div>

          <button class="submit" type="submit">Edit Contact</button>

      </div>
  </main>
</body>

</html>

插入页面

<?php
include(__DIR__."/includes/db.php");
include(__DIR__."/includes/validate.php");
$isPostRequest = false;
$isValidForm = false;
$successfulSave = false;

if ($_SERVER['REQUEST_METHOD'] == "POST") {
  $isPostRequest = true;
  $gos_bname = "";
  $gos_pname = "";
  $gos_email = "";
  $gos_phone = "";
  $gos_url = "";
  $gos_address = "";
  $gos_city = "";
  $gos_province = "";
  $gos_description = "";
  $gos_checkbox = 1; 
  $con_id = null;

    if (isset($_POST['gos_bname'])
        && isset($_POST['gos_pname'])
        && isset($_POST['gos_email'])
        && isset($_POST['gos_phone'])
        && isset($_POST['gos_url'])
        && isset($_POST['gos_address'])
        && isset($_POST['gos_city'])
        && isset($_POST['gos_province'])
        && isset($_POST['gos_description'])
        && isset($_POST['gos_checkbox'])
        && isset($_POST['con_id'])){

          $gos_bname = validate_string($_POST['gos_bname']);
          $gos_pname = validate_string($_POST['gos_pname']);
          $gos_email = validate_string($_POST['gos_email']);
          $gos_phone = validate_string($_POST['gos_phone']);
          $gos_url = validate_string($_POST['gos_url']);
          $gos_address = validate_string($_POST['gos_address']);
          $gos_city = validate_string($_POST['gos_city']);
          $gos_province = validate_string($_POST['gos_province']);
          $gos_description = validate_string($_POST['gos_description']);
          $char_id = validate_number($_POST['char_id']);


        if ($gos_bname != false
              && $gos_pname != false
              && $gos_email != false
              && $gos_phone != false
              && $gos_url != false
              && $gos_address != false
              && $gos_city != false
              && $gos_province != false
              && $gos_description != false
              && $gos_checkbox = !false
              && $con_id != false){

            $isValidForm = true;
        }

    }

    if ($isValidForm) {
      $successfulSave = insert_new_con($gos_bname, $gos_pname, $gos_email, $gos_url, $gos_phone, $gos_address, $gos_city, $gos_province, $gos_desc, $gos_checkbox);
    }
}
?>
<!doctype html>
<html class="no-js" lang="">

<head>
  <meta charset="utf-8">
  <title>Add a Character</title>
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1">


  <link href="https://fonts.googleapis.com/css?family=Luckiest+Guy&display=swap" rel="stylesheet">

  <link href="https://fonts.googleapis.com/css?family=Raleway:400,700&display=swap" rel="stylesheet">

  <link rel="stylesheet" href="css/main.css">
</head>
<body>
    <header>
          <h1>Contacts DB</h1>
          <nav class="nav-bar">
            <ul class="nav-list">
              <li><a href="index.php">Home</a></li>
              <li><a href="list.php">Character List</a></li>
              <li><a href="insert.php">Add Characters</a></li>
              <li><a href="search.php">Search</a></li>
            </ul>          
          </nav>
    </header>
    <main>
      <div class="form-container">
      <?php if (!$isPostRequest){ ?>
      <form  method='post' action='<?php echo $_SERVER['PHP_SELF']; ?>'>
        <h2>Add a new Contact</h2>

        <div class="form-group">
            <label for="business-name">Business Name:</label>
            <input type="text"
                  class="form-control"
                  id="business-name"
                  name="gos_bname"
                  >
          </div>

          <div class="form-group">
            <label for="contact-person">Contact:</label>
            <input type="text"
                  class="form-control"
                  id="contact-person"
                  name="gos_pname"
                  >
          </div>

          <div class="form-group">
            <label for="email">Email:</label>
            <input type="text"
                  class="form-control"
                  id="email"
                  name="gos_email"
                  >
          </div>

          <div class="form-group">
            <label for="phone">Phone:</label>
            <input type="text"
                  class="form-control"
                  id="phone"
                  name="gos_phone"
                  >
          </div>

          <div class="form-group">
            <label for="website">Website</label>
            <input type="text"
                  class="form-control"
                  id="website"
                  name="gos_url"
                  >
          </div>

          <div class="form-group">
            <label for="address">Address</label>
            <input type="text"
                  class="form-control"
                  id="address"
                  name="gos_address"
                  >
          </div>

          <div class="form-group">
            <label for="city">City:</label>
            <input type="text"
                  class="form-control"
                  id="city"
                  name="gos_city"
                  >
          </div>

          <div class="form-group">
            <label for="province">Province:</label>
            <input type="text"
                  class="form-control"
                  id="province"
                  name="gos_province"
                  >
          </div>


          <div class="form-group">
            <label for="description">Description:</label>
            <textarea rows="8" type="text"
                  class="form-control"
                  id="description"
                  name="gos_desc"
                  >

            </textarea>

          </div>

          <div class="form-group">
            <label for="sent-resume">Sent Resume To:</label>
            <input type="checkbox"
                  class="form-control"
                  id="sent-resume"
                  name="gos_checkbox"
                  >
          </div>

        <button class="submit" type="submit">Submit</button>
      </form>

      <?php } else { ?>

      <h2 class="form-submitted">Submitted Contact</h2>
      <div>
          <?php if ($successfulSave) {
            echo "<p class=\"success\">Contact successfully added</p>";
          } else {
            echo "<p class=\"edit-error\">ERROR:<br/> Unable to add contact<br/>
            Please make sure all fields are filled out properly!</p>";
          }?>
        </div>

      <?php }?>
      </div>
    </main>
</body>

</html>

验证

<?php

function validate_string($string) {
    $string = filter_var($string, FILTER_SANITIZE_STRING);

    if ($string == "") {
        return false;
    }
    return $string;
}

function validate_number($number) {
    $number = filter_var($number, FILTER_SANITIZE_NUMBER_INT);
    $number = filter_var($number, FILTER_VALIDATE_INT);
    return $number;
}
php html mysql boolean helper
1个回答
0
投票

您可以使用数据类型ENUM和值'1','0'吗?这可能有助于将1分配为true,将0分配为false。

© www.soinside.com 2019 - 2024. All rights reserved.