Я делаю проект для универа.Мне нужно
- Использовать предоставленную базу данных 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>© 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;
}