Попытка получить контактную форму для отображения в таблице базы данных html - искажен образ диска в базе данных - PullRequest
0 голосов
/ 19 мая 2019

Я делаю проект для универа.Мне нужно

  • Использовать предоставленную базу данных SQL для извлечения и отображения некоторых данных пользователю.
  • Форма для ввода данных в базу данных или поиска в базе данных - вы можете выбрать, какую выхочу сделать.

В данный момент мой веб-сайт сообщает, что образ диска базы данных искажен, и когда я набираю контактную форму и ничего не отправляю, в таблицу я вносил.

База данныхФайл - (не удалось вставить код)

Другой файл базы данных

Вот запросDb.php

<?php

   class MyDB extends SQLite3
   {
      function __construct()
      {
            $this->open('1621ICT.db');
      }
   }

   function getCustomers($searchTerm = null) {
      
      $db = new MyDB();
      if(!$db){
         echo '<script type="text/javascript">alert("'.$db->lastErrorMsg().'");</script>';
      } else {
         //echo "Opened database successfully\n";
      }
      if(!$searchTerm) {
         $sql ='SELECT * from CUSTOMERS;';
      } else {
         $sql ='SELECT * FROM CUSTOMERS WHERE FIRSTNAME LIKE "'.$searchTerm.'" OR LASTNAME LIKE "'.$searchTerm.'" OR ADDRESS LIKE "'.$searchTerm.'" OR PHONE  LIKE "'.$searchTerm.'"';
      }
      $ret = $db->query($sql);
      $array = [];
      if(!$ret){
        echo $db->lastErrorMsg();
        return [];
      } else {
         while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
            $array[] = $row;
         }
         $db->close();
         return $array;
      }
   }
   
   
   function getProducts($searchTerm = null) {
      
      $db = new MyDB();
      if(!$db){
         echo '<script type="text/javascript">alert("'.$db->lastErrorMsg().'");</script>';
      } else {
         //echo "Opened database successfully\n";
      }

      if(!$searchTerm) {
         $sql ='SELECT * from PRODUCTS;';
      } else {
         $sql ='SELECT * FROM PRODUCTS WHERE PRODUCTNAME LIKE "'.$searchTerm.'" OR MANUFACTURER LIKE "'.$searchTerm.'" OR DESCRIPTION LIKE "'.$searchTerm.'" OR PRICE LIKE "'.$searchTerm.'"';
      }
      $ret = $db->query($sql);
      $array = [];
      if(!$ret){
        echo $db->lastErrorMsg();
        return [];
      } else {
         while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
            $array[] = $row;
         }
         $db->close();
         return $array;
      }
   }
   
   
   function getEvents($searchTerm = null) {
      $db = new MyDB();
      if(!$db){
         echo '<script type="text/javascript">alert("'.$db->lastErrorMsg().'");</script>';
      } else {
         //echo "Opened database successfully\n";
      }
      
        if(!$searchTerm) {
         $sql ='SELECT * from EVENTS;';
      } else {
         $sql ='SELECT * FROM EVENTS WHERE EVENTNAME LIKE "'.$searchTerm.'" OR DESCRIPTION LIKE "'.$searchTerm.'" OR LOCATION LIKE "'.$searchTerm.'" OR DATE LIKE "'.$searchTerm.'"';
      }
      $ret = $db->query($sql);
      $array = [];
      if(!$ret){
        echo $db->lastErrorMsg();
        return [];
      } else {
         while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
            $array[] = $row;
         }
         $db->close();
         return $array;
      }
   }
   
   
   
   function addCustomer($fname, $lname, $address, $phone) {
      
      $db = new MyDB();
      if(!$db){
         echo '<script type="text/javascript">alert("'.$db->lastErrorMsg().'");</script>';
      } else {
         //echo "Opened database successfully\n";
      }

      $sql ='INSERT INTO CUSTOMERS (FIRSTNAME, LASTNAME, ADDRESS, PHONE) VALUES ("'.$fname.'", "'.$lname.'", "'.$address.'", "'.$phone.'");';
      $db->query($sql);
   }
   
   
   function addProduct($pname, $man, $desc, $price) {
      
      $db = new MyDB();
      if(!$db){
         echo '<script type="text/javascript">alert("'.$db->lastErrorMsg().'");</script>';
      } else {
         //echo "Opened database successfully\n";
      }

      $sql ='INSERT INTO PRODUCTS (PRODUCTNAME, MANUFACTURER, DESCRIPTION, PRICE) VALUES ("'.$pname.'", "'.$man.'", "'.$desc.'", "'.$price.'");';
      $db->query($sql);
   }
   
   
   function addEvent($ename, $loc, $desc, $date) {
      
      $db = new MyDB();
      if(!$db){
         echo '<script type="text/javascript">alert("'.$db->lastErrorMsg().'");</script>';
      } else {
         //echo "Opened database successfully\n";
      }

      $sql ='INSERT INTO EVENTS (EVENTNAME, LOCATION, DESCRIPTION, DATE) VALUES ("'.$ename.'", "'.$loc.'", "'.$desc.'", "'.$date.'");';
      $db->query($sql);
   }
   
      
?>

Вот мой contact.php с формой на нем.

