ShoppingList/phpInterface/shoppingList.php

212 lines
5.1 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
require_once("shoppingListConfig.php");
class DBLink
{
static $sqlLink = null;
public static function getDbLink()
{
if(DBLink::$sqlLink == null)
{
DBLink::$sqlLink = new mysqli(Configuration::$mysqlserver, Configuration::$mysqluser, Configuration::$mysqlpw, Configuration::$mysqldb, Configuration::$mysqlPort);
// Verbindung überprüfen
if (mysqli_connect_errno())
{
printf("Database connection error:%s\n", mysqli_connect_error());
exit();
}
}
return DBLink::$sqlLink;
}
}
if(isset($_GET['command']) && $_GET['command'] == "printRhasspyProductList")
{
printRhasspyProductList();
exit(0);
}
echo "<html>
<head>
<title>Shopping list</title>
<style type=\"text/css\">
table
{
border-collapse:separate;
border-spacing:10px 10px;
}
.smallButton
{
font-size:10px;;
height:5000em;
width:5000em;
}
</style>
</head>
<body>";
$command = $_POST['command'];
if(isset($command))
{
switch($command)
{
case "addToList":
$productId = $_POST['productToAdd'];
addToList($productId);
break;
case "removeFromList":
$productId = $_POST['productToRemove'];
removeFromList($productId);
break;
case "printShoppingList":
printShoppingList();
break;
}
}
printShoppingList();
echo "</body></html>";
mysqli_close(DBLink::getDbLink());
function addToList($productId)
{
if($productId > 0)
{
$SQL_command;
if(oneListExists())
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId) VALUES ((SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1), ".$productId.")";
else
$SQL_command = "INSERT IGNORE INTO listEntries (listId, productId) VALUES ((INSERT INTO `lists` (creationTime) VALUES (".round(microtime(true) * 1000).") RETURN @id, ".$productId."))";
if (DBLink::getDbLink()->query($SQL_command))
echo "Product added to list.<br>";
else
echo "Product could not be added to list.<br>";
}
else
echo "Select a product.";
}
function removeFromList($productId)
{
if($productId > 0)
{
if(oneListExists())
{
$SQL_command = "DELETE FROM listEntries WHERE listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) AND productId=".$productId;
if (DBLink::getDbLink()->query($SQL_command))
echo "Product removed from list.<br>";
else
echo "Product could not be removed from list.<br>";
}
}
else
echo "Select a product.";
}
function oneListExists()
{
$SQL_command = "SELECT COUNT(id) as listAmount FROM lists";
$mysqli_result = DBLink::getDbLink()->query($SQL_command);
if ($row = mysqli_fetch_object($mysqli_result))
{
if($row->listAmount > 0)
return true;
}
return false;
}
function printShoppingList()
{
echo " <form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"addToList\" />
<select name=\"productToAdd\" id=\"productToAdd\">
<option value=\"0\">Select product to add</option>
";
$SQL_command = "SELECT id, name FROM `products` ORDER BY name ASC";
$mysqli_result = DBLink::getDbLink()->query($SQL_command);
while ($row = mysqli_fetch_object($mysqli_result))
{
echo "<option value=\"".$row->id."\">".$row->name."</option>";
}
echo " </select>
<input type=\"submit\" value=\"add\" />
</form>";
if(oneListExists())
{
$SQL_command = "SELECT * FROM listEntries INNER JOIN products ON listEntries.productId=products.id INNER JOIN storeTypes ON products.storeTypeId = storeTypes.id WHERE listEntries.listId=(SELECT id FROM `lists` ORDER BY creationTime DESC LIMIT 1) ORDER BY storeTypes.name, products.name ASC";
$mysqli_result = DBLink::getDbLink()->query($SQL_command);
$lastShop="";
while ($row = mysqli_fetch_array($mysqli_result))
{
if(isset($lastShop) && $lastShop != "" && $row[7] != $lastShop)
echo "</table>";
if(!isset($lastShop) || $row[7] != $lastShop)
{
$lastShop = $row[7];
echo $lastShop."<br>================";
echo "<table border=\"0\">";
}
echo "<tr>
<td style=\"vertical-align:top;\">".$row[3]."</td>
<td style=\"vertical-align:top;\">
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
<input type=\"hidden\" id=\"command\" name=\"command\" value=\"removeFromList\" />
<input type=\"hidden\" id=\"productToRemove\" name=\"productToRemove\" value=\"".$row[1]."\" />
<input class=\"smallButton\" type=\"submit\" value=\"remove\" />
</form>
</td>
</tr>";
}
echo "</table>";
}
else
echo "No list exists, yet.";
}
function printRhasspyProductList()
{
$SQL_Befehl = "SELECT name, synonyms FROM products ORDER BY products.name ASC";
$mysqli_result = DBLink::getDbLink()->query($SQL_Befehl);
$lastShop="";
while ($row = mysqli_fetch_array($mysqli_result))
{
if(is_null($row[1]))
echo $row[0]."\n";
else
echo "(".str_replace(";", "|", $row[1])."|".$row[0]."):".$row[0]."\n";
}
}
?>