Toon posts:

[ASP] 2 SQL statements laten werken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb 2 tabellen in mysql. Uit beide tabellen wil ik iets opzoeken. Hoe doe ik dat?

Ik heb hieronder iets geprobeerd wat het niet doet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<%

frmGebruikersnaam = request.form("Gebruikersnaam")
frmVoorstelling = request.form("Voorstelling")

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeOut=60
connectionToDatabase.Open "DSN=test"

Set recordSet=Server.CreateObject("ADODB.RecordSet")
recordSet.Open "Select * from klant where gebruikersnaam = '" & frmGebruikersnaam & "' ", connectionToDatabase
recordSet.Open "Select * from voorstelling where naam = '" & frmVoorstelling & "' ", connectionToDatabase



If frmGebruikersnaam = "" AND frmVoorstelling = "" then

    response.write ("<form action='test8.asp' method='post'>")
    response.write ("Gebruikersnaam <input type='text' name='Gebruikersnaam'>")
    response.write ("Voorstelling <input type='text' name='Voorstelling'>")
    response.write ("<input type='submit' name='submit' value='Verder ->'")
    response.write ("</form>")
else
do while not recordSet.EOF
    response.write recordSet("ID_klant")
    response.write recordSet("Naam")
    
recordSet.movenext
loop
end if

%>

Iemand enig idee wat er fout aan is????

Verwijderd

Probeer dit eens als query. De manier die jij probeert; 2 queries opgeven bij hetzelfde recordset object werkt inderdaad niet; dan vervangt ie 'm gewoon.
code:
1
2
3
4
SELECT voorstelling.ID_klant,voorstelling.Naam FROM klant,voorstelling
WHERE klant.ID=voorstelling.ID_klant
  AND klant.gebruikersnaam = ' frmGebruikersnaam '
  AND voorstelling.naam=' frmVoorstelling '

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Misschien moet je ff zoeken naar SQL pagina's die helpen super (believe me).

Verwijderd

De oplossing staat hierboven dat principe, maar gewoon ff zo dat bovenste van jou werkt niet omdat je 2 selects doet op eenzelfde recordsource in eenzelfde script, dat kan nooit werken omdat ie altijd het laatste pakt. Als je ze allebei verschillend zou doen, zou het ook niet (optimaal werken). Kan wel maar moet je veel met hidden velden gaan werken (wat ik soms wel eens doe als ik ff niet op het SQLscript kom).
Maar misschien moet je ff zoeken naar SQL pagina's die helpen super (believe me).
Goeiendag zeg! Wat een non-reply. |:( Dit heb ik al beantwoord; en zelfs een echte oplossing gegeven. Die 2 queries kunnen makkelijk in 1 gegoten worden, zoals mijn suggestie dus luidde.

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Op donderdag 07 maart 2002 14:56 schreef daxx909 het volgende:

[..]

Goeiendag zeg! Wat een non-reply. |:( Dit heb ik al beantwoord; en zelfs een echte oplossing gegeven. Die 2 queries kunnen makkelijk in 1 gegoten worden, zoals mijn suggestie dus luidde.
Foutje ja!

Had alleen ff je script door gelezen verder bericht niet gelezen, maar ik pas mijn bericht wel ff aan.

Verwijderd

Topicstarter
Op donderdag 07 maart 2002 14:41 schreef daxx909 het volgende:
Probeer dit eens als query. De manier die jij probeert; 2 queries opgeven bij hetzelfde recordset object werkt inderdaad niet; dan vervangt ie 'm gewoon.
code:
1
2
3
4
SELECT voorstelling.ID_klant,voorstelling.Naam FROM klant,voorstelling
WHERE klant.ID=voorstelling.ID_klant
  AND klant.gebruikersnaam = ' frmGebruikersnaam '
  AND voorstelling.naam=' frmVoorstelling '
thanx hij werkt :) :). De statement van jou klopt niet helemaal, het moest zijn

De code moet zijn:
code:
1
recordSet.Open "select klant.ID_klant, voorstelling.ID_voorstelling FROM klant, voorstelling WHERE gebruikersnaam= '" & frmGebruikersnaam & "' AND naam = '" & frmVoorstelling & "' ", connectionToDatabase

Maar door die reply van jou ben ik wel tot een oplossing kunnen komen.

Verwijderd

Maar door die reply van jou ben ik wel tot een oplossing kunnen komen.
/me is diep ontroerd ;)

Verwijderd

Topicstarter
Op donderdag 07 maart 2002 15:27 schreef daxx909 het volgende:

[..]

/me is diep ontroerd ;)
hahahaha :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Ik ben trouwens erg benieuwd hoe MySQL nu weet welke klant bij welke voorstelling hoort...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Inderdaad! Zo krijg je foute resultaten!!!
code:
1
2
3
4
SELECT klant.ID_klant, voorstelling.ID_voorstelling
FROM klant, voorstelling
WHERE gebruikersnaam= ' frmGebruikersnaam '
AND naam = ' frmVoorstelling '

Je hebt hier een veel-op-veel relatie: een klant kan naar meerdere voorstellingen en een voorstelling kan meerdere klanten trekken.
Je moet een regeltabel maken, bijvoorbeeld 'Voorstellingsklanten' ofzo. Hierin staat het verband tussen de klant en de voorstelling!

Die tabel ziet er zo uit:
ID_klant --> foreign key naar klant.ID_klant (zelfde datatype)
ID_voorstelling --> foreign key naar voorstelling.ID_voorstelling (zelfde datatype)
opmerkingen (bijvoorbeeld; optioneel)

De query wordt dan dus een beetje anders:
code:
1
2
3
4
5
6
SELECT klant.ID_klant, voorstelling.ID_voorstelling
FROM klant, voorstelling, voorstellingsklanten
WHERE klant.ID_klant=voorstellingsklanten.ID_klant
AND voorstelling.ID_voorstelling=voorstellingsklanten.ID_voorstelling
AND klant.gebruikersnaam= ' frmGebruikersnaam '
AND klant.naam = ' frmVoorstelling '

Verwijderd

Topicstarter
Op donderdag 07 maart 2002 15:30 schreef Janoz het volgende:
Ik ben trouwens erg benieuwd hoe MySQL nu weet welke klant bij welke voorstelling hoort...
Via een tabel reservering.

Waar een ID_klant en een ID_voorstelling in staan.

met een left join commando worden die waardes toegevoegd.

De code die ik hier gepost hebt, is een test om de ID nummers te weten te komen bij het invullen van een gebruikersnaam en een voorstelling.
Daarna is het de bedoeling om die ID nummers van de persoon en de voorstelling automatisch worden ingevuld in tabel reservering aan de hand van een gebruikersnaam en de naam van de voorstelling.

ps. Ik hoop dat het nu wat duidelijker is.
Pagina: 1