- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Inserrimento/modifica php e mysql
-
Inserrimento/modifica php e mysql
Ciao sentite volevo un chiarimento.
Io sto creando un applicazione in php che sfrutti il database mysql(la sto creando in locale) e volevo sapere se era possibile fare allo stesso tempo un inserimento ed modifica al database.
Mi spiego meglio l'applicazione che sto creando serve per gestire i dati di un ristorante: quindi l'utente accede al sito prima consulta la disponibilità dei posti poi se vuole prenota inserendo i propri dati, solo che a questo punto a me serviva che quando l'utente prenota (salvando i propri dati sulla tabella "prenotazioni") i posti che prenota vengano sottratti a quelli della disponibilità (salvati nella tabella "disponibilita"). E' possibile farlo?Grazie per la vostra disponibilità aspetto vostre notizie!Su un altro forum mi hanno detto di inserire:
[php]$query = "SELECT posti_rimanenti FROM disponibilita WHERE giorno = '12 Marzo'";
$risultato = mysql_query($connessione, $query);
$row = mysql_fetch_array($risultato);
$posti_prima_di_prenotazione = $row['posti_rimanenti'];
$posti_dopo_prenotazione = $posti_prima_di_prenotazione - $_POST[Posti];
$query = "UPDATE disponibilità SET posti_rimanenti = '$posti_dopo_prenotazione' WHERE giorno = '12 Marzo'""; mysql_query($connessione, $query);[/php]ma non funziona e non sanno più come aiutami!
Ho postato su megaupload tutto il lavoro compreso il file .sql chiunque possa aiutarmi mi farebbe un enorme favore grazie
-
Per darti una mano concreta vorrei sapere la struttura delle tabelle del DB interessate.
Poi potremmo parlarneA presto
-
Allora io ho un db chiamato ristorante con dentro due tabelle e sono divise così:
- disponibilita:
- giorno
- mese
- posti
- prenotazioni:
- nome
- cognome
- giorno
- mese
- posti
Io sono arrivato a questo codice che inserisce i dati nel db prenotazioni ma non modifica il numero di posti nel db disponibilita:
[PHP]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Prenotazione posti ristorante</title>
</head>
<body><?php
include('alcuneFunzioni.php');
include('funzioniConnessione.php');function ControlloEmail($email){
$result = eregi("^[_a-z0-9+-]+(.[_a-z0-9+-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$",$email);
if($result == false){
return false;
}else{
return true;
}
}?>
<?php
if(isset($_POST['giorno']))
{
$messaggio = "";
if(!soloCifre($_POST['giorno'], 2))
{
$messaggio = "Il giorno deve essere di due cifre";
echo " <strong>$messaggio</strong>\n";
}
else
{
$connessione = connetti();
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$email=$_POST['email'];
$giorno=$_POST['giorno'];
$mese=$_POST['mese'];
$posti=$_POST['posti'];
//qui verifichi i dati immessi se sono giusti
var_dump($nome);
echo "<br>";
var_dump($cognome);
echo "<br>";
var_dump($email);
echo "<br>";
var_dump($giorno);
echo "<br>";
var_dump($mese);
echo "<br>";
var_dump($posti);
echo "<br>";
//fine verifica dati immessi$query = "INSERT INTO prenotazioni (nome, cognome, email, giorno, mese, posti) VALUES ('".$nome."', '".$cognome."','".$email."', '".$giorno."', '".$mese."', '".$posti."')"; $risultato = mysqli_query($connessione, $query) //verifiva se va prima query o connessione secondo me query or die("operazione di inserimento errata<br>\nErrore: ".mysqli_error($connessione)); var_dump($risultato); //se FALSE non inserito echo "<br>"; $numInseriti = mysqli_affected_rows($risultato); $query = "SELECT posti FROM disponibilita WHERE giorno = '12 Marzo'"; $risultato = mysql_query($connessione, $query); var_dump($risultato); //se FALSE non letto echo "<br>"; $row = mysql_fetch_array($risultato); $posti_prima_di_prenotazione = $row['posti']; var_dump($posti_prima_di_prenotazione); //verifica posti prima echo "<br>"; $posti_dopo_prenotazione = (int)$posti_prima_di_prenotazione - (int)$posti; var_dump($posti_dopo_prenotazione); //verifichi il cacolo dovrebbe darti tipo variabile = INT echo "<br>"; $query = "UPDATE disponibilita SET posti = '$posti_dopo_prenotazione' WHERE giorno = '".$giorno."' AND mese = '".$mese."'"; var_dump($query);//vedi se la query è giusta echo "<br>"; $uppa=mysql_query($connessione, $query); var_dump($uppa);// se da FALSE ha un errrore e non uppa echo "<br>"; if($numInseriti > 0 ) echo "sono stati inseriti $numInseriti record\n"; else echo "NESSUN RECORD INSERITO\n"; } echo "<hr><a href=\"$_SERVER[PHP_SELF]\">torna alla pagina inserimento</a>\n";
}
else
{
echo <<<MODULO__QUERY
<h2>Prenotazioni posti ristorante</h2>
<form action="$_SERVER[PHP_SELF]" method="POST">
<table border="0" cellpadding="5"><tr> <td>nome:</td> <td><input type="text" size="30" name="nome"/></td> </tr> <tr> <td>cognome:</td> <td><input type="text" size="30" name="cognome"/></td> </tr> <tr> <td>email:</td> <td><input type="text" size="30" name="email"/></td> </tr> <tr> <td>giorno (solo giorno):</td> <td><input type="text" size="2" name="giorno"/></td> </tr> <tr> <td>mese:</td> <td><input type="text" size="10" name="mese"/></td> </tr> <tr> <td>Posti:</td> <td><input type="text" size="2" name="posti"/></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="inserisci"></td> </tr> </table> </form>
MODULO__QUERY;
}?>
<hr><a href="index.html">torna alla pagina di gestione tabella</a>
</body>
</html>[/PHP]