Om jag har ex så här
<select name="alder">
<option value="18-25">
<option value="26-32">
<option value="33-40">
</select>
Hur utformar man sql-satsen för att hitta personer mellan dessa åldrar, har en kolumn med personummer för åldersberäkning
11 svar · 338 visningar · startad av WebbisNet
Om jag har ex så här
<select name="alder">
<option value="18-25">
<option value="26-32">
<option value="33-40">
</select>
Hur utformar man sql-satsen för att hitta personer mellan dessa åldrar, har en kolumn med personummer för åldersberäkning
En annan fråga med
När man väljer nåt i en select, hut får man värdet man valde att stanna kvar efter sökningen?
Villkoret skulle kunna vara:
where age > 17 and age < 26 och så vidare. Resten kan du säkert fundera ut själv. :)
UlfT skrev:
Villkoret skulle kunna vara:
where age > 17 and age < 26 och så vidare. Resten kan du säkert fundera ut själv. :)
Har du nåt svar på mitt andra problem med?
Nej, jag förstår inte frågan.
jag har inte en susning om hur man skriver och detta är iaf INTE rätt
<select name="selAge" class="textbox">
<option value="18-28">18-28</option>
<option value="29-39">29-39</option>
<option value="40-50">40-50</option>
<option value="51-62">51-62</option>
<option value="63-70">63-70</option>
</select>
<%set alderRS=objConn.Execute("select persnr from tblUsers")
varAlder=alder(alderRS("persnr"))
set RS = objConn.Execute("Select * From tblUsers where persnr="& varAlder&" between 18 and 28 order by vip = 1 desc")%>
Nån som vet hur man gör?
SELECT
(YEAR(CURDATE())-LEFT(persnr,4) - (RIGHT(CURDATE(),5)<SUBSTRING(persnr,6,2)-SUBSTRING(persnr,8,2))) AS age
FROM
tblUsers
WHERE
age > 17 AND age < 26
Funkar nog inte, men om du någon kan visa hur man gör
SUBSTRING(persnr,6,2)-SUBSTRING(persnr,8,2)
Så det räknas som ex. 02-14 så bör det funka.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]Unknown column 'age' in 'where clause'
/search/Default.asp, line 360
med den här satsen
set RS = objConn.Execute("SELECT (YEAR(CURDATE())-LEFT(persnr,4) - (RIGHT(CURDATE(),5)<SUBSTRING(persnr,6,2)-SUBSTRING(persnr,8,2))) AS age FROM tblUsers WHERE age > 17 AND age < 26 order by vip = 1 desc")
och om man får detta att funka, hur bygger man ut med fler åldersintervaller???
Enklast är nog om du kör
SELECT
(YEAR(CURDATE())-LEFT(persnr,4)) - (RIGHT(CURDATE(),5)<SUBSTRING(persnr,6,2)-SUBSTRING(persnr,8,2)) AS age
FROM
tblUsers
Och hämtar age genom ett recordset och kollar såhär
<select name="selAge" class="textbox">
<option value="18-28"<% if row("age") >= 18 AND row("age") <= 28 then response.write " selected=""selected""" end if %>>18-28</option>
osv...
</select>
Nu var det flera år sedan jag ens kollade på en ASP-kod, så det är inte alls säkert jag har skrivit rätt. :)
Melea skrev:
Enklast är nog om du kör
SELECT (YEAR(CURDATE())-LEFT(persnr,4)) - (RIGHT(CURDATE(),5)<SUBSTRING(persnr,6,2)-SUBSTRING(persnr,8,2)) AS age FROM tblUsersOch hämtar age genom ett recordset och kollar såhär
<select name="selAge" class="textbox"> <option value="18-28"<% if row("age") >= 18 AND row("age") <= 28 then response.write " selected=""selected""" end if %>>18-28</option> osv... </select>Nu var det flera år sedan jag ens kollade på en ASP-kod, så det är inte alls säkert jag har skrivit rätt. :)
Får tyvärr inte ut något resultat :-)
Som sagt, vi får vänta till någon mer kunnig kommer hit och hjälper till, jag har bara gett förslag på hur det skulle kunna gå att bygga upp. Inte alls säkert att SQL-frågan jag skrev funkar. :)
Detta ska funka, men hur kopplar jag mitt rs till selecten så att jag får ut resultat?
<%set RS = objConn.Execute("SELECT ROUND((TO_DAYS(CURDATE()) - TO_DAYS(persnr))/365.25) AS Age FROM tblUsers order by vip = 1 desc")%>
<select name="selAge" class="textbox">
<option value="18-28">18-28</option>
<option value="29-39">29-39</option>
<option value="40-50">40-50</option>
<option value="51-62">51-62</option>
<option value="63-70">63-70</option>
</select>