[Risolto] Gestione Prenotazioni script php

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Un saluto a tutta la community mrwebmaster, avrei la necessità di realizzare uno script per la gestione di appuntamenti, in sostanza avrei necessità di una cosa del genere:

Cognome|Nome|Azienda|Telefono|DataAppuntamento|OraAppuntamento|StatoAppuntamento|Note

Rossi|Mario|Topolandia|333333333|18/06/2016|09:00|Eseguito|qua le note...
Rossi|Giulia|Calzamia|333333333|18/06/2016|09:30|NonPresentato|qua le note...

mi dareste una mano a strutturare il tutto :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti schematizzo
intanto partirei dalla tabella
Codice:
id int(12) autoincrement primarikey
Cognome varchar(xy) not nul//con xy la unghezza del campo
Nome varchar(xy) not nul
Azienda varchar(xy) not nul
Telefono varchar(xy) not nul
DataAppuntamento date //dipende dal formato con cui immetterai le date
OraAppuntamento //potrebbe essere varchar(5)
StatoAppuntamento set('attesa', 'eseguito', 'non presentato') default 'attesa'//e/o altri valori
Note mediumtext // o longtext dipende dalla lunghezza
poi
1) pagina con form per inserimento dati appuntamento
2) pagina per vedere e con form per selezionare quello che vuoi vedere e gli opportuni pulsanti per update/delete
3) pagina con form per uddate o delete appuntamento

una piccola osservazione sulla tabella
se hai un'anagrafica clienti (nome azienda, tel, emali, piva, indirizzo ecc..) al posto dei campi comuni della tabella sopra metti un campo
id_azienda int(12) e poi fai le join tra le due tabelle
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Ciao Borgo Italia,
intanto grazie tantissimo per la celere risposta, per il momento sto partendo da una situazione pulita (o meglio ho la tabella clienti, ma per un'altra applicazione e essendo che sto riprendendo a programmare dopo uno stop durato diversi anni, non vorrei incartarmi).

Quindi, procedo a creare la tabella come da schema suggerito, poi pian piano cercherò, spero insieme al supporto di mrwebmaster, di rimettermi in carreggiata.

:)
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
ciao,
io sono rimasto indietro a mysql, mysqli l'ho utilizzo solo per la connessione al db, quindi non sono capace (per ora) di trasformare le istruzioni da mysql a mysqli :oops:

