Toon posts:

[ASP,mySQL] Hoe komt die komma in mn database??

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het gaat hier om ASP en een mysql database.

Ik voeg dmv. een formulier (uitklapmenu's/input velden/checkbox) en een sql query een aantal gegevens toe aan een mysql database, bij de uitklapmenu's staan er telkens een komma en een spatie voor het gekozen item.

Ik snap niet waar ze vandaan komen...alleen in de SQL query staan komma's:

code:
1
2
3
SQLAddData = "UPDATE tabel1 SET naam = ('" & naam & "'), onderwerp = ('" & onderwerp & "'), doelgroep = ('" & doelgroep & "'), toevoegtijd = ('" & toevoegtijd & "') WHERE id = '" & id & "'"

set objAddData = cn.execute(SQLAddData)


Onderwerp en Doelgroep zijn hierbij 2 uitklapmenu's en bij beiden krijg ik een komma en spatie voor het record in de database.

Verwijderd

Als je in je database kijkt, staan ze er ook in?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:42
Debug eens, en kijk eens wat de variable naam en onderwerp, etc.... echt bevatten ?
Gebruik trouwens ook parametrized queries ipv string concatenation om je query op te bouwen.

En waarom zet je die haakjes daar ?
En is 'id' een numeriek of een alfanumeriek veld ?

[ Voor 11% gewijzigd door whoami op 19-01-2006 15:59 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ja de records worden toegevoegd, en alleen in de database zie ik die komma's, dus ook als ik de records ophaal uit de database, en dat mag niet. Ik snap echt nie thoe die komma's erin komen.

Het is dus een Komma direct gevolgd door een Spatie.

@whoami, ik zet die haakjes altijd al :) wbt. id=numeriek

[ Voor 14% gewijzigd door Verwijderd op 19-01-2006 16:03 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17-04 11:22

TeeDee

CQB 241

Print je SQL string eens uit? (i.e. response.write("SQLAddData")

Verder zou ik ook de opmerking(en) van whoami ter harte nemen. (Debuggen, parametrized queries etc.)

AddData met een update statement? Als dat zo is, zou ik ook eens naar je naamgevingen kijken.

[ Voor 41% gewijzigd door TeeDee op 19-01-2006 16:04 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Hij neemt de komma al mee vanuit het formulier zie ik, maar hoe dan. Nergens op de pagina waar het formulier staat, staat buiten een stylesheet om een komma.

@TeeDee heb net een grote wijziging gedaan in de database, (het komma probleem was er voorheen ook al) en daardoor nog niet alles goed gewijzigd.

[ Voor 33% gewijzigd door Verwijderd op 19-01-2006 16:08 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17-04 11:22

TeeDee

CQB 241

Verwijderd schreef op donderdag 19 januari 2006 @ 16:07:
Hij neemt de komma al mee vanuit het formulier zie ik, maar hoe dan. Nergens op de pagina waar het formulier staat, staat buiten een stylesheet om een komma.

@TeeDee heb net een grote wijziging gedaan in de database, (het komma probleem was er voorheen ook al) en daardoor nog niet alles goed gewijzigd.
Plaats dan eens de relevante code van je form?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:42
Verwijderd schreef op donderdag 19 januari 2006 @ 15:59:
@whoami, ik zet die haakjes altijd al :) wbt. id=numeriek
Waarom gebruik je dan ook quotes voor de waarde van het id ?

https://fgheysels.github.io/


Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<FORM ACTION="add1.asp?id=<%=rs("id")%>" METHOD="get" NAME="toevoegen">
<INPUT NAME="naam" TYPE="Text" VALUE="<%=request.querystring("naam")%>"></INPUT>

<TR>
              <TD WIDTH="10">&nbsp;<BR></TD>
              <TD ALIGN="LEFT">Bestaand onderwerp</TD>
              <TD ALIGN="CENTER" WIDTH="30">:</TD>
              <TD><SELECT NAME="Onderwerpwebsite">
<%SQLtemp2 = "SELECT DISTINCT onderwerp FROM data ORDER BY onderwerp ASC"%>
              <%set rs = cn.execute(SQLtemp2)%>
              <%Do While Not rs.EOF%>
                <OPTION VALUE ="<%=rs("onderwerp")%>"><%=rs("onderwerp")%></OPTION>
<%
rs.MoveNext
Loop
%>
</SELECT>
</TD>
</TR>
<INPUT type="submit" value="Opslaan">



In totaal heeft het formulier 4 uitklapmenu's, 2 daarvan zijn normaal. Maar bij de 2 waar de komma en spatie dus in komt, daar wordt de inhoud van opgehaald uit de database.

Het zit gewoon zo:
Men kan een onderwerp selecteren vanuit het uitklapmenu OF je kan zelf een onderwerp toevoegen. Hier gaat het ergens fout denk ik. Het ophalen vanuit de database werkt gewoon overigens.

[ Voor 74% gewijzigd door Verwijderd op 19-01-2006 16:16 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17-04 11:22

TeeDee

CQB 241

En de output van je SQLAddData?
En de code die je Form waardes verwerkt?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:42
Heb je nu al eens gedebugged ? Je insert-query naar het scherm afgedrukt voor je hem uitvoert, zodanig dat je ziet wat er in die variablen staat, etc... ?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op donderdag 19 januari 2006 @ 16:19:
Heb je nu al eens gedebugged ? Je insert-query naar het scherm afgedrukt voor je hem uitvoert, zodanig dat je ziet wat er in die variablen staat, etc... ?
code:
1
UPDATE data SET naam = ('sdfsdf'), onderwerp = (', Testtest'), doelgroep = (', TESTdoelgroep'), gemiddeld = ('25.000-50.000'), toevoegdatum = ('19-1-2006'), toevoegtijd = ('16:24:34') WHERE id = 23

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17-04 11:22

TeeDee

CQB 241

Verwijderd schreef op donderdag 19 januari 2006 @ 16:26:
[...]


code:
1
UPDATE data SET naam = ('sdfsdf'), onderwerp = (', Testtest'), doelgroep = (', TESTdoelgroep'), gemiddeld = ('25.000-50.000'), toevoegdatum = ('19-1-2006'), toevoegtijd = ('16:24:34') WHERE id = 23
En nu de code die je form waardes inleest?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 01:08
UPDATE data SET naam = ('sdfsdf'), onderwerp = (', Testtest'), doelgroep = (', TESTdoelgroep'), gemiddeld = ('25.000-50.000'), toevoegdatum = ('19-1-2006'), toevoegtijd = ('16:24:34') WHERE id = 23

Edit: hmm, dikgedrukte komma's zie je nog steeds niet zo goed...

[ Voor 68% gewijzigd door sig69 op 19-01-2006 16:31 ]

Roomba E5 te koop


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:02

Creepy

Tactical Espionage Splatterer

De komma's staan dus al in de update query. Nu nog ff zoeken waar die query wordt gegenereerd en de variabelen gevuld en je weet waar de komma's vandaan komen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
code:
1
?Naam=sdfsdf&Onderwerp=&Onderwerp=Testtest&Doelgroep=&Doelgroep=TESTdoelgroep&id=23&gemiddeld=25.000-50.000


Kut ik zie het al!!

Verwijderd

Topicstarter
In het formulier gebruik ik voor het input veld en het uitklapmenu van het onderwerp en de doelgroep dezelfde NAME=""

Dus nu geeft het form onderwerp 2x mee, en wordt er dus 1 lege waarde ", " en 1 gevulde waarde in de database geplaatst: ", lsaldjasld".

Tjah..foutje :)

Zonder jullie was ik er waarschijlijk nooit achter gekomen!
Bedankt!
Pagina: 1