Autor Zpráva
coinage
Profil *
Čau lidi, mám problémek s PHP. Dokážu vypsat hodnoty z databáze, smazat zápis z tabulky za určitý časový interval, ale nemohu přijít na to, jak smazat soubor z adresáře za určitý časový interval. Taky mi nejde nastavit zobrazení správného data a času - pořád samý vteřiny ... Přikládám script

<?php

$dbServer = "sql.server";
$dbDatabase = "database";
$dbUser = "user";
$dbPass = "heslo";

$db = mysql_connect($dbServer, $dbUser, $dbPass) or die("Není možné připojit databázový server.");
mysql_select_db($dbDatabase, $db) or die("Není mmožné spojení s databází $dbDatabase");

$query = "SELECT cas, nazev, popis FROM tabulka ORDER BY cas ASC";

$result = mysql_query($query) or die("Není možné vytvořit seznam!");

?>

<table width="100%">

<tr>
<td width="25%">
<b>Vloženo</b>
</td>
<td width="50%">
<b>Název</b>
</td>
<td width="15%">
<b>Popis</b>
</td>
<td width="10%">
<b>Download</b>
</td></tr>

<?php
// smazání diskusních příspěvků starších než 14 dní
mysql_query("DELETE FROM tabulka WHERE cas + 14*24*60*60 < UNIX_TIMESTAMP()"); // datum uložený v číselném sloupci

?>

<?php
while($row = mysql_fetch_array($result))
{
?>

<tr>
<td>
<?php echo $row["cas"]; ?> ////////////////zobrazí se pouze ve vteřinách
</td>
<td>
<?php echo $row["nazev"]; ?>
</td>
<td>
<?php echo $row["popis"]; ?>
</td><td>
<a href="soubory/<?php echo $row["nazev"]; ?>">Prohlédnout</a> //umožní stažení souboru
</td>
</tr>

<?php
}
echo "</table>";
?>
coinage
Profil *
Kdyby aspon nekdo napsal ze neví, ale jen kouknout a nic neudelat se mi nelibi.
Leo
Profil
"Kdyby aspon nekdo napsal ze neví, ale jen kouknout a nic neudelat se mi nelibi."

To je vas problem. V tom pripade si u nekoho zaplatte konzultaci. Leo
prochazka.zde.cz
Profil *
a co tak pouzit hlavicku. kdyz mam cas neustale v sekundach, tak co no to pouzit matematiku? kdyz to vydelim 60 tak mam cas v minutach, kdyz 3600 tak to vychazi v hodinach a kdyz 43200 tak mam pocet dnu. V cem je problem.

$nCasDen = ($row["cas"] / 43200);
llook
Profil
Kdyby každý, kdo neví, psal že neví, tak nevím, jak by to tu dopadlo...

Zřejmě to máš v databázi uložené ve vteřinách. Takže:
echo date('d. m. Y H:i:s', $row['date']);
mila
Profil
Aby se nezobrazil ve vteřinách, když je tak uložen v databázi. Php si nemůže samo od sebe naformátovat číslo z databáze jako nějaké datum (leda že by bylo od microsoftu:) ).

fce strftime tuším. Ale i další...
coinage
Profil *
Zřejmě to máš v databázi uložené ve vteřinách. Takže:
echo date('d. m. Y H:i:s', $row['date']);


Díky za tuto radu, teď by bylo dobré ještě vědět, jak odstranit z ze serveru soubor po uplynutí nějaké doby, jako např:
v pondělí vložím soubor a v pátek chci, aby se sám smazal, jak se to dá udělat?
prochazka.zde.cz
Profil *
tak to se asi obavam ze to nejde tak jak Vy potrebujete. Ponevad pravdepodobne nejde naplanovat pravidelne spousteni scriptu...
Jedina moznost je: kdyz se script spusti podruhe, tak otestuje vsechny soubory zda jim nevyprsel timeout a pokud ano tak je smazat....
coinage
Profil *
tak to se asi obavam ze to nejde tak jak Vy potrebujete. Ponevad pravdepodobne nejde naplanovat pravidelne spousteni scriptu...
Jedina moznost je: kdyz se script spusti podruhe, tak otestuje vsechny soubory zda jim nevyprsel timeout a pokud ano tak je smazat....


Presne tak to mam namyslene, protoze nejde o to, aby se to smazalo presne na vterinu, ale az po uplynuti presne danych dnu.
tzn, ze se to vymaze az tomu uplyne doba platnosti - ve dnech, ato staci az se nekdo na ty stranky podiva, protoze prave ten den to tam uz neuvidi. - teda pokud se podiva ve spravnou dobu.
coinage
Profil *
Všem vám moooc děkuji za rady, nakonec se mi to povedlo vyřešit úplnou náhodou a na mazání souború jsem se vykaškal, stejně se top bude mazat z administračního přihlášení.

Takže ještě jodnou díky a mějte se.
Toto téma je uzamčeno. Odpověď nelze zaslat.