Esempio sondaggio

This commit is contained in:
Claudio Maggioni 2017-05-25 10:48:19 +02:00
parent a6b5fb833b
commit a702a77e0b
8 changed files with 180 additions and 0 deletions

113
sondaggio/sondaggio.php Normal file
View File

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Sondaggio</title>
<meta name="generator" content="Bluefish 2.2.1" />
<script type="text/javascript">
function Controlla_form()
{
if (document.forms[0].codice.value=="")
{alert("Attenzione! Inserisci il codice abbonato");
return false}
else return confirm("Confermi la scelta?");
}
</script>
</head>
<body>
<?php
// definizione delle variabili
$host = "localhost";
$user = "root";
$pass = "password";
$db = "sondaggio";
// connessione al DBMS
$conn = @mysqli_connect($host, $user, $pass, $db) or die(mysqli_connect_error());
if (isset($_POST['inoltra'])) {
$code = $_POST['codice'];
$riv = $_POST['rivista'];
$query="SELECT * FROM abbonati WHERE codice='$code'";
$ris=@mysqli_query($conn, $query) or die("errore query");
if (@mysqli_num_rows($ris)==1) { //controllo che ci sia un abbonato con quel codice
$riga=@mysqli_fetch_array($ris);
if ($riga['voto'] == 0) { //controllo che non abbia già votato
$aggiornamento = "UPDATE riviste SET preferenze=preferenze+1 WHERE nome='$riv'";
$ris=@mysqli_query($conn, $aggiornamento) or die("errore query");
$aggiornamento2 = "UPDATE abbonati SET voto=1 WHERE codice='$code'";
$ris=@mysqli_query($conn, $aggiornamento2) or die("errore query");
echo "L'abbonato ha votato!";
} else {
echo "Attenzione! L'abbonato ha già votato...";
}
} else {
echo "Attenzione! Codice abbonato inesistente...";
}
echo "<h2>Classifica preferenze</h2>";
$query="SELECT * FROM riviste ORDER BY preferenze desc";
$ris=@mysqli_query($conn, $query);
$n=@mysqli_num_rows($ris);
for ($i=0;$i<$n;$i++) {
$riga = @mysqli_fetch_array($ris);
echo $riga['nome']." ".$riga['preferenze']."<br />";
}
} else {
?>
<h1>Sondaggio</h1>
<fieldset style="width:50%">
<legend>Vota la rivista</legend>
<form action="sondaggio.php" method="post" onsubmit="return Controlla_form()">
<p>
<label for="1"> <u>C</u>odice abbonato</label>
<input type="text" name="codice" value="codice" id="1" title="Codice" tabindex="1" accesskey="u" />
</p>
<p style="width:50%;float:left">
<label for="2"><u>R</u>ivista preferita</label>
<select name="rivista" value="Rivista" id="2" title="Scegli la rivista" accesskey="r" tabindex="2">
<?php
$query="SELECT * FROM riviste ORDER by nome";
$ris=@mysqli_query($conn, $query) or die("errore query");
// controllo sul numero dei record coinvolti
$n=@mysqli_num_rows($ris);
for ($i=0;$i<$n;$i++) {
$riga = @mysqli_fetch_array($ris);
echo "<option value='".$riga['nome']."'>".$riga['nome']."</option>";
} ?>
</select>
</p>
<p>
<label for="3">[<u>3</u>]</label>
<input type="submit" name="inoltra" value="Inoltra" id="3" title="Confermi la scelta" tabindex="3" accesskey="i" />
</p>
</form>
</fieldset>
<?php
}
// liberazione della memoria dal risultato della query
@mysqli_free_result($ris);
// chiusura della connessione
@mysqli_close($conn);
?>
</body>
</html>

67
sondaggio/sondaggio.sql Normal file
View File

@ -0,0 +1,67 @@
-- phpMyAdmin SQL Dump
-- version 4.6.5.2
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Creato il: Mag 25, 2017 alle 08:47
-- Versione del server: 10.1.22-MariaDB
-- Versione PHP: 7.1.5
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `sondaggio`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `abbonati`
--
CREATE TABLE `abbonati` (
`Codice` int(5) NOT NULL,
`voto` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dump dei dati per la tabella `abbonati`
--
INSERT INTO `abbonati` (`Codice`, `voto`) VALUES
(100, 1),
(200, 0),
(300, 0),
(400, 0);
-- --------------------------------------------------------
--
-- Struttura della tabella `riviste`
--
CREATE TABLE `riviste` (
`nome` varchar(50) NOT NULL,
`preferenze` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dump dei dati per la tabella `riviste`
--
INSERT INTO `riviste` (`nome`, `preferenze`) VALUES
('Altroconsumo', 1),
('Quattroruote', 0),
('Topolino', 0),
('Marrazzo', 0);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;