- Home
- Categorie
- Coding e Sistemistica
- PHP
- Codice per scadenza annuncio
-
Codice per scadenza annuncio
Ciao a tutti,
desideravo un aiutino.
Ho un sito di annunci auto in php e Sql , dovrei inserire una funzione per stabilire la scadenza in automatico dopo 30 giorni dall'inserimento del prodotto, con conseguente eliminazione del prodotto.
Grazie in anticipo per la risposta.:)
-
Spero di non aver sbagliato sezione !!
-
E' una domanda tecnica specfica e quindi ti sposto nella sezione adatta.
-
Dovresti utilizzare un cron
-
@Jeeves said:
Dovresti utilizzare un cron
Grazie Jeeves,
sono un autodidatta e sul web non ho trovato nulla al riguardo.
Ho due tabelle:- registrazione utenti
- prodotti
Aggiunto il prodotto vorrei scatti un conto alla rovescia (per esempio -30gg alla scadenza).
Alla scadenza dovrebbe eliminare il prodotto dal db
Scusami questo problema mi ha proprio bloccato, se potresti darmi un aiutino.
Grazie mille
-
Crea un campo nella tabella con la data, fai uno script php che controlli tutta la tabella per cercare i record da eliminare e li elimini, metti in cron in modo che si esegua automaticamente e il gioco è fatto...
-
@Thedarkita said:
Crea un campo nella tabella con la data, fai uno script php che controlli tutta la tabella per cercare i record da eliminare e li elimini, metti in cron in modo che si esegua automaticamente e il gioco è fatto...
Ciao Thedarkita,
innanzitutto grazie per avermi risposto.
Nella tabella prodotti sono presenti le voci data e scadenza, la prima con il comando NOW() in automatico mi genera la data di inserzione dell'annuncio.
Invece la data di scadenza mi rimane a zero poichè non conosco il comando per inserire la data odierna + 30gg.
Esempio:
Campo | Tipo |
Data | date |
Scadenza | date |La tabella prodotti è così configurata.
Praticamente non appena l'utente inserisce il prodotto automaticamente mi dovrebbe partire un conto alla rovescia con un delete alla fine .
Ho provato ad inserire questo script ma non funge.:bho:
Un pò di pazienza!!!
<? session_start();?>
<?php
$tmstmp=mktime();
$last=file_get_contents("lastcron.txt");
if(($tmstmp-$last)>(6010))
{
$pntr=fopen('lastcron.txt', 'w');
if(fwrite($pntr, $tmstmp))
{
mail ("mail","cron OK","OK");
include ("cron.php");
}
else
{
mail ("mail","cron FAIL","FAIL");
}
fclose($point);
}
?>
-
Nel campo data non inserire now() di mysql ma time() di php, il campo scadenza lo puoi anche togliere, tanto ci penserà il cron a "pulire" la tabella
Hai una pagina che inserisce i dati nel database e un'altra che li fa visualizzare?
O non hai ancora fatto niente?
-
@Jeeves said:
Nel campo data non inserire now() di mysql ma time() di php, il campo scadenza lo puoi anche togliere, tanto ci penserà il cron a "pulire" la tabella
Hai una pagina che inserisce i dati nel database e un'altra che li fa visualizzare?
O non hai ancora fatto niente?
L'utente dopo essersi loggato entra in un form per l'inserimento prodotto .
poi il prodotto viene visualizzato in un altra pagina.
se vuoi puoi dare un'occhiatina startcar . it.(scusate..:D)
Giusto per rendere l'ideaFammi sapere, attendo con anzia.
-
@Jeeves said:
Nel campo data non inserire now() di mysql ma time() di php, il campo scadenza lo puoi anche togliere, tanto ci penserà il cron a "pulire" la tabella
Hai una pagina che inserisce i dati nel database e un'altra che li fa visualizzare?
O non hai ancora fatto niente?
Scusami dimenticavo nel campo data ho inserito date
Nella pagina invio prodotto ho inserito NOW(), che a sua volta mi restituisce la data nel campo data sul db.
Spero di essere stato chiaro
-
Posta qui la query che ha creato la tabella del database, il codice php che inserisce l'annuncio e il codice php che visualizza gli annunci
-
Il data base l'ho creato io con Mysql
Questo genera l'invio:
<?
session_start();$login = $_SESSION['logged']; $codice = $_POST['codice'];
if ($titolo=="")
{
echo "<div align="center"><strong class="error">Compilazione di qualche campo errata!!!<br></strong>";
echo "<strong><a href="index.php">Torna Indietro</a></strong></div>";
}else{
echo "";
require_once("../db_conn.php"); if($immagine==""){ $immagine="nondisponibile.jpg"; } $query="INSERT INTO prodotti VALUES('','$login', NOW(),'')"; if (!mysql_query($query,$db_conn)) { echo "<br><strong class=\"error\"><h3>Spiacente, impossibile effettuare l'inserimento...</h3></strong>"; echo "<a href=\"index.php\"><h3>Torna Indietro</h3></a></div>"; } else { echo "Inserimento effettuato con successo!"; } else{ echo "<a href=\"index.php\">Puoi inserire altre auto !</a>"; } } echo "</div>";
}
?>
Mentre questo lo stampa:
<?
/*function GeneraRandom()
{
$numero=rand(1,9999);
return $numero;}
*/
session_start();
if(!isset($idsessione))
{
session_register("idsessione");
$idsessione=session_id();
}require_once("db_conn.php");
$query = "SELECT * FROM prodotti where codice='".$_GET['codice']."'";
$risultati=mysql_query($query,$db_conn) or die("query non riuscita");$numrighe=mysql_num_rows($risultati);
if($numrighe==0)
echo " <center>Al momento non ci sono articoli ";else{
while ($riga = mysql_fetch_array($risultati)) { $codice=$riga['codice']; $venditore=$riga['venditore']; $query1 = "SELECT * FROM utenti where id='$venditore'";
$risultati1=mysql_query($query1,$db_conn) or die("query non riuscita");
$numrighe1=mysql_num_rows($risultati1);
while ($riga1 = mysql_fetch_array($risultati1))
{
$login=$riga1['nome'];
?>
<? echo "$titolo";
echo "<input type="hidden" name="articolo" value="$articolo">";
echo "<input type="hidden" name="prezzounitario" value="$prezzounitario">"; ?>
<? echo( "$marca"); ?>
<? echo( "$modello"); ?>
ecc
ecc</form>
<?
}
}
}mysql_free_result($risultati);
?>
-
@Jeeves said:
Posta qui la query che ha creato la tabella del database, il codice php che inserisce l'annuncio e il codice php che visualizza gli annunci
Il data base l'ho creato io con MysqlQuesto genera l'invio:
<?
session_start();$login = $_SESSION['logged'];
$codice = $_POST['codice'];if ($titolo=="")
{
echo "<div align="center"><strong class="error">Compilazione di qualche campo errata!!!<br></strong>";
echo "<strong><a href="index.php">Torna Indietro</a></strong></div>";
}else{
echo "";
require_once("../db_conn.php");
if($immagine==""){ $immagine="nondisponibile.jpg"; }$query="INSERT INTO prodotti VALUES('','$login', NOW(),'')";
if (!mysql_query($query,$db_conn))
{
echo "<br><strong class="error"><h3>Spiacente, impossibile effettuare l'inserimento...</h3></strong>";
echo "<a href="index.php"><h3>Torna Indietro</h3></a></div>";
}
else
{
echo "Inserimento effettuato con successo!";}
else{ echo "<a href="index.php">Puoi inserire altre auto !</a>"; }
}
echo "</div>";
}?>
Mentre questo lo stampa:
<?
/*function GeneraRandom()
{
$numero=rand(1,9999);
return $numero;}
*/
session_start();
if(!isset($idsessione))
{
session_register("idsessione");
$idsessione=session_id();
}require_once("db_conn.php");
$query = "SELECT * FROM prodotti where codice='".$_GET['codice']."'";
$risultati=mysql_query($query,$db_conn) or die("query non riuscita");$numrighe=mysql_num_rows($risultati);
if($numrighe==0)
echo " <center>Al momento non ci sono articoli ";else{
while ($riga = mysql_fetch_array($risultati))
{
$codice=$riga['codice'];
$venditore=$riga['venditore'];$query1 = "SELECT * FROM utenti where id='$venditore'";
$risultati1=mysql_query($query1,$db_conn) or die("query non riuscita");$numrighe1=mysql_num_rows($risultati1);
while ($riga1 = mysql_fetch_array($risultati1))
{
$login=$riga1['nome'];
?>
<? echo "$titolo";
echo "<input type="hidden" name="articolo" value="$articolo">";
echo "<input type="hidden" name="prezzounitario" value="$prezzounitario">"; ?>
<? echo( "$marca"); ?>
<? echo( "$modello"); ?>
ecc
ecc</form>
<?
}
}
}mysql_free_result($risultati);
?>
-
Allora, fai così:
pagina che inserisce i dati nel database:
[php]<?
session_start();$login = $_SESSION['logged'];
$codice = $_POST['codice'];if ($titolo=="")
{
echo "<div align="center"><strong class="error">Compilazione di qualche campo errata!!!<br></strong>";
echo "<strong><a href="index.php">Torna Indietro</a></strong></div>";
}else{
echo "";
require_once("../db_conn.php");
if($immagine==""){ $immagine="nondisponibile.jpg"; }$query="INSERT INTO prodotti VALUES('','".$login."', ".time().",'')";
if (!mysql_query($query,$db_conn))
{
echo "<br><strong class="error"><h3>Spiacente, impossibile effettuare l'inserimento...</h3></strong>";
echo "<a href="index.php"><h3>Torna Indietro</h3></a></div>";
}
else
{
echo "Inserimento effettuato con successo!";}
else{ echo "<a href="index.php">Puoi inserire altre auto !</a>"; }
}
echo "</div>";
}?>
[/php]
Pagina che stampa a video i commenti:
[php]<?
/*function GeneraRandom()
{
$numero=rand(1,9999);
return $numero;}
*/
session_start();
if(!isset($idsessione))
{
session_register("idsessione");
$idsessione=session_id();
}require_once("db_conn.php");
$query = "SELECT * FROM prodotti where codice='".$_GET['codice']."'";
$risultati=mysql_query($query,$db_conn) or die("query non riuscita");$numrighe=mysql_num_rows($risultati);
if($numrighe==0)
echo " <center>Al momento non ci sono articoli ";else{
while ($riga = mysql_fetch_assoc($risultati))
{
$codice=$riga['codice'];
$venditore=$riga['venditore'];$query1 = "SELECT * FROM utenti where id='".$venditore."'";
$risultati1=mysql_query($query1,$db_conn) or die("query non riuscita");$numrighe1=mysql_num_rows($risultati1);
while ($riga1 = mysql_fetch_assoc($risultati1))
{
$login=$riga1['nome'];
echo $titolo;
echo "<input type="hidden" name="articolo" value="".$articolo."">";
echo "<input type="hidden" name="prezzounitario" value="".$prezzounitario."">";
echo $marca;
echo $modello;
?>
ecc
ecc</form>
<?
}
}
}mysql_free_result($risultati);
?>[/php]Però dimmi comì'è strutturata la tabella nel database
-
Tabella prodotti
Campo
Tipo
Null
Predefinito
codice int(11)No venditore varchar(15)No regione varchar(20)No marca varchar(40)No modello textNo carrozzeria varchar(30)No versione varchar(30)No colore varchar(30)No colorenew varchar(30)No metallizzato varchar(15)No carburante varchar(20)No immatricolazionemese varchar(20)No immatricolazioneanno varchar(20)No potenza varchar(20)No chilometraggio varchar(20)No tipocambio varchar(10)No titolo varchar(40)No condizione varchar(5)No descrizione textNo immagine varchar(50)No immagine2 varchar(50)No immagine3 varchar(50)No immagine4 varchar(50)No prezzo floatNo spedizione varchar(2)No data dateNoIndici: Nome chiaveTipoCardinalitàCampoPRIMARY PRIMARY20 codice
Spazio utilizzato: TipoUtilizzoDati11.792BIndice2.048BTotale13.840B Statistiche righe: IstruzioniValoreFormatodinamico Righe20 Lunghezza riga ø589 Dimensione riga ø692 B Prossimo Autoindex64 Creazione04 Lug, 2008 at 10:33 PM Ultimo cambiamento04 Lug, 2008 at 10:33 PM
-
@Jeeves said:
Allora, fai così:
pagina che inserisce i dati nel database:
[php]<?
session_start();$login = $_SESSION['logged'];
$codice = $_POST['codice'];if ($titolo=="")
{
echo "<div align="center"><strong class="error">Compilazione di qualche campo errata!!!<br></strong>";
echo "<strong><a href="index.php">Torna Indietro</a></strong></div>";
}else{
echo "";
require_once("../db_conn.php");
if($immagine==""){ $immagine="nondisponibile.jpg"; }$query="INSERT INTO prodotti VALUES('','".$login."', ".time().",'')";
if (!mysql_query($query,$db_conn))
{
echo "<br><strong class="error"><h3>Spiacente, impossibile effettuare l'inserimento...</h3></strong>";
echo "<a href="index.php"><h3>Torna Indietro</h3></a></div>";
}
else
{
echo "Inserimento effettuato con successo!";}
else{ echo "<a href="index.php">Puoi inserire altre auto !</a>"; }
}
echo "</div>";
}?>
[/php]
Pagina che stampa a video i commenti:
[php]<?
/*function GeneraRandom()
{
$numero=rand(1,9999);
return $numero;}
*/
session_start();
if(!isset($idsessione))
{
session_register("idsessione");
$idsessione=session_id();
}require_once("db_conn.php");
$query = "SELECT * FROM prodotti where codice='".$_GET['codice']."'";
$risultati=mysql_query($query,$db_conn) or die("query non riuscita");$numrighe=mysql_num_rows($risultati);
if($numrighe==0)
echo " <center>Al momento non ci sono articoli ";else{
while ($riga = mysql_fetch_assoc($risultati))
{
$codice=$riga['codice'];
$venditore=$riga['venditore'];$query1 = "SELECT * FROM utenti where id='".$venditore."'";
$risultati1=mysql_query($query1,$db_conn) or die("query non riuscita");$numrighe1=mysql_num_rows($risultati1);
while ($riga1 = mysql_fetch_assoc($risultati1))
{
$login=$riga1['nome'];
echo $titolo;
echo "<input type="hidden" name="articolo" value="".$articolo."">";
echo "<input type="hidden" name="prezzounitario" value="".$prezzounitario."">";
echo $marca;
echo $modello;
?>
ecc
ecc</form>
<?
}
}
}mysql_free_result($risultati);
?>[/php]Però dimmi comì'è strutturata la tabella nel database
In allegato c'è la tabella prodotti
-
@StartSale said:
In allegato c'è la tabella prodotti
Buogiorno Jeeves,
ho postato la tabella prodotti.
Forse non va bene?:(
-
Mazza che tabella, quanto occupa?
Comunque il fatto è che ti consiglio di usare mysql_fetch_assoc() che fa un'array con $car['nomecampo'] e non $var[0, 1, 2...]
-
Comunque non ho sentito parlare di mktime. Per il controllo della data secondo me è il massimo
-
@mikslap said:
Comunque non ho sentito parlare di mktime. Per il controllo della data secondo me è il massimo
Ciao
non ho capito bene, non hai mai sentito parlare di mktime, ma per il controllo della data è il massimo?
Che significa!
Scusami mi sembra un controsenso..:?