Autor Zpráva
pavuk
Profil
Dnes jsem se začal učit jak na databáze. Od rána se v tom hrabu, nebudu ani zmiňovat kolik jsem toho přečetl na linuxsoftu, jpw, php.netu, než jsem vůbec rozchodil databáze na localhostu a dosáhl krátkýho funkčního skriptu. Už se v tom ale ztrácím. Potřebuju vypsat datum ve formátu dd-mm-yyyy, ale nevím jak na to. Pokusil jsem se už asi o dvacet různých způsobů jak do $zaznam['nastup'] doplnit %d.%m.%Y, ale nic... vždycky skončí chybou syntaxe, a to jsem zkusil snad všechno. Pořád vypisuje např. 2015-01-20.
Jak dosáhnout datumu ve zmíněným formátu? nebo dělám chybu někde úplně jinde?
<?php
$spojeni = mysql_connect("127.0.0.1","root","heslo")  
            or die (" 
                    <p>Spatne zadane udaje</p>
                ");
mysql_select_db("pokus", $spojeni) or die ('Spatne zadana databaze - ' . mysql_error());
mysql_set_charset("utf8");
echo "<table>";
$vysledek=mysql_query('SELECT * from pokusna');
while ($zaznam=MySQL_Fetch_Array($vysledek))
echo "<tr><td>".$zaznam['jmeno']." ".$zaznam['prijmeni']."</td><td>".$zaznam['email']."</td><td>".$zaznam['nastup']."</td></tr><br>\n";
echo "</table>\n";
?>
Alphard
Profil
Jsou v podstatě dvě možnosti
1. můžete/jste ochoten upravit dotaz, pak stačí
SELECT *, date_format(nastup, '%H %k %I %r %T %S %w') from pokusna

Konkrétní zástupné znaky na http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

2. Dotaz nebudete měnit a necháte to na php, kombinace strtotime() a date() (pokud máte verzi 5.3, exitují i jiné možnosit).
pavuk
Profil
Já se to učím teprve od osmi od rána a mám toho v hlavě tolik, že se v tý odpovědi vůbec nedokážu zorientovat... doufal jsem že jen přidám do výpisu $zaznam['nastup'] nějakým způsobem znaky pro den-měsíc-rok a bude to, tohle je na mně ale aktuálně příliš... přesto díky
edit:verzi mám 5.3.2
pavuk
Profil
Alphard:
Zkusil jsem stejně i s různejma obměnama postup podle 1., ale pořád to končí chybou, např. při zápisu podle [#2]
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in E:\php\databaze\databaze.php on line 14
kde řádek 14 odpovídá řádku 9 z [#1]nebo při vynechání apostrofů v dotazu
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in E:\php\databaze\databaze.php on line 15
kde řádek 15 odpovídá řádku 10 z [#1]
Už do toho koukám tak dlouho že jsem z toho naprostej jelen... Rada 2. je pro mě v mých začátcích absolutně nezkonstruovatelná, pořád a pořád chyby syntaxe, takže se nikam nepohnu.
Rellik
Profil
No já to řešil před chvilkou.
v tabulce mám buňku s názvem "datum" a do ní ukládám čas ve fotmátu yyyy.mm.dd. Jinak měl sem stejný problém s tím "předatováním". Když sem poslal datum např 12.6.2011 tak to uložilo 2012.06.20 - musel sem změnit pořadí ukládání do tabulky, aby se to uložilo ve formátu yyyy.mm.dd pak stačí výpis z DB udělat tak:
$vypis =  mysql_query("SELECT *, extract(day from datum)  as 'den', extract(month from datum)  as 'mesic', extract(year from datum)  as 'rok' FROM kalendar order by datum");
while($row = mysql_fetch_array($vypis))
					{ echo $row["den"].'.'.$row["mesic"].'.'.$row['rok'].'<br />';
					}
brick_top
Profil *
Taky jsem toto ted řešil. Potřeboval jsem vypsat z db datum ve formátu D.M.RRRR a akce (příslušející tomuto datu). Tabulka má sloupec id, datum, popis. Datum ma format sloupce date, protože když vkládám danou akci tak používám fci NOW(), která mi to uloží ve formátu RRRR-MM-DD. No u PHP i MySQL verze 5.x jsem to nakonec udělal takto:
$sql = 'SELECT date_format(datum,\'%e.%c.%Y\') as datum, popis FROM novinky';
			$q=mysql_query($sql, $spojeni);
			while ($r=mysql_fetch_array($q))
		  {
			$datum = $r['datum'];
			$popis = $r['popis'];
			echo '<li>'.$datum.' - '.$popis.'</li>';
			
		  }

Snad se to bude hodit.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0