• User

    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)
    )


  • User Attivo

    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!


  • User

    Grazie mille per il suggerimento!! molto utile!
    Poi ho trovato dove stava l'errore.

    Thanks


  • User Attivo

    illuminaci!!!


  • User

    Semplice,
    in tabella avevo due campi con nome differente. Al posto di disponibilita avevo quantita, al posto di dataevento solo data.