Autor | Zpráva | ||
---|---|---|---|
mackopu Profil |
#1 · Zasláno: 11. 9. 2006, 09:35:14
Z databáze vybírám rodná čísla a pomocí vlastní fce zjišťuji aktuální věk registrovaných. Věky pak ukládám do pole veky, ze kterého následně pomocí fce max() zjistím ten nejvyšší.
$dotaz = mysql_query("SELECT rodne_cislo FROM registrace'"); Potřeboval bych ale k onomu nejvyššímu věku přiřadit i rodné číslo, ze kterého se věk vypočetl. (Pak např. mohu z databáze zjistit jméno a příjmení nejstaršího registrovaného.) Napadlo mě, že by to šlo provést přiřazováním hodnot (věků) klíčům (rodným číslům). Výstup by tedy mohl vypadat následovně: $nejstarsi = max($veky); Netuším jak na to; poradíte? |
||
gaminn Profil * |
#2 · Zasláno: 11. 9. 2006, 10:16:41
Snad tam nemám nikde chybu. A připomínám, že pole s věky a pole s rodnými čísly musí být číslovány stejně. |
||
gaminn Profil * |
#3 · Zasláno: 11. 9. 2006, 10:17:53
$nejstarsiRC = $rodnaCisla[array_search($nejstarsiVek, $veky)]; |
||
malek Profil |
#4 · Zasláno: 11. 9. 2006, 10:19:30
Potřeboval bych ale k onomu nejvyššímu věku přiřadit i rodné číslo,
nerozumiem, ved stoho rodneho cisla si to vypocital, kam ho chces priradit? $zaznam["rodne_cislo"] a $zaznam["vek"] a co stym chces? :D |
||
mackopu Profil |
#5 · Zasláno: 11. 9. 2006, 11:21:05
gaminn - To je přesně ono! A jde tak zjistit i nejmladší pomocí fce min(). Díky moc!
|
||
taui Profil * |
#6 · Zasláno: 11. 9. 2006, 19:56:59
a co takhle pouzit dotaz podobny tomuto, pokud to mas v jedne tabulce tak: SELECT rodne_cislo,vek FROM registrace WHERE MAX(vek)
pokud mas vek v jine tabulce tak treba:SELECT a.rodne_cislo,b.vek FROM registrace AS a, uzivatel AS b WHERE b.rodne_cislo=a.rodne_cislo AND MAX(b.vek); preber si to :D |
||
mackopu Profil |
#7 · Zasláno: 12. 9. 2006, 08:21:59
taui - Věky v tabulce nejsou. Musejí se pomocí spešl funkce UrciVek() vypočítat pro každý řádek zvlášť. A o to právě šlo. Dalo by se to samozřejmě řešit dočasnou tabulkou např. vypoctene_veky, do které by se zapsala rodná čísla a věk a následně použít tvůj dotaz, ale pomocí pole mi to přijde přímočařejší.
|
||
rabbit Profil |
#8 · Zasláno: 12. 9. 2006, 12:35:25
gaminnovo řešení je po technické stránce určitě správné, osobně bych to ale řešil jedním asociativním polem (r. č. jako klíč, věk jako hodnota):
while ($zaznam = mysql_fetch_array($dotaz)) { Nevýhodou dvou nezávislých polí je, že po x-té úpravě x-set řádkového skriptu můžete někde v jeho průběhu zapomenout úpravu jednoho z nich (např. funkcí array_shift). Chyby se pak špatně hledají. |
||
gaminn Profil * |
#9 · Zasláno: 12. 9. 2006, 12:45:36
rabbit
Jj, tohle je lepší;) |
||
tiso Profil |
#10 · Zasláno: 12. 9. 2006, 13:31:47
mackopu
To je problém vypočítať ten vek až z vybratej hodnoty? Formát rodného čísla je totiž taký že usporiadanie podľa čísla zostupne dáva rovno najstaršieho človeka navrch, problém je len so zoradením muži/ženy, treba ich brať zvlášť... |
||
mackopu Profil |
#11 · Zasláno: 12. 9. 2006, 13:36:05
tiso
Zajímavé... To by stálo za pokus |
||
zivan Profil |
#12 · Zasláno: 13. 9. 2006, 17:00:55
Jasne rodna cisla jsou uz samy o sobe srovnatelna podle veku, pokud se hleda nejvetsi nebo nejmensi, tak bych upravil SELECT tak, abych dostal rovnou vysledek. Bude to vzdy rychlejsi nez vzit pole a to potom prochazet.
Problem s pohlavim jde jednoduse vyresit podminkou LIKE. Napr. pro vyber pouze zenskych RC staci zadat SELECT rocne_cislo FROM registrace WHERE rodne_cislo LIKE '__5%' OR '__6%' . Nejsem si uplne jist syntaxi, ale myslenka je snad jasna. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0