Portál AbcLinuxu, 12. května 2025 00:59

Dotaz: PHP - Undefined offset: 2 in...

20.4.2011 23:24 citro
PHP - Undefined offset: 2 in...
Přečteno: 520×
Odpovědět | Admin
Pozdravujem,

Potreboval by som radu ohľadom tejto "chybičky". Vyskúšal som sa popozerať aj na webe niekde po riešení, ale nič. Mám nasledujúcu funkciu:
function sqlTOdate($s_datum){
		$pole=(explode("-",$s_datum));
		$n_datum=$pole[2].".".$pole[1].".".$pole[0];
		return $n_datum;
	}
Vyrobil som si to ako prevod dátumu formátu YYYY-MM-DD (ktorý je uložený v MySQL) do formátu DD.MM.YYYY, ktorý vypisujem na stránke. Keď použijem túto funkciu raz, všetko je v poriadku. Akonáhle ju ale vyvolám ďalej v kóde opäť, už mi to skončí s chybou "Notice: Undefined offset: 2 in...". Zaujímavé pritom je to, že prevod prebehne a aj sa správne zobrazí na stránke. Obidva dátumy, ktoré sú uložené v databáze som kontroloval a obidva sú v rovnakom formáte. Vedel by mi niekto poradiť, kde je problém? Vopred vďaka.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.4.2011 07:58 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP - Undefined offset: 2 in...
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chybu máte někde v kódu okolo, asi do ní pošlete něco jiného.
Zkuste doplnit
function sqlTOdate($s_datum) {
  $pole=(explode('-',$s_datum));
  if(count($pole) != 3)
    echo "Error date convert, input date: '$s_datum'<br />\n";
  $n_datum=$pole[2].'.'.$pole[1].'.'.$pole[0];
  return $n_datum;
}
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
21.4.2011 10:15 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: PHP - Undefined offset: 2 in...
Odpovědět | | Sbalit | Link | Blokovat | Admin
a nebo úplně jinak
function sqlTOdate($s_datum){
    return preg_replace('/^([\d]{4})-([\d]{1,2})-([\d]{1,2})$/', '$3.$2.$1', $s_datum);
}
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
21.4.2011 12:36 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP - Undefined offset: 2 in...
To ovšem nevyřeší problém nesprávného vstupu…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
21.4.2011 13:23 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: PHP - Undefined offset: 2 in...
No nevyřeší i vyřeší, když nebude správný, tak to nic neudělá a vrátí to původní vstup.
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
22.4.2011 09:33 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP - Undefined offset: 2 in...
Jo i to je vlastně řešení… :)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
21.4.2011 16:50 rastik
Rozbalit Rozbalit vše Re: PHP - Undefined offset: 2 in...
Odpovědět | | Sbalit | Link | Blokovat | Admin

Podla mna staci jeden riadok:

$n_datum = date('d.m.Y', strtotime($s_datum));

21.4.2011 21:29 citro
Rozbalit Rozbalit vše Re: PHP - Undefined offset: 2 in...
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vďaka za rady, ale všetkým sa musím ospravedlniť. Chyba bol na mojej strane (asi som už bol prepracovaný). Len som si nevšimol, že v tabuľke je o jeden záznam viac a ten nemal priradený žiadny dátum, takže bolo to aj logické, že sa odkazovalo na neexistujúci prvok poľa. Už som to ošetril pomocou "if" a všetko funguje ako má. Ešte raz sa ospravedlňujem.
21.4.2011 23:39 R
Rozbalit Rozbalit vše Re: PHP - Undefined offset: 2 in...
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pouzi funkciu MySQL DATE_FORMAT.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.