Se provo ad implementarlo cosi com'è funziona lo stesso o da problemi, cosi magari inizio a farlo usare all' utente ed io con calma poi lavoro alla versione aggiornata mysqli
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
in prima istanza passare da mysql a mysqli è semplice
se hai un vecchio sito per modificare basta sostituire
per la connessione:
PHP:
<?php
$conn = mysql_connect($host,$username,$password) or die (mysql_error());
$sel = mysql_select_db($db) or die (mysql_error());
?>
con
PHP:
<?php
$conn = mysqli_connect($host,$username,$password, $db) or die (mysqli_error());
?>
per le query di select/update/delete
PHP:
<?php
$ris=mysql_query("......");
?>
con
PHP:
<?php
$ris=mysqli_query($conn,"......");//aggiungere la variabile $conn della connessione
?>
per tutte le altre basta aggiungere una i alle istruzioni
se invece hai un nuovo sito da fare allora ti conviene studiarlo per avere tutte le opportunità che offrono le mysqli e decidere se passare dalla programmazione procedurale a quella ad oggetti
comunque non far condividere mysql con mysqli
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Perfetto,
mi attivo subito per apportare le modifiche da te suggerite al mio vecchio sito, grazie di vero vero cuore per le risposte ed il supporto
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Ho creato la pagina per inserire le prenotazioni, funziona bene e i dati vengono correttamente inseriti nel db, adesso ho creato un form per la ricerca di questi dati che invia tramite post la richiesta al file qricapp.php che dovrebbe eseguire questa query ... ma non funziona :(

PHP:
<?php

// INCLUDO IL FILE PER LA CONNESSIONE AL DATABASE
include ("connessione.php");

if (trim($_POST['cliente']) == '' && trim($_POST['gestore']) == '' && trim($_POST['data']) == '' && trim($_POST['ora']) == '' && trim($_POST['stato_pren']) == '' && trim($_POST['telefono']) == ''&& trim($_POST['note']) == '')
{
    //REINDIRIZZO L'UTENTE AL MESSAGGIO DI ERRORE ATTENZIONE COMPILA ALMENO UN CAMPO
    echo "<center><h3><font color=\"red\">Attenzione non hai inserito nessun valore di ricerca</h3><a href=\"qricapp.php\"></br>Torna alla ricerca</a></center></br></br>";
}

else
{
$cliente = $_POST['cliente'];
$gestore = $_POST['gestore'];
$data = $_POST['data'];
$ora = $_POST['ora'];
$stato_pren = $_POST['stato_pren'];
$telefono = $_POST['telefono'];
$note = $_POST['note'];


$query = "SELECT *, DATE_FORMAT(appuntamenti.data,'%d/%m/%Y') as data_it FROM appuntamenti WHERE 1";


if (!empty($cliente)) {
    $query .= " AND `cliente` LIKE '%$cliente%'";
}

if (!empty($gestore)) {
    $query .= " AND `gestore` LIKE '%$gestore%'";
}

if (!empty($data)) {
    $query .= " AND `data` LIKE '%$data%'";
}

if (!empty($ora)) {
    $query .= " AND `ora` = '$ora'";
}

if (!empty($stato_pren)) {
    $query .= " AND `stato_pren` = '$stato_pren'";
}

if (!empty($telefono)) {
    $query .= " AND `telefono` LIKE '%$telefono%'";
}

if (!empty($note)) {
    $query .= " AND `note` LIKE '%$note%'";
}

    $query .= " ORDER BY id DESC";
}

// ESEGUO LA QUERY
$cerca = mysql_query($query);

// STAMPO LA QUERY PER IL DEBUG
echo $query;

echo "
    <center><table>
    <tr><th colspan='7'>RISULTATI RICERCA</th><th colspan='6'>OPERAZIONI</tr>
    <tr><th>Id<th>Cliente<th>Gestore<th>Data<th>Ora<th>Telefono<th>Note<th>Stato Pagamento<th>Allegato<th>Nuova<th>Visualizza<th>Modifica<th>Pdf<th>Elimina</tr>
</center>";


while ($riga = mysql_fetch_assoc($cerca)){
echo "<tr><td>$riga[idappuntamento]<td>$riga[cliente]<td>$riga[gestore]<td>$riga[data_it]<td>$riga[ora]<td>$riga[telefono]<td>$riga[note]</td><td><center><a href=\"duplicacommessa.php?id=$riga[id]\"><img src= \"img/duplica_32_32.png\"></a></center></td><td><center><a href=\"visualizza.php?id=$riga[id]\"><img src= \"img/visualizza_32_32.png\"></a></center></td><td><center><a href=\"modifica.php?id=$riga[id]\"><img src= \"img/modifica_32_32.png\"></a></center></td><td><center><a href=\"pstampa.php?id=$riga[id]\" \" target=\"_blank\"><img src= \"img/stampa_32_32.png\"></a></center></td><td><center><a href=\"elimina.php?id=$riga[id]\" onclick=\"return confirm('Cancellare definitivamente?')\"><img src=\"img/elimina_32_32.png\"></a></center></td></tr>";
}

echo "</table>";

// E chiudiamo la connessione a MySQL
mysql_close();

?>


:oops:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a correggere
....FROM appuntamenti WHERE 1=1";
e poi togli i batik ai nomi dei campi es.
...AND telefono LIKE '%$telefono%'";
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Buongiorno,
ho apportato la modifica suggerita ma la query non va ...

Codice:
SELECT *, DATE_FORMAT(appuntamenti.data,'%d/%m/%Y') as data_it FROM appuntamenti WHERE 1=1 AND data LIKE '%20/06/2016%' ORDER BY id DESC

viene correttamente eseguita ma non mostra risultati :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
altra correzione
$riga[idappuntamento]
con
$riga['idappuntamento']
analogo gli altri, $riga è un array associativo e quindi la chiave va tra virgolette
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Grazie mille,
con i consigli vostri sono riuscito a saltare anche questo fosso, in sostanza il problema era legato a

Codice:
$query .= " ORDER BY id DESC";

che invece doveva essere :
Codice:
$query .= " ORDER BY idappuntamento DESC";


grazie grazie grazie :)
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Sono agli sgoccioli, mi manca solo la parte per la modifica, ho completato tutto lo script, la query di update viene correttamente eseguita, ma non riesco a recuperare tramite $_REQUEST l'id per updatare i dati

