- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema con inserimento dati in tabella
-
Problema con inserimento dati in tabella
Salve ragazzi,
ho un problema con cui sto lottando da 2 giorni e che non riesco a risolvere. Ho un form per l'inserimento di determinati dati in tabella. Una volta inseriti, tramite un file php di controllo dovrebbe uscirmi la scritto "evento inserito correttamente" e stampare a video alcuni dati inseriti. Tra cui il nome di chi ha inserito l'evento, l'id dell'ultimo evento e la data di inserimento. Il nome viene visualizzato, ultimo id e ora nisba. Id mi da zero, la data resta vuota.Il codice è questo:
[PHP]
<?php
$evento = htmlentities(strip_tags($_POST["evento"]));
$luogo = htmlentities(strip_tags($_POST["luogo"]));
$data = htmlentities(strip_tags($_POST["dataevento"]));
$ora = htmlentities(strip_tags($_POST["ora"]));
$descrizione = str_replace("\n", "<br />",$_POST["descrizione"]);
$disponibilita = htmlentities(strip_tags($_POST["disponibilita"]));
$prezzo = htmlentities(strip_tags($_POST["prezzo"]));
$organizzazione = htmlentities(strip_tags($_POST["autore"]));$type = $_FILES['file']['type'];
$nome = $_FILES['file']['name'];
$size = $_FILES['file'];
$immagine = @file_get_contents($_FILES['file']['tmp_name']);
$immagine = addslashes ($immagine);
$max_size = 100000;if($evento=="")
{
print ("Il nome dell'evento è obbligatorio<br><a href="insertevent.php">indietro</a><br>");
}
elseif($luogo=="")
{
print ("Il luogo dell'evento è obbligatorio<br><a href="insertevent.php">indietro</a><br>");
}
elseif($data=="")
{
print ("La data dell'evento è obbligatoria<br><a href="insertevent.php">indietro</a><br>");
}
elseif($ora=="")
{
print ("L'ora dell'evento è obbligatoria<br><a href="insertevent.php">indietro</a><br>");
}
elseif($descrizione=="")
{
print "La descrizione è obbligatoria<br><a href="insertevent.php">indietro</a><br>";
}
elseif($disponibilita=="")
{
print "Indicare la disposibilità<br><a href="insertevent.php">indietro</a><br>";
}
elseif($prezzo=="")
{
print "Indicare il prezzo per singolo biglietto<br><a href="insertevent.php">indietro</a><br>";
}
elseif($immagine=="")
{
print "L'immagine è obbligatoria<br><a href="insertevent.php">indietro</a><br>";
}
elseif($size > $max_size)
{
print "L'immagine supera i 100 kb. Il file è troppo grande<br><a href="insertevent.php">indietro</a><br>";
}
else
{
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
mysql_query("insert into eventi (evento, luogo, dataevento, ora, descrizione, disponibilita, prezzo, autore, nome, size, type, immagine) values ('$evento', '$luogo', '$data', '$ora', '$descrizione', '$disponibilita', '$prezzo', '$organizzazione','$nome','$size','$type','$immagine')");
$ultimo_id = mysql_insert_id();
mysql_close();
?>
<table width="400" bgcolor="#f5f5f5" align="center" cellpadding="0" cellspacing="5" border="0">
<tr>
<td>
<div align="center">
<h1><font color="#000000" size="4">EVENTO INSERITO CORRETTAMENTE</font></h1>
</div><br></td></tr>
</table>
<br>
<table width="400" bgcolor="#FFFFFF" align="center" cellpadding="0" cellspacing="5" border="0">
<tr><td>
<?php
include("config.php");
mysql_connect($db_host, $db_user, $db_password, $db_name) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
$dati = mysql_query("SELECT date_format(data,'%d-%m-%Y %H:%i') AS 'dataora' FROM eventi WHERE event_id='$ultimo_id'");
$array = mysql_fetch_array($dati);
echo "<h3>Autore:</h3> $organizzazione<br><br>";
echo "<h3>Ultimo id inserito:</h3> $ultimo_id<br>";
echo "Pubblicato il ".substr($array ['dataora'],0,10)." alle ". substr($array ['dataora'],11,5);
mysql_close();
?>
<br>
<br>
<?php
include("config.php");
mysql_connect($db_host, $db_user, $db_password, $db_name) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");$dati = mysql_query("SELECT * FROM eventi WHERE event_id='$ultimo_id'");
$array = mysql_fetch_array($dati);
echo " <tr>";
echo "<td><a href="modifica.php?id=" . $array['event_id'] . "">modifica</td> ";
echo "<td><a href="amministrazione/menu.php">Torna al menu</td> ";
echo "</tr>";
mysql_close();
?>
<br>
</td>
</tr>
</table>
</body>
</html>
<?
}
?>
[/PHP]Mi sapete dire dove diavolo sta l'errore? Ho testato il tutto in locale ma nulla!!!!!! Eppure pare che non vi siano errori di codice, ma magari mi sta sfuggendo qualcosa. Ah, per inciso, questa è la struttura della tabella eventi:
CREATE TABLE
eventi
(
event_id
int(5) unsigned NOT NULL auto_increment,
evento
text NOT NULL,
luogo
text NOT NULL,
dataevento
varchar(50) NOT NULL default '',
ora
varchar(50) NOT NULL default '',
descrizione
text NOT NULL,
quantita
int(3),
prezzo
decimal (5,2),
data
timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
nome
varchar(50) NOT NULL default '',
size
varchar(25) NOT NULL default '',
type
varchar(25) NOT NULL default '',
immagine
longblob NOT NULL,
pub
int(1) NOT NULL default '0',
PRIMARY KEY (event_id
)
)
-
Giusto per dare consigli a chi nn li chiede.....
io le query prima le facevo come te, ma su query lunghe viene un delirio, ora le faccio così:
$query = "INSERT INTO eventi SET
evento = '$evento',
luogo = '$luogo',
dataevento = '$data',
ora = '$ora',
descrizione = '$descrizione',
disponibilita = '$disponibilita',
prezzo = '$prezzo',
autore = '$organizzazione',
nome = '$nome',
size = '$size',
type = '$type',
immagine = '$immagine'
";cmq, aggiungi dopo l'esecuzione della 1° query:
die(mysql_error()." id:".mysql_insert_id());poi nn hai detto se nel DB lo inserisce o no!
-
Grazie mille per il suggerimento!! molto utile!
Poi ho trovato dove stava l'errore.Thanks
-
illuminaci!!!
-
Semplice,
in tabella avevo due campi con nome differente. Al posto di disponibilita avevo quantita, al posto di dataevento solo data.