Autor Zpráva
mardon
Profil
Mám dvourozměrné pole:

DibiRow Object ( [id] => 1 [ser] => 181359 [name] => mamula [email] => mamula@neco.cz [od] => 2008-06-05 08:08:45 [do] => 2009-06-05 08:08:45 )
DibiRow Object ( [id] => 2 [ser] => 45678 [name] => testovací [email] => ddd@fff.cz [od] => 2009-03-10 11:33:47 [do] => 2009-03-31 11:33:53 )

ted bych ale potrebovala změnit všechny položky [od], zřejmě je potřeba použít příkaz foreach, ale nějak nevím jak na to ?
tiso
Profil
mardon otázka znie: na čo to potrebuješ zmeniť?
mardon
Profil
chci na to použít
preg_replace('~^([0-9]+)-0?([0-9]+)-0?([0-9]+)~', '\\3.\\2.\\1', datum["od"]);
abych dostala datum v pro nás obvyklé formě a poslal to pak jako pole do smarty šablony
Jan Tvrdík
Profil
mardon:
Nešlo by to řešit na úvovni MySQL – http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_time-format?
mardon
Profil
to možná šlo, ale já jsem použila pro připojení k MySQL dibi a opět v tom plavu, nevím jak toho v dibi docílit
Jan Tvrdík
Profil
mardon:
Zkus to takhle:
dibi::query('
  SELECT [id], [ser], [name], [email], TIME_FORMAT([od], %s) AS [od]', '%H %k %h %I %l', '
  FROM [table]
');


EDIT: Lze to řešit ještě lépe – koukni na dibi fórum.
mardon
Profil
tak nevím nějak mi to nefunguje:

class certificat
{
public function get_all_cert ()
{
//$res = dibi::query('SELECT * FROM [certifikat]');
$res = dibi::query('SELECT [id], [ser], [name], [email], TIME_FORMAT([od], %s) AS [od]', '%H %k %h %I %l ',' FROM [certifikat]');
return $res;
}
}

szejně by mě zajímalo to řešení změny v poli

pomohlo mi tohle:


dibi::query('SELECT [id], [ser], [name], [email], DATE_FORMAT([od], %s) AS [od]', '%d.%m.%Y ',' FROM [certifikat]');
Jan Tvrdík
Profil
mardon:
nějak mi to nefunguje:
Pomohlo by, kdy by jsi napsala, jak se projeví nefunkčnost. Vyhodí dibi vyjímku?

Jinak tohle je určitě čistější řešení:
class certificat 
{ 
	public function get_all_cert () 
	{ 
		$res = dibi::query('
			SELECT [id], [ser], [name], [email], [od]
			FROM [certifikat]
		');
		
		$res->setType('od', dibi::FIELD_DATETIME, 'd. m. Y H:i');
		 
		return $res; 
	} 
}


Akorát musíš mít v DB nastaven sloupec od jako datetime a ne jako varchar.
mardon
Profil
díky za pomoc už to funguje jak má

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: