születési dátum bevitele adatbázisba
A kovetkezo adatok szerepelnek a HTML oldalban :Milyen formában viszem be ezeket az adatokat mySQL adatbázisba, tudnátok egy INSERT példát adni ?
Feltételezem, hogy a felhasználo a következö adatot adja meg születési dátumnak:
February-3-1985
■
Szuletesi datum:<br />
<select name="month">
<option value="0">January</option>
<option value="1">February</option>
<option value="2">March</option>
<option value="3">April</option>
<option value="4">May</option>
<option value="5">June</option>
<option value="6">July</option>
<option value="7">August</option>
<option value="8">September</option>
<option value="9">October</option>
<option value="10">November</option>
<option value="11">December</option>
</select>
<select name="day">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select><input type="text" name"year" value="YYYY" size="4" /></p><br />
Feltételezem, hogy a felhasználo a következö adatot adja meg születési dátumnak:
February-3-1985
tényleg?
print_r($_POST)/print_r($_GET);
(pl.: PHP:
array('month'=>2, 'day'=>3, 'year'=>1985)
)Ha van válasz ezekre a kérdésekre, akkor talán egy soros választ is kaphatsz!
TikuVoltam
valasz
POST-al mozgatom az adatokat es PHP queryvel akarom beszurni az adatatokat
egy mezoben.
valasz
Ha pedig tul hosszu a thread, gondolom azert letezik moderator a forumon, hogy editalja.
Gondolom te mikor kezdo voltal neked minden sikerult egybol :)
tesrmészetesen nem
Viszont ha falba ütközöm veszem a fáradtságot és utána nézek mindennek, mielőtt egy betű segítséget is kérnék. És ha még akkor sem boldogulok, félre teszem egy kis időre (egy-két órára), majd újra próbálkozok.
Ez a probléma (t.i. hogyan tároljunk dátumot MySQL adatbázisban) tipikusan olyan, hogy egy keresővel félórát rászánva atom megoldást találhat, aki akar.
TikuVoltam
akkor most mi a probléma?
Ha *CHAR akkor mi a baj?
Ha DATE/DATETIME akkor http://dev.mysql.com/doc/refman/4.1/en/date-and-time-type-overview.html
Eddig hogy próbálkoztál? Mik voltak azok amiket kipróbáltál, és elvéreztek?
TikuVoltam
re:
birthday DATE NOT NULL
Ok amikor beirom:
INSERT into register (birthday) VALUES (????);
A VALUES-nal azokat az ertekeket szeretnem beirni amelyeket a user kivalaszt.
A honapokat peldaul a kovetkezo foeach parancsal hozom letre:
mit kapsz a felhasználótól?
Ismételni fogom önmagam:
Írasd ki a kapott adatokat!
Elolvastad amit belinkeltem?
Próbálkozz, próbálkozz, próbálkoz...
<ismétlés>
Ez a kérdés arra vonatkozott, hogy mik voltak azok az INSERT változatok amiket kipróbáltál? Milyen formában próbáltad beszúrni azt a dátumot?
TikuVoltam
koszonom
lekerdezes
[month] => 2
[day] => 1
[year] => YYYY
Na, most ezeket az ertekeket szeretnem beszurni mysql adatbazisba.
probaltam a kovetkezot:
date($month) es date('n', $month) de nem szurja be a honapot.
Ha tudnal segiteni, hogyan tudom beszurni a kivalasztott ertekeket akkor a problema meg is lenne oldva.
Koszonom es ne haragudj, hogy annyit kerdezlek.
mktime
Neked a mktime kell (a date oldaláról egyből odajuthattál volna), az csinál számokból datetime típust. A paraméterezése annyira egyértelmű, hogy nehéz eltéveszteni.
http://hu2.php.net/manual/en/function.mktime.php
Egyébként arra sem lenne szükséged, max. ellenőrzéshez (hogy ne írjanak be érvénytelen dátumot), hiszen a MySQL elfogadja a
"YYYY-MM-DD" formátumot (ld. tiku # 15.47).
fraszt mktime
a masodik sorban pedig megcsinalja a query stringet, a mysql_real... az az sql injection elleni védelem miatt van benne (olvass utana ha nemtod mi az). A mysql datum formatuma yyyy-mm-dd de meg fogja enni az altalald hasznalt yyyy-m-d -t is.
Amugy illene ellenorizni hogy a $datum string valodi datumot tartalmaz-e, mielott beirod adatbazisba, de ez mar rad van bizva.
Erdemes lenne kicsit visszavenni ezekbol a mostanaban terjedo agressziv kommentekbol. Ha a kerdezo tenyleg annyira iritalo egyszeruen nem kell neki valaszolni :/
ld: első mondatom
Akármerre utánnanézhetsz: nem szoktam agreszivan reagálni, és ha nagyon gáz a kérdés inkább elkerülöm a témát. Lehet hogy ma nagyon rosz napom volt, vagy ma kivételesen is sok volt az űberláma kérdés, de amikor megláttam ezt a topiknyitót eldurrant az agyam. Ezért utólag elnézést kérek.
Szerintem (és itt a weblaboron sokan mások is így gondolják) ez a fórum nem arra szolgál, hogy olyanoknak oldjunk meg teljesen alapvető feladatokat, akik még arra sem veszik a fáradtságot, hogy utánna nézzenek a probléma megoldásának, de még arra is lusták, hogy a beidézett dokumentációt elolvassák.
Az általad megírt kódot, akár hiszed, akár nem, elsőre le tudtam volna írni. DE ha ilyen alapvető kérdést látok, szándékosan nem vágom rá a választ. Sokkal inkább célravezetőnek tartom inkább a rávezetést. A tapasztalat az, hogy többet tanul az ember a megoldáshoz vezető útból (az út mellett felmerülő problémákból) mint a kész megoldásból. És ha anonim kérdezőt sikerül így végigvezetni a megoldáshoz, hátha legközelebb megpróbálja az első lépéseket egyedül megtenni...
TikuVoltam
Mi van?
Egyébként ha a mktime nem arra való, hogy év, hónap és napból dátumot csináljon, akkor mire?
"Erdemes lenne kicsit visszavenni ezekbol a mostanaban terjedo agressziv kommentekbol."
Máris kezdheted.
khm...
és
yyyy-mm-dd != yyyy-m-d
a tobbi nem neked szolt csak altalanosan.
értelmezzük a részeredményeket!
[month], [day],
stb... eredményt tudod értelmezni?A felhasználó ezeket az adatokat küldte neked.
Érted már, hogy a MySQL milyen formátumban várja a dátumot? a dokumentáció szerint YYYY-MM-DD formátumban. Lefordítom: 4 számjegy (év) kötőjel 2 számjegy (ez a hónap) kötőjel 2 számjegy (nap). tehát ha a February-3-1985 dátumot 1985-02-03 formátumban kell megadni.
Ha ennyi információból nem tudod összerakni akkor nem tudok többet segítni...
TikuVoltam
Koszonom
Elnezest kerek ha kicsit sokat kerdeztem, utana neztem volna de sietnem kell, az urlap kesz kell legyen hetfore.
Ha ki szeretnem olvasni a beirt datumot mit kene csinalni ?
Peldaul ezt:
1985-02-03
valami ilyesmit ? :
Amiutan megkapom a sort mysq_fetch_array segitsegevel, fel kene bontani darabokra ?
Peldaul a honapot es a napot ugyanilyen <select> menuben szeretnem megjeleniteni de azokal az ertekekel amik adatbazisban vannak.
Koszonom !