Codice:
<?php
foreach ($_POST as $key => $value) {
    $_POST[$key] = addslashes($value);
}

// EFFETTUO L'UPPER CASE DEI CAMPI INSERITI
foreach ($_POST as $key => $value) {
    $_POST[$key] = strtoupper($value);
}

$idappuntamento = $_POST['idappuntamento'];
$cliente = $_POST['cliente'];
$gestore = $_POST['gestore'];
$data = $_POST['data'];
$ora = $_POST['ora'];
$stato_pren = $_POST['stato_pren'];
$tipoprenotazione = $_POST['tipoprenotazione'];
$telefono = $_POST['telefono'];
$note = $_POST['note'];

// INCLUDO IL FILE PER LA CONNESSIONE AL DATABASE
include ("connessione.php");
// PREPARO LA QUERY DI UPDATE
$sql = "UPDATE appuntamenti SET cliente =('$cliente'), gestore =('$gestore'),data = STR_TO_DATE('$data', '%d/%m/%Y'),ora =('$ora'),stato_pren =('$stato_pren'),tipo_pren =('$tipoprenotazione'),telefono =('$telefono'),note =('$note') WHERE idappuntamento='$_REQUEST[idappuntamento]'";

// STAMPO LA QUERY PER IL DEBUG
echo $sql;

// LANCIO LA QUERY
$result = mysql_query($sql);

// CONTROLLO L'ESITO
if (!$result) {
    die("Errore nella query $sql: " . mysql_error());
}

// CHIUDO LA CONNESSIONE A MYSQL
mysql_close();

?>


questo quello che viene stampato dalla query

Codice:
UPDATE appuntamenti SET cliente =('PIPPO PELO'), gestore =('NESSUNO'),data = STR_TO_DATE('21/06/2016', '%d/%m/%Y'),ora =('09:30:00'),stato_pren =('APP. CONFERMATO'),tipo_pren =('VERNICE'),telefono =('333333333'),note =('APPUNTAMENTO VERNICE  X') WHERE idappuntamento=''