<?php
    require_once "queryDb.php";
    $firstname  = isset($_POST["firstname"])? htmlspecialchars(trim($_POST["firstname"]))   : null;
    $lastname   = isset($_POST["lastname"]) ? htmlspecialchars(trim($_POST["lastname"]))    : null;
    $address    = isset($_POST["address"])  ? htmlspecialchars(trim($_POST["address"]))     : null;
    $phone      = isset($_POST["phone"])    ? htmlspecialchars(trim($_POST["phone"]))       : null;


    if(!is_null($firstname) && !is_null($lastname) && !is_null($address) && !is_null($phone) ){
        addCustomer($firstname, $lastname, $address, $phone);
    }

?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Plantscape</title>
<link href="stylesheet.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Lily+Script+One" rel="stylesheet">
<script type="text/javascript" src="script.js"></script>
</head>

<body>

    	<div class="logo">
    		<h1>Plantscape.</h1>
    	</div>
        <div class="navbar">
    		<a href="contact.php" class="btn">Contact</a>
    		<a href="about.php" class="btn">About</a>
    		<a href="services.html" class="btn">Services</a>
    		<a href="portfolio.html" class="btn">Portfolio</a>
    		<a href="index.html" class="btn">Home</a>
    	</div>
	<div id="page">
	   <div class="img">
	       <img src="images/form.png">
	   </div>
       <div class="formcontact">
       <form class="form-group" name="contactform" id="contactform" method="post" action="about.php">
            <fieldset>
                    <label class="block" for="firstname" >First Name</label>
                    <input type="text" name="firstname" class="form-control" placeholder="Enter your First Name..." id="firstname">
            </fieldset>
            <fieldset>
                    <label class="block" for="lastname">Last Name</label>
                    <input type="text" name="lastname" class="form-control" placeholder="Enter your Last Name..." id="lastname">
            </fieldset>
            <fieldset>
                    <label class="block" for="address">Address</label>
                    <input type="text" name="address" class="form-control" placeholder="Enter your address..." id="address">
            </fieldset>
                        <fieldset>
                    <label class="block" for="phone">Phone</label>
                    <input type="text" name="phone" class="form-control" placeholder="Enter your phone number..." id="phone">
            </fieldset>
            <fieldset>
                <label class="block" for="animal">Services</label>
                <select name="animalclass" id="animalclass" class="form-control">
                    <option value="select">Select Service</option>
                    <option value="amphibians">Platinum</option>
                    <option value="arthropods">Premium</option>
                    <option value="birds">Gold</option>
                </select>
            </fieldset>
            <fieldset id="submit">
                <input type="submit" class="btn btn-primary" onClick="validateForm(event)">
            </fieldset>
        </form>
        </div>
	</div>

Вот файл about.php, в котором я хочу, чтобы в таблице отображались данные, введенные в форму contact.php

<?php
require_once 'queryDb.php';

if (isset($_GET["customer"])) {
    $search = $_GET['customer'];
        
} else {
    $search = '';
}
$customers = getCustomers ($search);

?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Plantscape</title>
<link href="stylesheet.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Lily+Script+One" rel="stylesheet">
</head>

<body>
    <div class="header">
    	<div class="logo">
    		<h1>Plantscape.</h1>
    	</div>
        <div class="navbar">
    		<a href="contact.php" class="btn">Contact</a>
    		<a href="about.php" class="btn">About</a>
    		<a href="services.html" class="btn">Services</a>
    		<a href="portfolio.html" class="btn">Portfolio</a>
    		<a href="index.html" class="btn">Home</a>
    	</div>
	</div>
	    <form action="about.php" method="get" style="text-align: center; margin-top: 100px;">
            <label>
                Search: 
                <input type="text" name="customer" id="customer" />
            </label>
                <input type="submit" value="Search" />
        </form>
        <table style="width:60%; text-align:center;" align="center">
            <thead>
                <tr>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Address</th>
                    <th>Phone</th>
                </tr>
            </thead>
            
            <tbody>
                <?php
                    foreach ($customers as $customer)
                    {
                        echo "<tr>";
                        echo "<td>" .$customer['FIRSTNAME']. "</td>";
                        echo "<td>" .$customer['LASTNAME']. "</td>";
                        echo "<td>" .$customer['ADDRESS']. "</td>";
                        echo "<td>" .$customer['PHONE']. "</td>";
                        echo "</tr>";
                    }
                ?>
            </tbody>
        </table>
    </div>
	</div>
	<footer class="footer">
	   <div class="copyright">
	       <p>&copy 2019 - Plantscape</p>
	   </div>
	</footer>
</body>
</html>

Вот Javascript для контактной формы.

function validateForm(event) {


    let form = document.forms["contactform"];
    let firstname = document.getElementById("firstname").value;
    let lastname = document.getElementById("lastname").value;
    let address = document.getElementById("address").value;
    let phone = document.getElementById("phone").value;
    let animalclass = document.getElementById("animalclass").selectedIndex;
    
    if (firstname===null || firstname===""){
        alert("First name must be filled out");
        event.preventDefault();
        return false;
    }
    if (lastname===null || lastname ===""){
        alert("Last name name must be filled out");
        event.preventDefault();
        return false;
    }
    if (address===null || address ===""){
        alert("Your address must be filled out");
        event.preventDefault();
        return false;
    }
    if (phone===null || phone ===""){
        alert("Your phone number must be filled out");
        event.preventDefault();
        return false;
    }
    if (animalclass===null || animalclass==="0" || animalclass===0){
        alert("A service must be selected");
        event.preventDefault();
        return false;
    }
   
    form.submit();
    
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...