prepare($sql); $p->execute($data); $res = []; $res["rows"] = $p->fetchAll(PDO::FETCH_ASSOC); $sql = "SELECT COUNT(*) AS c FROM Bottiglie WHERE $addition"; $p = $pdo->prepare($sql); $p->execute($data); $res["pagTot"] = (int)($p->fetch(PDO::FETCH_ASSOC)["c"] / $_GET["pageSize"]) + 1; echo json_encode($res); break; case "get": $p = $pdo->prepare("SELECT * FROM Bottiglie WHERE id=:id"); $p->execute([":id" => $_GET["id"]]); echo json_encode($p->fetch(PDO::FETCH_ASSOC)); break; case "delete": $p = $pdo->prepare("DELETE FROM Bottiglie WHERE id=:id"); $p->execute([":id" => $_GET["id"]]); echo json_encode(["ok" => true]); break; case "update": $p = $pdo->prepare("UPDATE Bottiglie SET vino=:vino, cantina=:cantina, annata=:annata, volume=:volume, quantita=:quantita, note=:note, lastEdit=:lastEdit WHERE id=:id"); $e = $p->execute([ ":id" => $_GET["id"], ":vino" => $_GET["vino"], ":cantina" => $_GET["cantina"], ":annata" => $_GET["annata"], ":volume" => $_GET["volume"], ":quantita" => $_GET["quantita"], ":note" => $_GET["note"], ":lastEdit" => time() ]); echo json_encode(["ok" => $e]); break; case "add": $p = $pdo->prepare("INSERT INTO Bottiglie(vino, cantina, annata, volume, quantita, note, createdAt, lastEdit) VALUES(:vino, :cantina, :annata, :volume, :quantita, :note, :createdAt, :lastEdit)"); $e = $p->execute([ ":vino" => $_GET["vino"], ":cantina" => $_GET["cantina"], ":annata" => $_GET["annata"], ":volume" => $_GET["volume"], ":quantita" => $_GET["quantita"], ":note" => $_GET["note"], ":createdAt" => time(), ":lastEdit" => time() ]); echo json_encode(["ok" => $e]); break; case "complete": $type = $_GET["type"]; if (!in_array($type, ["vino", "cantina", "annata", "volume", "quantita", "note"])) { echo json_encode([]); break; } $p = $pdo->prepare("SELECT DISTINCT $type FROM Bottiglie"); $p->execute(); $list = []; foreach ($p->fetchAll(PDO::FETCH_ASSOC) as $e) { $list[] = $e[$type]; } $userInput = $_GET["query"]; usort($list, function ($a, $b) use ($userInput) { similar_text($userInput, $a, $percentA); similar_text($userInput, $b, $percentB); return $percentA === $percentB ? 0 : ($percentA > $percentB ? -1 : 1); }); echo json_encode(array_slice($list, 0, 20)); break; case "access": echo json_encode(["ok" => password_verify($_GET["password"], file_get_contents("password.txt"))]); break; case "updatePassword": file_put_contents("password.txt", password_hash($_GET["password"], PASSWORD_DEFAULT)); echo json_encode([]); break; }