PDA

Bekijk Volledige Versie : direct willekeurig lezen uit database



gandert
07/04/07, 12:55
Ik heb reeds een klein asp.net website gemaakt.

Reeds gemaakte site:
-eerts heb je een keuzelijst uit verschillende landen
belgie, duitsland, frankrijk, nederland, praag
-Als je op 1 klikt ga je naar een pagina met daarop enkel de linken van steden van dit land

-Als je op Een stad klikt dan haalt hij de info over die stad uit een database en toont hij die.

Wat ik nu erbij wil:
-Als je op een land klikt dan zie je de linken van alle steden van dit land, maar ik zou ook willen dat hij direct 1 stad toont i.p.v op een lege pagina terecht te komen en enkel maar de linken die worden weer gegeven van de steden (want dit is een beetje kaal)

Ik werk met visual studio 2005 en met MS Acces database

Ik hoop dat julie mij begrijpen

mvg
Gandert

Ramon Fincken
07/04/07, 14:54
met mysql kan dit zo:


SELECT * FROM tablename ORDER BY RAND() LIMIT 1

de RAND() doet zijn werk om random iets aan te wijzen, uiteraard kun je er nog iets met een WHERE bijdoen voor het land in jouw geval ..

( ik weet niet of dit met niet-mysql ook zo werkt .. )

crazycoder
07/04/07, 15:21
Ik heb reeds een klein asp.net website gemaakt.

Reeds gemaakte site:
-eerts heb je een keuzelijst uit verschillende landen
belgie, duitsland, frankrijk, nederland, praag
-Als je op 1 klikt ga je naar een pagina met daarop enkel de linken van steden van dit land

-Als je op Een stad klikt dan haalt hij de info over die stad uit een database en toont hij die.

Wat ik nu erbij wil:
-Als je op een land klikt dan zie je de linken van alle steden van dit land, maar ik zou ook willen dat hij direct 1 stad toont i.p.v op een lege pagina terecht te komen en enkel maar de linken die worden weer gegeven van de steden (want dit is een beetje kaal)

Ik werk met visual studio 2005 en met MS Acces database

Ik hoop dat julie mij begrijpen

mvg
Gandert
Na eerdere postings is al eens de suggestie gedaan om jezelf eerst in sql te verdiepen. Jammer dat je dat niet heb gedaan.

O ja, dit kan je ook via google oplossen:
select random .net mssql
of met msaccess ipv mssql

Eenvoudigste oplossing is om top 1 in je query te gooien.. dan heb je altijd data en is het voor jezelf simpel. Gebruik van top is al in een eerder door jou gestart topic genoemd.....

gjtje
07/04/07, 17:52
Als je dropdownlist.SelectedIndex = 0 doet on Page_Load wordt volgens mij meteen de SelectedIndexChanged handler uitgevoerd.

Dennie-DeTi
07/04/07, 21:30
In SQL server (dus denk ook ms access) is het

SELECT * FROM table ORDER BY NEWID()

Maar wat je volgens mij bedoelt is dat je standaard de eerste stad ook toont? Dan is de selectedIndex = 0 een goede oplossing.

- Dennie

gandert
08/04/07, 14:32
Geen enkel van de opgenoemde zaken werkt.

Ik denk dat ik weet waarom het niet werkt:

-Als je op een land klikt in het begin ga je naar URL/informatie.aspx?land=belgie
Zo haalt hij dan alle steden van belgie uit de database

-Als je dan op een stad klikt gaat hij naar URL/informatie.aspx?land=belgie&id=torhout
Zo haalt hij de stad van belgie uit de database

Ik kan geen enkel van de codes die hier vermeld waren door julie toevoegen omdat het waarschijnlijk in conflict comt met de WHERE aktie


SelectCommand="SELECT * FROM [steden] WHERE ([Id] = ?)">

Wat ik dus wil is dat je op een land klikt in het begin dat hij direct naar
URL/informatie.aspx?land=belgie&id=torhout
i.p.v URL/informatie.aspx?land=belgie

dus als je op belgie klikt dan moet hij direct een stad van belgie openen

Ik denk dat dit wel mogelijk is en hoop dat julie dit weten

Alsinds bedankt

Ramon Fincken
08/04/07, 14:52
mmz raar, maareu... als je toch nog bezig bent met de opbouw, waarom maak je het id niet numeriek? Daar kun je fijne checks op gooien en als je plaats ( turnhout ) nog wilt noemen maar er niets mee wilt doen waarom niet ?
( kun je ook fijn voor mod rewrite gebruiken :) )

update:

sterker nog...
als je met numerieke Id's werkt... en je komt er niet uit hoe t random moet ..

doe dan een select met alle Id's voor je land, stop in array, pak random een eruit en lees die volledig uit :)

crazycoder
08/04/07, 15:05
@ramon
ts is een beginner. Denk dat je het niet te lastig moet maken :)

Denk dat een id altijd een id moet zijn en geen plaats.. dus land=&plaats=

Als plaats leeg is dan selecteer je met newid() een plaats. Dat kan door de query aan te passen en iets als "and land=" toe te voegen.

gandert
08/04/07, 15:33
@ramon
ts is een beginner. Denk dat je het niet te lastig moet maken :)

Denk dat een id altijd een id moet zijn en geen plaats.. dus land=&plaats=

Als plaats leeg is dan selecteer je met newid() een plaats. Dat kan door de query aan te passen en iets als "and land=" toe te voegen.

klinkt ingewikkeld (wel professioneel denk ik) maar zal het vanavond even proberen.

thnx

Het wil me maar niet lukken.

Ik begin heelemaal door te draaien van asp.net ->|

Hieronder heb ik de code geplaatst, diegene die even wil zeggen waar ik die newid() moet plaatsen en hoe ik de query moet maken zou ik heel dankbaar zijn.



<asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/worldcitytrips.mdb"
SelectCommand="SELECT * FROM [steden] WHERE ([plaats] = ?)">
<SelectParameters>
<asp:QueryStringParameter Name="plaats" QueryStringField="plaats" Type="String" />
</SelectParameters>
</asp:AccessDataSource>
<asp:DataList ID="DataList2" runat="server" DataKeyField="plaats" DataSourceID="AccessDataSource2" RepeatDirection="Horizontal">
<ItemTemplate>

<asp:Label ID="plaatsLabel" runat="server" Text='<%# Eval("plaats") %>'></asp:Label><br />

<asp:Label ID="landLabel" runat="server" Text='<%# Eval("land") %>'></asp:Label><br /><br />

<asp:Label ID="beschrijvingLabel" runat="server" >
<%# Eval("beschrijving") %>
</asp:Label><br /><br />

<asp:Label ID="afbeeldingLabel" runat="server" >
<a href="<%# Eval("afbeelding") %>.jpg" target="_blank"><img src="<%# Eval("afbeelding") %>.jpg" width="200" /></a>
</asp:Label><br /><br />

</ItemTemplate>
</asp:DataList>

mvg