PDA

View Full Version : PHP - Inserimento data in un guestbook


negator136
03-01-2006, 15:34
$lol=(date("d-m-y"));
$data ="$lol";

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "scrivi_guestbook")) {
$insertSQL = sprintf("INSERT INTO guestbook (nome, $data, email, sitoweb, commento) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nome'], "text"),
GetSQLValueString($_POST['data'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['sitoweb'], "text"),
GetSQLValueString($_POST['commento'], "text"));

$lol=(date("d-m-y"));
$data ="$lol";

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "scrivi_guestbook")) {
$insertSQL = sprintf("INSERT INTO guestbook (nome, data, email, sitoweb, commento) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nome'], "text"),
GetSQLValueString($_POST['$data'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['sitoweb'], "text"),
GetSQLValueString($_POST['commento'], "text"));

sono assolutamente un niubbo in php, però aiutandomi con una guida sono riuscito a creare un piccolo guestbook funzionante per il mio sito...

ora stavo provando ad inserire un campo con la data, ma non ci riesco...

il codice che ho modificato è quello che ho copiato poco sopra... sono due tentativi non andati a buon fine... (come potete vedere ho le idee abbastanza confuse...)
naturalmente ho anche creato un campo nella tabella del database sql, chiamato "data" di tipo tinytext...

qualcuno sa dirmi dove sbaglio pre favore? :muro:

ah, tutti gli altri valori sono inseritii in questo modo: <form action="<?php echo $editFormAction; ?>" method="POST" name="scrivi_guestbook" id="scrivi_guestbook">

...

grazie :)

negator136
03-01-2006, 23:15
aiutooo!!
non so davvero come fare!!! :mc:

negator136
04-01-2006, 10:04
nessuno ha idee?? :(




ps: ma almeno la domanda si capisce? si capisce com'è fatto il mio guestbook e che modifica vorrei apportare? :confused:

sydarex
04-01-2006, 11:11
Ti spiego un po come devi fare.
Il campo per la cdata non deve essere tinytext, ma int da 11.
Ogni volta, inserirai in questo campo il risultato della funzione time(), che restituisce un timestamp (cioè il numero di secondi passati dal 01/01/1970).
Quando dovrai visualizzarlo, userai la funzione date("d-m-y",$row['time']), dove $row['time'] è il timestamp ($row sarebbe quindi la riga del database).
Per la sintassi di date() ti rimando a questa (http://freephp.html.it/guide/lezione.asp?id=193) pagina.

Sono nuovo!

negator136
04-01-2006, 11:51
Ti spiego un po come devi fare.
Il campo per la cdata non deve essere tinytext, ma int da 11.
Ogni volta, inserirai in questo campo il risultato della funzione time(), che restituisce un timestamp (cioè il numero di secondi passati dal 01/01/1970).
Quando dovrai visualizzarlo, userai la funzione date("d-m-y",$row['time']), dove $row['time'] è il timestamp ($row sarebbe quindi la riga del database).
Per la sintassi di date() ti rimando a questa (http://freephp.html.it/guide/lezione.asp?id=193) pagina.

Sono nuovo!

grazie!
credo di aver capito... l'unica cosa che mi resta orscura è come scrivere sul database il risultato della funzione time()...

ah, un'altra cosa non è chiara... hai detto che $row['time'] è la riga del database... quindi 'time' è il nome della cella in cui ho salvato l'intero da 11 (nel mio caso scriverei 'data'), vero?

thanks a lot

ps: BENVENUTO!!! :)

sydarex
04-01-2006, 12:55
Beh, il risultato lo inserisci come il risultato di qualsiasi altra funzione, come una variabile (invece della variabile tipo $_POST['blabla'] metti time()).

Si, è il nome della cella. Ovviamente puoi mettere qualsiasi nome ti garbi :)

negator136
04-01-2006, 13:35
ho capito cosa intendi, ma non riesco a mettere in pratica la prima parte!!!

<?php require_once('connections/nomefile.php'); ?>
<?php
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'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

$_POST['data']="time()";

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "scrivi_guestbook")) {
$insertSQL = sprintf("INSERT INTO guestbook (nome, email, sitoweb, commento) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['nome'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['sitoweb'], "text"),
GetSQLValueString($_POST['commento'], "text"));

mysql_select_db($database_nomefile, $nomefile);
$Result1 = mysql_query($insertSQL, $nomefile) or die(mysql_error());

$insertGoTo = "grazie.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>

$_POST['data']="time()";

questa riga non produce alcun risultato... la cella 'data' della tabella continua a rimanere vuota! :( come devo modificarla?

grazie :)

negator136
04-01-2006, 15:59
ok, ho riscritto il codice da capo seguendo una nuova guida e ora funziona decisamente meglio...

sono anche riuscito a inserire la data ;)

ho ancora qualche domanda da farvi però...

la prima:

attualmente i record sono ordinati e stampati avideo secondo l'id:

$lettura_risultati=mysql_query("select * from guestbook order by id");

come faccio a farli stampare nell'ordine opposto?

grazie :)

negator136
04-01-2006, 16:35
ok, ho riscritto il codice da capo seguendo una nuova guida e ora funziona decisamente meglio...

sono anche riuscito a inserire la data ;)

ho ancora qualche domanda da farvi però...

la prima:

attualmente i record sono ordinati e stampati avideo secondo l'id:

$lettura_risultati=mysql_query("select * from guestbook order by id");

come faccio a farli stampare nell'ordine opposto?

grazie :)


fatto da solo... ammetto che l'ho sparata... cioè: "order by 1/id" :asd: