webForumDet fria alternativet

Inte skriva ut vissa? (sql)

24 svar · 741 visningar · startad av Lorelie

LorelieMedlem sedan juni 2005264 inlägg
#1

http://www.aramennoc.se/databas/aramennocindex.html (klicka på databas, väl svenska i nummerordning, välj sto och klicka på sök)

Jag vill inte ha med de två första, utan bara dem med RC och ett nummer. Hur gör jag det i SQL-satsen?

SQL-satsen

Raderna i tabellen heter (värdet)
ras ( connemara)
stamboks_nr (nummret, dock inte ifyllt på SCR-hästarna)

jag vill alltså att den bara ska skriva ut rader där stamboks_nr är ifyllt. Alla är av rasen connemara

LarsGMedlem sedan dec. 200012 464 inlägg
#2
...
where stamboks_nr is not null
...

Flyttas från ASP

LorelieMedlem sedan juni 2005264 inlägg
#3

LarsG skrev:

...
where stamboks_nr is not null
...

Flyttas från ASP

Fungerar inte...

@ndersMedlem sedan juni 200032 969 inlägg
#4

På vilket sätt? Felmeddelande? Är fältet NULL eller innehåller det en tom sträng?

LorelieMedlem sedan juni 2005264 inlägg
#5

@nders skrev:

På vilket sätt? Felmeddelande? Är fältet NULL eller innehåller det en tom sträng?

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: 4 Native Error Code: 1064 [TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE stamboks_nr is not null AND namn like '' AND na
/databas/connemara_hittat6.asp, line 30

Det är Null

@ndersMedlem sedan juni 200032 969 inlägg
#6

Skriv ut den färdiga SQL-frågan och posta här.

LorelieMedlem sedan juni 2005264 inlägg
#7

@nders skrev:

Skriv ut den färdiga SQL-frågan och posta här.

Vad är färdig SQL-fråga? :OO :r

@ndersMedlem sedan juni 200032 969 inlägg
#8

Så som den ser ut när asp-tolken har processerat strängen som innehåller frågan.

Bäst att länka till en annan av dina trådar: http://www.webforum.nu/showthread.php?p=1183325#post1183325

LorelieMedlem sedan juni 2005264 inlägg
#9

:r
QUOTE=@nders]Så som den ser ut när asp-tolken har processerat strängen som innehåller frågan.

Bäst att länka till en annan av dina trådar: http://www.webforum.nu/showthread.php?p=1183325#post1183325

Hrm... har ingen response.write, så här kommer hela sidan :OO


SQL = 	"SELECT 	namn,		" & _
	"	hast_id,		" & _
	"	bild_url		" & _
	"	FROM 	hast 	" & _
	"	WHERE 	kon	=	'"& Request.Form("kon")&"' 	" & _
	"	AND 	namn 	like 	'" & Request.Form("hast")&"%'" & _
	"	AND 	namn	<>	'e'	" & _
	"	AND	namn	<>	'u'	" & _
	"	AND 	ras		=  'Connemara'	" & _
	"	ORDER BY stamboks_nr	"

rs.Open SQL, MinCon
%>

<SPAN CLASS="normal">
<STRONG>
Hittade hästar:
</STRONG>
<BR>
<BR>
<p align="right">
<%
Do While Not rs.EOF
%>
<%
IF (rs("bild_url"))<>"" THEN %><img src="arrow.gif" alt="Bild finns" border=0>
<%
END IF %>
<A HREF = hast.asp?hast_id=<%=rs("hast_id")%>><%=rs("namn")%></A>

<BR>

<%
rs.MoveNext
Loop
%>
</p></SPAN>
@ndersMedlem sedan juni 200032 969 inlägg
#10

Hrm... har ingen response.write

Då får du lägga till det.

LorelieMedlem sedan juni 2005264 inlägg
#11

@nders skrev:

Hrm... har ingen response.write

Då får du lägga till det.

Får man fråga varför? Det fungerar ju ändå :q
dvs innan jag försöker få den att inte ta med sånna som inte har ifyllt stamboksnummer... det jag klistrat in här saknar den raden.

@ndersMedlem sedan juni 200032 969 inlägg
#12

Anledningen till att du ska lägga till det är inte att något ska fungera bättre, utan att vi ska få se hur SQL-frågan ser ut när den skickas till databasen. Det är det enda väsentliga. Eftersom det är omöjligt för oss att veta vad dina ASP-variabler innehåller när SQL-frågan ska exekveras så är ett enkelt sätt att just skriva ut SQL-frågan.
Vill du inte bli hjälpt?

Får man fråga varför? Det fungerar ju ändå

Va? Du sa ju att SQL-frågan inte fungerar? Du postade ju till och med ett felmeddelande?
hur ska vi kunna berätta för dig vad som är fel på SQL-frågan om du inte vill visa hur den kompletta SQL-frågan ser ut?

Om du inte visar den fullständiga SQL-frågan får du ingen hjälp, eller så tar hjälpen onödigt lång tid, med onödiga irritationsmoment. Så enkelt är det.

LorelieMedlem sedan juni 2005264 inlägg
#13

@nders skrev:

Anledningen till att du ska lägga till det är inte att något ska fungera bättre, utan att vi ska få se hur SQL-frågan ser ut när den skickas till databasen. Det är det enda väsentliga. Eftersom det är omöjligt för oss att veta vad dina ASP-variabler innehåller när SQL-frågan ska exekveras så är ett enkelt sätt att just skriva ut SQL-frågan.
Vill du inte bli hjälpt?

Får man fråga varför? Det fungerar ju ändå

Va? Du sa ju att SQL-frågan inte fungerar? Du postade ju till och med ett felmeddelande?
hur ska vi kunna berätta för dig vad som är fel på SQL-frågan om du inte vill visa hur den kompletta SQL-frågan ser ut?

Om du inte visar den fullständiga SQL-frågan får du ingen hjälp, eller så tar hjälpen onödigt lång tid, med onödiga irritationsmoment. Så enkelt är det.

Nu tar vi det från början...

Jag ska alltså lägga ut
Response.write SQL
Response.End

var?
Vad får jag ut av det?

Du får ursäkta mig men jag kan inte så mycket, och frågar för att jag inte får till det själv.

Åter till
Response.write SQL
Response.End

Slängde in det i koden och la till where stamboks_nr is not null, felmeddelandet blir

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: 4 Native Error Code: 1064 [TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE stamboks_nr is not null AND namn like '%' AN
/databas/connemara_hittat6.asp, line 30

@ndersMedlem sedan juni 200032 969 inlägg
#14

var?

Som jag skrev i den andra tråden som jag länkade till; precis ovanför eller istället för exekveringen av SQL-frågan (dvs precis före skapandet av recordsetet.)
Du kan lägga det precis när du är färdig med SQL-frågan. Denna kod är alltså enbart för att göra det lättare att felsöka. När SQL-frågan sedan fungerar så ska den inte vara där.

Vad får jag ut av det?

Du får se den färdiga SQL-frågan, den som databasen får skickad till sig. Det gör att det är mycket lättare att debugga/felsöka, när du slipper gissa variablers värden, etc.
Denna SQL-variabel i ASP:

SQL = "SELECT * FROM " & tabell & " WHERE något = '" & strNågot & "'"

Ser ut något sånt här när den kommer fram till databasen:

SELECT * FROM dittochdatttabellen WHERE något = 'inget'

. Det är denna skillnad man måste förstå, och det är den senare utskriften du får till webbläsaren, som hjälper dig att debugga.
Om den utskriften skulle råka se ut så här:

SELECT * FROM  WHERE något = 'inget'

, ser du att "hoppsan, här finns inget tabellnamn mellan FROM och WHERE. Då är det bäst att felsöka varför asp-variabeln tabell inte innehåller något."

Slängde in det i koden

Var då? Inte före exekveringen i alla fall, för då skulle inte felmeddelandet ha kommit.

LorelieMedlem sedan juni 2005264 inlägg
#15

SELECT namn, hast_id, bild_url FROM hast WHERE kon = 'Sto' WHERE stamboks_nr is not null AND namn like '%' AND namn <> 'e' AND namn <> 'u' AND ras = 'Connemara' ORDER BY stamboks_nr

Står utskrivet på sidan nu, är det meningen?

@nders skrev:

Slängde in det i koden

Var då? Inte före exekveringen i alla fall, för då skulle inte felmeddelandet ha kommit.

under den gamla where i sql-satsen

@ndersMedlem sedan juni 200032 969 inlägg
#16

Lorelie skrev:

Står utskrivet på sidan nu, är det meningen?

Det är precis det som är meningen! :)

Nu ser vi vad databasmotorn ser, och då är det lättare för oss att förstå vad som ger felmeddelandet.

Som du kan se nu, så har du två stycken WHERE i din SQL-fråga. Du skall ha ett. Byt det andra mot AND.

LorelieMedlem sedan juni 2005264 inlägg
#17

@nders skrev:

Det är precis det som är meningen! :)

Nu ser vi vad databasmotorn ser, och då är det lättare för oss att förstå vad som ger felmeddelandet.

Som du kan se nu, så har du två stycken WHERE i din SQL-fråga. Du skall ha ett. Byt det andra mot AND.

Får försöka komma ihåg det till nästa gång :birp

Vad är det nu som inte stämmer? När jag bytt where mot and

@ndersMedlem sedan juni 200032 969 inlägg
#18

Vad är det nu som inte stämmer? När jag bytt where mot and

Du kanske har kvar Response.write + Response.end i koden? Response.end gör ju så att ingen kod efter på sidan exekveras. Så ta bort de raderna (eller åtminstone response.end) och prova igen. Felmeddelande?

LorelieMedlem sedan juni 2005264 inlägg
#19

@nders skrev:

Vad är det nu som inte stämmer? När jag bytt where mot and

Du kanske har kvar Response.write + Response.end i koden? Response.end gör ju så att ingen kod efter på sidan exekveras. Så ta bort de raderna (eller åtminstone response.end) och prova igen. Felmeddelande?

Ojdå :OO

Det blir inget felmeddelande, men den skriver inte ut några hästar alls

@ndersMedlem sedan juni 200032 969 inlägg
#20

Och du har inte Response.End kvar i koden?

142 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)