La data non viene inserita in mysql

Ciao, ho un proble., ho creato una pagina (forma) che preleva dei fati questi devono essere inseriti in un database mysql, il problema è che tutti i dati vengono inseriti tranne la data, poichè mysql non mi da errori credo che il problema sia su come ho programmato il codice per la data, gli script sono questi:

insert.php

<?php require_once('Connections/project_db.php'); ?>
<?php //C'è un errore non controlla la password
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
$data = mktime(0, 0, 0, $_POST['mese'], $_POST['giorno'], $_POST['anno']);
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
  $insertSQL = sprintf("INSERT INTO wood (titolo, testo, autore, mail) VALUES (%s, %s, %s, %s)",
                       GetSQLValueString($_POST['titolo'], "text"),
                       GetSQLValueString($_POST['testo'], "text"),
                       GetSQLValueString($_POST['autore'], "text"),
                       GetSQLValueString($_POST['mail'], "text"),
                  GetSQLValueString($_POST['data'], "text"));

  mysql_select_db($database_project_db, $project_db);
  $Result1 = mysql_query($insertSQL, $project_db) or die(mysql_error());
}
?>
<?php
include ("top_foot.inc.php");
top();
?><style type="text/css">
<!--
body {
   background-color: #FFFFCC;
}
-->
</style>

<form action="<?php echo $editFormAction; ?>" method="POST" name="form" id="form">
  <p>Titolo:
    <input type="text" size=40 name="titolo">
  Data:
  <select name=giorno>
   <?
   for ($i=1; $i<=31; $i++)
   echo "<option value=$i>$i";
   ?>
  </select>
  <select name=mese>
      <option value=1>Gennaio
      <option value=2 selected>Febbraio
      <option value=3>Marzo
      <option value=4>Aprile
      <option value=5>Maggio
      <option value=6>Giugno
      <option value=7>Luglio
      <option value=8>Agosto
      <option value=9>Settembre
      <option value=10>Ottobre
      <option value=11>Novembre
      <option value=12>Dicembre
    </select>
  <select name=anno>
      <option value=2001>2001
      <option value=2002>2002
      <option value=2003>2003
      <option value=2004>2004
      <option value=2005>2005
    </select><br>
  <br>
Autore
<input type="text" size=40 name="autore">
E-mail:
<input type="text" size=40 name="mail">
</p>
  <p>Testo<br>
    <textarea name="testo" cols=100 rows=35></textarea>
</p>
  <p>Password: 
    <input type="password" size=40 name="pass"> 
    <input name="submit" type=submit value=Invia>
  </p>
  <input type="hidden" name="MM_insert" value="form">
</form>
<?
// chiusura pagina
foot();
?>

il file che dovrebbe inserire i dati è:

save.php

<?php
include("mydb.class.php");
include("top_foot.inc.php");
top();
$mydb_obj=new mydb('localhost', 'root', 'rubber', 'wood');

if ($_POST['pass'] != $mybd_obj->passw)
{
   echo "Password errata";
   exit();
}

if (trim($_POST['titolo'])=='' OR trim($_POST['testo'])=='')
{
   echo "I campi Titolo e Testo devono essere riempiti!";
   exit();
}

if (!get_magic_quotes_gpc()) {
   $titolo = addslashes($_POST['titolo']);
   $autore = addslashes($_POST['autore']);
   $mail = addslashes($_POST['mail']);
   $testo = addslashes($_POST['testo']);
}

$titolo = htmlspecialchars($titolo);
$autore = htmlspecialchars($autore);
$testo = htmlspecialchars($testo);
$testo = nl2br($testo);

$data = mktime(0, 0, 0, $_POST['mese'], $_POST['giorno'], $_POST['anno']);
$mydb_obj->db_select();

//Query che si occupa dell'inserimento
$query = "INSERT INTO $mydb_obj->db_name (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";

// effettuo la query
mysql_query($query);

mysql_close($mydb_obj->bd);
foot();
?>

Poi vorrei sapere anche se secondo voi il codice è ridondante cioè, vorrei sapere (poichè ormai ho fatto molta confusione e non vorrei toccare i file perchè funzionano apparte per la data) se le informazioni del form vengono inserite da insert.php o da save.php.

inviato 11 anni fa
gohan079
X 0 X

scusa ma... c'è pure scritto :o in save.php:

//Query che si occupa dell'inserimento

$query = "INSERT INTO $mydb_obj->db_name (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";

c'è la query per l'inserimento dei dati nel database...

riguardo la data ti consiglio la funzione date()... guarda qui

risposto 11 anni fa
z3ro
z3ro
1
X 0 X

Che tipo di campo usa la tabella per la memorizzazione della data?

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

i campi sono del tipo elenco\menu

poi per quanto riguarda l'inserimento l'INSERT è presente anche nel file inser.php (è presente anche in save.php)

risposto 11 anni fa
gohan079
X 0 X

...mi riferivo al tipo di campo della tabella del DATABASE che memorizza la data.

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

è di tipo intero con precisione la sezione  della creazione della tabella è:

$quer="CREATE TABLE $mydb_obj->db_name (id INT(5) UNSIGNED not null AUTO_INCREMENT, titolo VARCHAR (255) not null, testo TEXT not null, data INT(11), autore VARCHAR(50), mail VARCHAR(50), PRIMARY KEY (id))";

risposto 11 anni fa
gohan079
X 0 X

dopo aver eseguito la query, metti un echo $query; così da verificare cosa hai mandato al database

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

gianni, per quanto riguarda la creazione della tabella nel database, non si sono problemi ho controllato con navicat la tabella è creata i dati vengono inseriti tranne la data, ora poichè non ho ben capito cosa volevi dirmi, mi potresti spiegare meglio a quale query devo agg. il codice che mi hai postato. Poi mi potresti indicare quale parte del codice invia i dati alla tabella presente nel database ?. grazie

risposto 11 anni fa
gohan079
X 0 X

la parte di codice che invia i dati al DB è la seguente:

//Query che si occupa dell'inserimento
$query = "INSERT INTO $mydb_obj->db_name (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";

// effettuo la query
mysql_query($query);

Ciò che ti consigliavo di fare è di mettere una istruzione per mostrare il testo della query che realmente viene eseguito. Ti basta aggiungere echo $query; dopo le istruzioni che ti ho riportato. Vedrai che quando viene eseguito l'inserimento nella pagina verrà mostrata la query.

 :bye:

P.S.: a quando uno studio serio del PHP?  ;)

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda