Autor Zpráva
ShadowCZE
Profil
Ahoj / Dobrý den,
už nějakou dobu se snažím o odpočet času. V PHP dělám pouze pár dní a základ stránky je z knížky a já mám dosti značné problémy si ho upravovat podle svých představ. Vyhledáváním tohoto problému jsem strávil už moc času. Tak Vás moc prosím o pomoc.
Jedná se o tento kód
<HTML>
<head>
<title>System</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
  <body>
    <TABLE BORDER = "1" CELLPADDING = "3">
      <TR>
        <TH>Název</TH>
        <TH>Žánr</TH>
<TH>URL</TH>
<TH>Datum Vydání</TH>
<TH>Zbývá</TH>
      </TR>   
<?     
        require_once('otevridb.inc');
        do {
          if (!OtevriDB())  break;
          $sql = "SELECT releaselist.nazev, releaselist.rubrika, releaselist.url, releaselist.datum, releaselist.vid, releaselist.day, releaselist.month, releaselist.year, rubriky.id_rubriky, rubriky.rubrika FROM releaselist, rubriky WHERE releaselist.rubrika = rubriky.id_rubriky order by datum ";
$výsledek = mysql_query("$sql");

          while($radek = mysql_fetch_array($výsledek))
          {

echo "<TR>";
echo "<TD>".$radek["nazev"]."</TD>";
echo "<TD>".$radek["rubrika"]."</TD>";
echo "<TD><a href=".$radek["url"]."> CLICK </a></TD>";
echo "<TD>".$radek["day"]."/".$radek["month"]."/".$radek["year"]."</TD>";
echo "<TD> </TD>";
echo "</TR>";
}
          mysql_close();
        } while (false);
?>
    </TABLE>
    </BODY>
</HTML>


Stránka tedy vytvoří seznam (asi 30 řádků) který obsahuje jméno,žánr,adresu a datum (každý řádek jiné datum) do kterého chci vést onen odpočet. Scriptů jsem našel opravdu spousty, ale díky tomu, že ho musím (možná ne, mám v tom zmatek) vypsat za "echo" se mi nikdy nezobrazí správně.
Datum mám v datábázi rovnou v různých formátech (YYYY-MM-DD / DD.MM.YYYY / a potom zvlášť rok měsíc den). Mohl by mi někdo z Vás poradit jak mám tedy odpočet vepsat , aby správně fungoval pro všechny řádky ? Čím jednodušeji tím lépe :)
mockrát předem děkuji ShadowCZE
SwimX
Profil
ShadowCZE:
uplně nerozumím otázce, jaký odečet?

v DB uplně stačí mít datum jenom jednou, a to ve formátu YYYY-MM-DD tedy DATE nebo UNIX_TIMESTAMP s tím si pak pomocí mysql i php uděláš co už zrovna potřebuješ ;)

a v dotazu bych doporučil:

$sql = "SELECT re.nazev, re.rubrika, re.url, re.datum, re.vid, re.day, re.month, re.year, ru.id_rubriky, ru.rubrika FROM releaselist re, rubriky rru WHERE re.rubrika = ru.id_rubriky order by datum ";


a na spojování tabulek je vhodný i JOIN, ale tak, každému co mu vyhovuje.:
$sql = "SELECT nazev, re.rubrika, re.url, re.datum, re.vid, re.day, re.month, re.year, ru.id_rubriky, ru.rubrika FROM releaselist re
JOIN rubriky ru on re.rubrika = ru.id_rubriky order by datum ";
ShadowCZE
Profil
Myslel jsem odpočet jako že mám uložené teda data do vydání jednotlivých her v DB. A potřeboval jsem aby bylo ve vedlejším sloupci zbývá "X" dní .... našel jsem si nějaké scripty ale tím že to dávám za to echo mi to ten script akorát vypíše nebo to udělá nějakou blbost.. :( Proto jsem se ptal na pomoc
<?php

function get_time_difference( $start, $end )
{
    $uts['start']      =    strtotime( $start );
    $uts['end']        =    strtotime( $end );
    if( $uts['start']!==-1 && $uts['end']!==-1 )
    {
        if( $uts['end'] >= $uts['start'] )
        {
            $diff    =    $uts['end'] - $uts['start'];
            if( $days=intval((floor($diff/86400))) )
                $diff = $diff % 86400;
            if( $hours=intval((floor($diff/3600))) )
                $diff = $diff % 3600;
            if( $minutes=intval((floor($diff/60))) )
                $diff = $diff % 60;
            $diff    =    intval( $diff );            
            return( array('days'=>$days, 'hours'=>$hours, 'minutes'=>$minutes, 'seconds'=>$diff) );
        }
        else
        {
            //trigger_error( "Ending date/time is earlier than the start date/time", E_USER_WARNING );
        }
    }
    else
    {
        //trigger_error( "Invalid date/time data detected", E_USER_WARNING );
    }
    return( false );
}


$rok = 2008;
$mesic = 8;
$den = 26;
$hodina = 12;
$minuta = 35;
$sekunda = 21; 

$arr = get_time_difference("now", "$rok-$mesic-$den $hodina:$minuta:$sekunda");
echo "Konec sveta nastane: ";
echo $den.". ".$mesic.". ".$rok." ".$hodina.":".$minuta.":".$sekunda;
echo "<br>";
if ($arr == false)
{ 
  echo "JIZ NASTAL";
}
else
{
  echo "tedy za: ";
  echo $arr["days"]." dni, ";
  echo $arr["hours"]." hodin, ";
  echo $arr["minutes"]." minut, ";
  echo $arr["seconds"]." sekund.";
  echo "<br>";
}
?>

třeba jsem našel tohle

potom upravil danou část...
$rok = ".$radek["year"].";
$mesic = ".$radek["month"].";
$den = ".$radek["day"].";
$hodina = 00;
$minuta = 00;
$sekunda = 00; 


ale teď nevím kam to mám celé dát... je to prkotina ale já si s tím nevím rady... jinak díky za tip :)

ShadowCZE

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: