[Risolto] Gestione Prenotazioni script php

ciao
scusa ma c'è qualcosa che non mi torna
lo script che hai scritto è quello della pagina mapp.php? se si allora non hai postato il form da cui ricavi i $_POST
se è così allora il il $_GET dell'id non va dove l'ho messo io ma prima del form, ti schematizzo mettendo un dato solo (per gli altri è lo stesso) da come ho capito quello che vuoi fare
PHP:
<?php
if(isset($_POST['modifica'])){
    $idcliente=$_POST['idcliente'];
    unset($_POST['modifica'],$_POST['idcliente']);// non serve per passarli ai foreach
    //i foreach
    $cliente = $_POST['cliente'];
    //e gli altri post
    $query="UPDATE appuntamenti set cliente ='$cliente'.... WHERE idcliente=$idcliente";
    if(mysql_query($query)){
        echo "aggiornamento riuscito";
    }else{
        echo "c'è stato un errore, riprova";
    }
    //e rimandi dove vuoi
}
$id=(int)$_GET['idappuntamento'];
if($id==0){
    //rimandi a dove vuoi
    exit();
}
$query=mysql_query("SELECT * FROM appuntamenti WHERE idappuntamento=$id");
$riga=mysql_fetch_array($query);
$cliente=$riga['cliente'];
//ecc....
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    cliente   <input name="cliente" type="text" id="cliente" value="<?php echo $cliente; ?>"><br>
    <!-- gli altri campi-->
    <input name="idcliente" type="hidden" value="<?php echo $id; ?>">
    <input name="modifica" type="submit" id="modifica" value="modifica">
</form>
 
buongiorno a te ... il bello in tutto questo che con la $_REQUEST la query di delete funziona perfettamente

Codice:
<?php

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

// PREPARO LA QUERY DI ELIMINAZIONE
$sql = "DELETE FROM appuntamenti WHERE idappuntamento='$_REQUEST[idappuntamento]'";

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

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

else

echo "<center><strong>Eliminazione avvenuta correttamente</strong>";

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

?>



Il flusso è questo:
parto dal form "ricapp.php" (ricerca appuntamento)

HTML:
<html>
<title>Ricerca Appuntamento</title>
</head>

<body>

<!-- APRO IL DIV CONTAINER -->
<div id="riccontainer">
<form name = "RicercaCommessa" method="POST" action="qricapp.php">
<fieldset>
  <legend>Ricerca Appuntamento</legend>
  <div id="anagrafica">
      <div class="pre-1">
        <div class="pre-1-1">Id</div>
        <div class="pre-1-2"><input name="idappuntamento" disabled="disabled" id="idappuntamento" value="0" size="2" readonly="readonly"></div>
        <div class="pre-1-3">Data Prenotazione</div>
        <div class="pre-1-4"><input type="text" name="data" class="datepicker" id="datepicker"></div>
        <div class="pre-1-5">Cliente</div>
        <div class="pre-1-6"><input name="cliente" class="uppercase" id="cliente"></div>
        <div class="pre-1-7">Telefono</div>
        <div class="pre-1-8"><input name="telefono" class="uppercase" id="telefono"></div>
        <div class="pre-1-9">Gestore</div>
        <div class="pre-1-10">
        <select name="gestore" class="uppercase" id="gestore">
        <?php
        include ('connessione.php');
        $query = "SELECT * FROM gestore ORDER BY gestore ASC";
        $risultato = mysql_query ($query) or die ("Errore nella query" . mysql_error());
        echo "<option value=''> - </option>";
        while ($riga = mysql_fetch_assoc($risultato)){
           
        echo "<option value='$riga[gestore]'>$riga[gestore]</option>";
        }
        mysql_free_result ($risultato);
        mysql_close ($myconn);
        ?>
    </select></div>
        <div class="pre-1-11">Ora App.</div>
        <div class="pre-1-12"><input name="ora" type="time" class="timepicker" id="demo"></div>
    </div>
</div>
<div id="ricerca"><input type="image" src="img/cerca.png"/></div>
</fieldset>
</form>
</div>
</body>
</html>