Ultimo gradino :(o_O
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
proviene da qui
<a href=\"modifica.php?id=$riga[id]\"><img src=
?
se si non vedo il $_GET, da qualche parte dovresti
PHP:
<?php
//....
$idappuntamento = $_POST['idappuntamento'];
$cliente = $_POST['cliente'];
$gestore = $_POST['gestore'];
//però attento a quando usi il valore che proviene da un ?valore=123456
//devi fare una verifica
$id=(int)$_GET['id'];//leggo il get e lo forzo a intero
/*esempio se qualcuno scrive su suo bw
www.tuo_sito.it/modifica.php?id=33 OR 1=1
ti uppa tutti i record forzando ad intero rimane solo il 33
o se non contiene numeri risulta 0
e mettere anche un if
if($id==0) exit;//o rimandi dove vuoi
*/
$query="....WHERE idappuntamento=$id";
//.....
?>
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
la riga proviene da qua : <a href=\"mapp.php?idappuntamento=$riga[idappuntamento]\"><img src= \
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
due cose
la riga è in php o html, perche se in html devi fare
HTML:
<a href="mapp.php?idappuntamento=<?php echo $riga['idappuntamento']; ?>">...</a>
se invece viene stampata da php ricordati gli apici su $riga['idappuntamento'] (comunque anche sull'html)
e modifica il GET in
PHP:
$id=(int)$_GET['idappuntamento'];
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
La riga viene stampata da php

Codice:
echo "
    <center><table>
    <tr><th colspan='9'>RISULTATI RICERCA</th><th colspan='6'>OPERAZIONI</tr>
    <tr><th>Id<th>Cliente<th>Gestore<th>Data<th>Ora<th>Telefono<th>Note<th>Stato Prenotazione<th>Tipo Prenotazione<th>Nuova<th>Modifica<th>Elimina</tr>
</center>";

// NEL CICLO WHILE PER LA DATA STAMPO LA RIGA [57] E NON LA [56], LA [103] VIENE CREATA DALLA QUERY , DATE_FORMAT(appuntamenti.data,'%d/%m/%Y') as data_it
while ($riga = mysql_fetch_assoc($cerca)){
echo "<tr><td>$riga[idappuntamento]<td>$riga[cliente]<td>$riga[gestore]<td>$riga[data_it]<td>$riga[ora]<td>$riga[telefono]<td>$riga[note]<td>$riga[stato_pren]<td>$riga[tipo_pren]</td><td><center><a href=\"insapp.php\"><img src= \"img/duplica_32_32.png\"></a></center></td><td><center><a href=\"mapp.php?idappuntamento=$riga[idappuntamento]\"><img src= \"img/modifica_32_32.png\"></a></center></td><td><center><a href=\"delapp.php?idappuntamento=$riga[idappuntamento]\" onclick=\"return confirm('Cancellare definitivamente?')\"><img src=\"img/elimina_32_32.png\"></a></center></td></tr>";
}

echo "</table>";
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Se modifico cosi:

Codice:
<?php
foreach ($_POST as $key => $value) {
    $_POST[$key] = addslashes($value);
}

// EFFETTUO L'UPPER CASE DEI CAMPI INSERITI
foreach ($_POST as $key => $value) {
    $_POST[$key] = strtoupper($value);
}

$id=(int)$_GET['idappuntamento'];
$idappuntamento = $_POST['idappuntamento'];
$cliente = $_POST['cliente'];
$gestore = $_POST['gestore'];
$data = $_POST['data'];
$ora = $_POST['ora'];
$stato_pren = $_POST['stato_pren'];
$tipoprenotazione = $_POST['tipoprenotazione'];
$telefono = $_POST['telefono'];
$note = $_POST['note'];

// INCLUDO IL FILE PER LA CONNESSIONE AL DATABASE
include ("connessione.php");
// PREPARO LA QUERY DI UPDATE
$sql = "UPDATE appuntamenti SET cliente =('$cliente'), gestore =('$gestore'),data = STR_TO_DATE('$data', '%d/%m/%Y'),ora =('$ora'),stato_pren =('$stato_pren'),tipo_pren =('$tipoprenotazione'),telefono =('$telefono'),note =('$note') WHERE idappuntamento=$id";

// STAMPO LA QUERY PER IL DEBUG
echo $sql;

// LANCIO LA QUERY
$result = mysql_query($sql);

// CONTROLLO L'ESITO
if (!$result) {
    die("Errore nella query $sql: " . mysql_error());
}

// SE VA A BUON FINE STAMPO A VIDEO IL MESSAGGIO
else
echo '</br>';
echo '</br>';
echo '</br>';

// CHIUDO LA CONNESSIONE A MYSQL
mysql_close();

?>
</body>
</html>


Viene valorizzato l'id a 0

Codice:
UPDATE appuntamenti SET cliente =('PIPPO PELO'), gestore =('NESSUNO'),data = STR_TO_DATE('21/06/2016', '%d/%m/%Y'),ora =('09:30:00'),stato_pren =('APP. CONFERMATO'),tipo_pren =('MECCANICA'),telefono =('3333333333'),note =('APPUNTAMENTO VERNICE XXX') WHERE idappuntamento=0
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
T [Photoshop] Problema creazione pennello personalizzato [RISOLTO] Photoshop 3

Discussioni simili