passo a qricapp (query ricerca appuntamento)

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['tipoprenotazione']) == '' && 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'];
$tipoprenotazione = $_POST['tipoprenotazione'];
$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` = STR_TO_DATE('$data', '%d/%m/%Y') ";
}

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

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

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

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

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

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

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

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

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>";

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>";

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

poi passo a mapp.php (modifica appuntamento)

HTML:
<html>
<title>Commessa</title>
</head>
<?php
// INCLUDO IL FILE PER LA CONNESSIONE AL DATABASE
include ("connessione.php");

//Preparo la query di modifica
$sql = "SELECT * , DATE_FORMAT(appuntamenti.data,'%d/%m/%Y') as data FROM appuntamenti WHERE idappuntamento='$_REQUEST[idappuntamento]'";

// Lanciamo la query:
$result = mysql_query($sql);
$dati = mysql_fetch_assoc ($result);


$idappuntamento = $dati['idappuntamento'];
$cliente = $dati['cliente'];
$gestore = $dati['gestore'];
$data = $dati['data'];
$ora = $dati['ora'];
$stato_pren = $dati['stato_pren'];
$tipo_pren = $dati['tipo_pren'];
$telefono = $dati['telefono'];
$note = $dati['note'];

// controllo l'esito
if (!$result) {
    die("Errore nella query $sql: " . mysql_error());
}

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

?>

<body>
<div id="appmodifica"><!-- apro il div container -->

<form name ModificaAppuntamento method="POST" action="qupdateapp.php" enctype="multipart/form-data">

<!-- SCHEDA -->

<fieldset>
  <legend>Modifica Appuntamento</legend>
  <div id="anagrafica">
      <div class="pre-1">
        <div class="pre-1-1">Id</div>
        <div class="pre-1-2"><input type="text" name="idappuntamento" disabled="disabled" id="idappuntamento" value="<?php echo $idappuntamento?>" size="2" readonly="readonly"></div>
        <div class="pre-1-3">Data Prenotazione</div>
        <div class="pre-1-4"><input type="text" name="data" class="datepicker" required="required" value="<?php echo $data?>" id="datepicker"></div>
        <div class="pre-1-5">Cliente</div>
        <div class="pre-1-6"><input name="cliente" class="uppercase" id="cliente" value="<?php echo $cliente?>" required="required"></div>
        <div class="pre-1-7">Telefono</div>
        <div class="pre-1-8"><input name="telefono" class="uppercase" id="telefono" value="<?php echo $telefono?>"></div>
        <div class="pre-1-9">Gestore</div>
        <div class="pre-1-10">
        <select name="gestore" id="gestore">
        <option value="<?php echo $gestore ?>"><?php echo $gestore ?></option>
        <?php
        include ('conngo2.php');
        $query = "SELECT * FROM gestore ORDER BY gestore ASC";
        $risultato = mysql_query ($query) or die ("Errore nella query" . mysql_error());
        echo "<option value=''> - </option>";
        while ($riga = mysql_fetch_assoc($risultato)){
           
        echo "<option value='$riga[gestore]'>$riga[gestore]</option>";
        }
        mysql_free_result ($risultato);
        mysql_close ($myconn);
        ?>
        </select></div>
        <div class="pre-1-11">Ora App.</div>
        <div class="pre-1-12"><input name="ora" type="time" class="timepicker" id="demo"  value="<?php echo $ora?>" required="required"></div>
       
        <div class="note-1">Note</div>
        <div class="note-2"><input name="note" class="uppercase" id="note" value="<?php echo $note?>"></div>
       
        <div class="stato-1">Stato</div>
        <div class="stato-2">
        <select name="stato_pren" id="stato_pren">
        <option value="<?php echo $stato_pren?>"><?php echo $stato_pren ?></option>
        <?php
        include ('conngo2.php');
        $query = "SELECT * FROM stato_pren ORDER BY idstato ASC";
        $risultato = mysql_query ($query) or die ("Errore nella query" . mysql_error());
        echo "<option value=''> - </option>";
        while ($riga = mysql_fetch_assoc($risultato)){
           
        echo "<option value='$riga[stato]'>$riga[stato]</option>";
        }
        mysql_free_result ($risultato);
        mysql_close ($myconn);
        ?>
        </select></div>
        <div class="pren-1">Tipo Pren.</div>
        <div class="pren-2">
        <select name="tipoprenotazione" id="tipoprenotazione">
        <option value="<?php echo $tipo_pren ?>"><?php echo $tipo_pren ?></option>
        <?php
        include ('conngo2.php');
        $query = "SELECT * FROM tipoprenotazione ORDER BY idtipopren ASC";
        $risultato = mysql_query ($query) or die ("Errore nella query" . mysql_error());
        echo "<option value=''> - </option>";
        while ($riga = mysql_fetch_assoc($risultato)){
           
        echo "<option value='$riga[tipopren]'>$riga[tipopren]</option>";
        }
        mysql_free_result ($risultato);
        mysql_close ($myconn);
        ?>
        </select></div>
        </div>
</div>
</fieldset>
<div id="salva">
<input type="image" src="img/update.png" height="46" width="46" />
</div>
</form>
</div> <!-- chiudo il div container -->
</body>
</html>

:oops:
 
ciao
intanto una cosa una cosa idappuntamento è un numero intero? penso di si, allora togli gli apici
...WHERE idappuntamento=$_REQUEST[idappuntamento]";
poi comunque (sempre se non ho capito male) proviene da quna querystringa aaa.php?aa=val, quindi CONTROLLO è come il get
 
Devo dire che non pensavo di stare cosi rovinato ...
Se tolgo gli apici (pur essendo idappuntamento un intero) ottengo errore di sintassi

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 XXX') WHERE idappuntamento= Errore nella query 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 PITTURA XXX') WHERE idappuntamento= : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
 
Se faccio cosi,
Codice:
$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]'";

mi stampa questo:

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 G') WHERE idappuntamento = 'Array [idappuntamento]'

Sto impazzenzdo :confused:
 
Per i posteri con la speranza che non commettano i miei stessi stupidi errori:

Il problema era nella input

<input type="text" name="idappuntamento" id="idappuntamento" value="<?php echo $idappuntamento?>" size="2" readonly="readonly">

settata a "disabled=disabled" e i valori del POST non passano.


Un particolare grazie di cuore a Borgo Italia e al mio amico Domenico
blink.gif
 

Discussioni simili