DanneStMedlem sedan feb. 20041 311 inlägg
Zaiman skrev:
Du behöver inte tömma fältet innan du gör en UPDATE, UPDATE ersätter det som redan finns där.
Ok, det greppar jag.
Zaiman skrev:
"UPDATE tabellensnamn SET konsult = 'värdeförkonsult' WHERE unikt_id = 1"
Ok, greppar syntaxen åxå, men jag greppar inte hur jag ska skriva ihop koden för att få det att funka. Emissions förslag:
emission skrev:
SQL="UPDATE start SET konsult='" & Replace(Request.Form("konsult"),"'","\'") & "' WHERE något villkor är uppfyllt....."
får jag inte att funka. Dels får jag felmeddelandet att tabellen "konsult" inte finns ("Table 'adeator_se.konsult' doesn't exist), vilket får mig att tro att syntaxen är felskriven, och dels så vet jag inte vad jag ska skriva för WHERE-villkor? Fattar inte vad du menar med "unikt-id=1", måste man skicka med nåt sånt? Måste tabellen ha en primärnyckel att referera till? :q
EemissionMedlem sedan dec. 19996 721 inlägg
DanneSt skrev:
Måste tabellen ha en primärnyckel att referera till? :q
Nej, men det finns väl (kommer väl att finnas) mer än en rad i tabellen och då måste det på något sätt anges vilken eller vilka som ska uppdateras.l
ZaimanMedlem sedan dec. 20014 239 inläggTabellen måste inte ha en primärnyckel men det underlättar för dig. Det är mot den unika nyckeln som du sätter din WHERE sats (det jag refererar till som unikt_id).
Prova innan du du gör en execute på SQL satsen att skriva ut den på skärmen, då kan du kontrollera att syntaxen är korrekt. Det jag kan tänka mig är att din Replace inte fungerar mot det du skickar in och orsakar något syntaxfel i SQL.
Skriv ut SQL satsen och posta resultatet här så kan vi lättare se vad som är fel.
DanneStMedlem sedan feb. 20041 311 inlägg
emission skrev:
Nej, men det finns väl (kommer väl att finnas) mer än en rad i tabellen och då måste det på något sätt anges vilken eller vilka som ska uppdateras.l
Nop. Varje fält motsvarar en text som ska skrivas ut på given plats på en webbsida. Det jag försöker få att funka nu är ett enkelt admingränssnitt som webbägare sedan ska kunna göra enklare textändringar.
Så det kommer bara att finnas en rad i denna tabell som innehåller ett antal (f.n. 8) fält.
DanneStMedlem sedan feb. 20041 311 inlägg
Zaiman skrev:
Tabellen måste inte ha en primärnyckel men det underlättar för dig. Det är mot den unika nyckeln som du sätter din WHERE sats (det jag refererar till som unikt_id).
Prova innan du du gör en execute på SQL satsen att skriva ut den på skärmen, då kan du kontrollera att syntaxen är korrekt. Det jag kan tänka mig är att din Replace inte fungerar mot det du skickar in och orsakar något syntaxfel i SQL.
Skriv ut SQL satsen och posta resultatet här så kan vi lättare se vad som är fel.
Hmmm, skriva ut SQL-satsen säger du... Typ: Response.Write(SQL)? Kom ihåg trådrubrikens första ord - Noob! ;)
EemissionMedlem sedan dec. 19996 721 inlägg
DanneSt skrev:
Nop. Varje fält motsvarar en text som ska skrivas ut på given plats på en webbsida. Det jag försöker få att funka nu är ett enkelt admingränssnitt som webbägare sedan ska kunna göra enklare textändringar.
Så det kommer bara att finnas en rad i denna tabell som innehåller ett antal (f.n. 8) fält.
Oj då, det var värst. Du kan skippa WHERE-satsen i så fall.
ZaimanMedlem sedan dec. 20014 239 inläggPrecis Response.Write(SQL) visa oss resultatet.
DanneStMedlem sedan feb. 20041 311 inlägg
emission skrev:
Oj då, det var värst.
Eehh, känner helt plötsligt på mig att det finns smartare sätt att använda en databas... ;)
DanneStMedlem sedan feb. 20041 311 inlägg
Zaiman skrev:
Precis Response.Write(SQL) visa oss resultatet.
Okidok!
Error Type:
ADODB.Connection.1 (0x80004005)
SQLState: 37000 Native Error Code: 1064 [MySQL][ODBC 3.51 Driver][mysqld-4.1.11-Debian_4sarge7-log]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 ''' at line 1
/test/ny_konsultverksamhet.asp, line 7
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=adeator_se;UID=xxx;PWD=xxx"
SQL="UPDATE start SET konsult='" & Replace(Request.Form("konsult"),"'","\'")
Response.Write(SQL) [B][blue]<--- Rad 7[/blue][/B]
Conn.Execute SQL
conn.close
SQL="UPDATE start SET konsult='" & Replace(Request.Form("konsult"),"'","\'") & "'"
Du glömmer avsluta strängen... rad 7 måste nästan vara Conn.Execute ...
Ta response.End efter Response.Write
ZaimanMedlem sedan dec. 20014 239 inläggSQL="UPDATE start SET konsult='" & Replace(Request.Form("konsult"),"'","\'") & "'"
DanneStMedlem sedan feb. 20041 311 inlägg
voigtann1 skrev:
SQL="UPDATE start SET konsult='" & Replace(Request.Form("konsult"),"'","\'") & "'"
Du glömmer avsluta strängen... rad 7 måste nästan vara Conn.Execute ...
Ta response.End efter Response.Write
Ok, när jag nu lagt till & "'" samt ett Response.End så får jag en blank sida med texten
UPDATE start SET konsult=''
Så här ser det ut nu:
SQL="UPDATE start SET konsult='" & Replace(Request.Form("konsult"),"'","\'")& "'"
Response.Write(SQL)
response.End
Conn.Execute SQL
conn.close
ZaimanMedlem sedan dec. 20014 239 inläggSå med andra ord kommer det ingenting i Request.Form("konsult").
Finns fältet konsult på den sida som skickar till din .asp sida?
DanneStMedlem sedan feb. 20041 311 inlägg
Zaiman skrev:
Så med andra ord kommer det ingenting i Request.Form("konsult").
Finns fältet konsult på den sida som skickar till din .asp sida?
Öhhh....jaa, tror det?
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=adeator_se;UID=xxx;PWD=xxx"
sql = "SELECT * From start"
set rs = Conn.Execute(sql)
%>
<html>
<head>
<title>Kontrollpanelen</title>
<link rel="stylesheet" href="mallar.css">
</head>
<body onLoad="form1.losen.focus();">
<table border="1" width="320" bgcolor="#FFFFFF" style="border-collapse: collapse" bordercolor="#0000FF">
<tr>
<td background="images/login.gif" height="60">
<form name="form1" method="post" action="kontrollpanelen.asp">
Lösenord:
<input type="password" name="losen" size="14">
<input type="submit" name="Submit" value="Ok">
</form>
</td>
</tr>
<br />
</table>
<br />
<% if request.form("losen") = "xxx" then
session("uppdat") = "1"
end if%>
<% if session("uppdat") = "1" then %>
<h1>Uppdatering</h1>
<br />
<form name="form2">
Här uppdaterar man texten i de olika avdelningarna.
<select onChange="self.location.href=this.options[this.selectedIndex].value;">
<option value="">-- Välj avdelning --</option>
<option value="kontrollpanelen.asp?AVD=Start">- Index</option>
<option value="kontrollpanelen.asp?AVD=OmAdeator">- Om Adeator</option>
<option value="kontrollpanelen.asp?AVD=Rekrytering">- Rekrytering</option>
<option value="kontrollpanelen.asp?AVD=Utbildning">- Utbildning</option>
<option value="kontrollpanelen.asp?AVD=Konsultverksamhet">- Konsultverksamhet</option>
<option value="kontrollpanelen.asp?AVD=Partners">- Partners</option>
<option value="kontrollpanelen.asp?AVD=Natverk">- Nätverk</option>
<option value="kontrollpanelen.asp?AVD=Kunder">- Kunder</option>
<option value="kontrollpanelen.asp?AVD=Kontakt">- Kontakt</option>
</select>
<a href="help.asp" target="_blank"><img border="0" src="images/question.gif" width="16" height="16"></a>
</form>
<br />
<% Select Case Request.Querystring("AVD")
case "Start"%>
<form method="post" action="ny_start.asp">
<h3>Index:</h3>
<textarea cols=50 rows=8 name="start"><%=Replace (rs("start"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera">
<input type="reset" value="Rensa">
</form>
<% case "OmAdeator"%>
<form method="post" action="ny_omadeator.asp">
<h3>Om Adeator:</h3>
<textarea cols=50 rows=8 name="omadeator"><%=Replace (rs("omadeator"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% case "Rekrytering"%>
<h3>Rekrytering:</h3>
<form method="post" action="ny_rekrytering.asp">
<textarea cols=50 rows=8 name="Rekrytering"><%=Replace (rs("rekryt"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% case "Utbildning" %>
<form method="post" action="ny_utbildning.asp">
<h3>Utbildning:</h3>
<textarea cols=50 rows=8 name="Utbildning"><%=Replace (rs("utb"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% case "Konsultverksamhet" %>
<form method="post" action="ny_konsultverksamhet.asp">
<h3>Konsultverksamhet:</h3>
<textarea cols=50 rows=8 name="konsult"><%=Replace (rs("konsult"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% case "Partners" %>
<form method="post" action="ny_partners.asp">
<h3>Partners:</h3>
<textarea cols=80 rows=8 name="Partners"><%=Replace (rs("partners"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% case "Natverk" %>
<form method="post" action="ny_natverk.asp">
<h3>Nätverk:</h3>
<textarea cols=50 rows=8 name="Natverk"><%=Replace (rs("natverk"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% case "Kunder"%>
<form method="post" action="ny_kunder.asp">
<h3>Kunder:</h3>
<textarea cols=50 rows=8 name="Kunder"><%=Replace (rs("kunder"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% case "Kontakt" %>
<form method="post" action="ny_kontakt.asp">
<h3>Kontakt:</h3>
<textarea cols=50 rows=8 name="kontakt"><%=Replace (rs("kontakt"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<%End Select%>
<%End if%>
</body>
</html>
ZaimanMedlem sedan dec. 20014 239 inläggAlltså nej med andra ord :e
Inte i den kod du visar här..
<form name="form1" method="post" action="kontrollpanelen.asp">
<input type="text" name="konsult" size="14">
<input type="submit" name="Submit" value="Ok">
</form>
Så nu finns det ett fält som du kan skriva i och som heter konsult.
Ta och läs igenom detta:
http://www.w3schools.com/asp/default.asp
Besvarar gärna och gladeligen dina frågor. Men läs igenom hela guiden för att börja med .ASP så lär du dig massor och kommer vidare snabbare med ditt projekt.
DanneStMedlem sedan feb. 20041 311 inlägg
Zaiman skrev:
Alltså nej med andra ord :e
Inte i den kod du visar här..
<form name="form1" method="post" action="kontrollpanelen.asp">
<input type="text" name="konsult" size="14">
<input type="submit" name="Submit" value="Ok">
</form>
Så nu finns det ett fält som du kan skriva i och som heter konsult.
Nämen, vänta nu här... :OO
Den här kodsnutten dårå??
<% case "Konsultverksamhet" %>
<form method="post" action="ny_konsultverksamhet.asp">
<h3>Konsultverksamhet:</h3>
<textarea cols=50 rows=8 name="konsult"><%=Replace (rs("konsult"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
Den ska väl slänga upp en textruta som sedan genererar ett fält som heter "konsult"!?
Jag hade tidigare löst det hela med en massa IF-satser (på en annan webbplats), så här:
--- massa annan kod ---
<form name="form2">
Här uppdaterar man texten i de olika avdelningarna.
<select onChange="self.location.href=this.options[this.selectedIndex].value;">
<option value="">-- Välj avdelning --</option>
<option value="kontrollpanelen.asp?AVD=Välkommen">- Start/Välkommen</option>
<option value="kontrollpanelen.asp?AVD=Aktuellt">- Start/Aktuellt</option>
<option value="kontrollpanelen.asp?AVD=Mässinfo">- Mässinfo</option>
<option value="kontrollpanelen.asp?AVD=Kontakt">- Kontakt</option>
<option value="kontrollpanelen.asp?AVD=Utställare">- Utställare</option>
<option value="kontrollpanelen.asp?AVD=Utställarinfo1">- Utställarinfo (före bilderna)</option>
<option value="kontrollpanelen.asp?AVD=Ladda_upp_bild" style=" color:#ffffff; background-color:#6699ff;">- Ladda upp bild...</option>
<option value="kontrollpanelen.asp?AVD=Ta_bort_bild" style=" color:#ffffff; background-color:#6699ff;">- Ta bort bild...</option>
<option value="kontrollpanelen.asp?AVD=Utställarinfo2">- Utställarinfo (efter bilderna)</option>
<option value="admin.asp?do=inne">- Administrera Nyheter...</option>
</select>
<a href="help.asp" target="_blank"><img border="0" src="images/question.gif" width="16" height="16"></a>
</form>
<br />
<% if Request.Querystring("AVD") = "Välkommen" then %>
<form method="post" action="ny_welcome.asp">
<h3>Välkommen:</h3>
<textarea cols=70 rows=10 name="welcome"><%=Replace (rs("welcome"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera">
<input type="reset" value="Rensa">
</form>
<% else %>
<% if Request.Querystring("AVD") = "Aktuellt" then %>
<form method="post" action="ny_aktuellt.asp">
<h3>Aktuellt:</h3>
<textarea cols=40 rows=8 name="aktuellt"><%=Replace (rs("aktuellt"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% else %>
<% if Request.Querystring("AVD") = "Mässinfo" then %>
<h3>Mässinfo:</h3>
<form method="post" action="ny_massinfo.asp">
<textarea cols=40 rows=8 name="massinfo"><%=Replace (rs("massinfo"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% else %>
<% if Request.Querystring("AVD") = "Kontakt" then %>
<form method="post" action="ny_kontakt.asp">
<h3>Kontakt:</h3>
<textarea cols=40 rows=8 name="kontakt"><%=Replace (rs("kontakt"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% else %>
<% if Request.Querystring("AVD") = "Utställare" then %>
<form method="post" action="ny_utstallare.asp">
<h3>Utställare:</h3>
<textarea cols=40 rows=8 name="utstallare"><%=Replace (rs("utstallare"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% else %>
<% if Request.Querystring("AVD") = "Utställarinfo1" then %>
<form method="post" action="ny_utstallarinfo1.asp">
<h3>Utställarinfo1:</h3>
<textarea cols=40 rows=8 name="utstallarinfo1"><%=Replace (rs("utstallarinfo1"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% else %>
<% if Request.Querystring("AVD") = "Ladda_upp_bild" then %>
<!--#Include file="lista.asp"-->
<% else %>
<% if Request.Querystring("AVD") = "Ta_bort_bild" then %>
<!--#Include file="pic.asp"-->
<% else %>
<% if Request.Querystring("AVD") = "Utställarinfo2" then %>
<form method="post" action="ny_utstallarinfo2.asp">
<h3>Utställarinfo2:</h3>
<textarea cols=40 rows=8 name="utstallarinfo2"><%=Replace (rs("utstallarinfo2"), "<br>", CHR(10))%></textarea><br /><br />
<input type="submit" value="Uppdatera"></td>
<input type="reset" value="Rensa">
</form>
<% else %>
</body>
</html>
<% end if %>
<% end if %>
<% end if %>
<% end if %>
<% end if %>
<% end if %>
<% end if %>
<% end if %>
<% end if %>
<% end if %>
Detta funkade klockrent mot en Access-db, och det är detta som jag nu försöker föra över mot en MySQL-db! :l
ZaimanMedlem sedan dec. 20014 239 inläggJa den kodsnutten ja.. Där fanns det ju med en textarea som hette konsult, den hade jag inte sett tidigare...
DanneStMedlem sedan feb. 20041 311 inlägg
Zaiman skrev:
Ja den kodsnutten ja.. Där fanns det ju med en textarea som hette konsult, den hade jag inte sett tidigare...
Puh! Nu trodde jag ett tag att jag var helt ute och cyklade...! (y)
EemissionMedlem sedan dec. 19996 721 inlägg Huruvida du får något i request.form("konsult") eller inte har rimligen inte något med valet av MySQL att göra. Du kanske helt enkelt inte skrev något i fältet?
Om du ändå håller på att bygga om så tycker jag att du ska passa på att fixa strukturen.
Har man en lista med if/else som du har så ska den inte skrivas
if blablabla
sdfsdf
else
if blablabla
sdfsdfsdf
eftersom det blir en enda djupnästlad if-sats (som måste avslutas med en drös med end if)
Skriv i stället
if blablabla
'sdfsdf
elseif blablablabla
'sdfsdfsdf
elseif blablablablabla
'sdfsdfsdfsdf
end if
...eller ännu hellre
select case Request.Querystring("AVD")
case "Välkommen"
'sdfsdfsdf
case "Aktuellt"
'sdfsdfsdf
end select
Om man tittar på ditt upplägg så ser man att du gör exakt samma sak för alla sidor. Rubriken och kolumnnamnet byts, men i övrigt är det ingen skillnad. Av den anledningen så är det lämpligt att sammanföra all funktionalitet. Lägg alla texter i samma tabell och låt en kolumn med värdet i AVD ("Välkommen","Aktuellt" etc.) identifiera vilken som ska uppdateras/läggas till/visas.
DanneStMedlem sedan feb. 20041 311 inlägg
emission skrev:
Huruvida du får något i request.form("konsult") eller inte har rimligen inte något med valet av MySQL att göra. Du kanske helt enkelt inte skrev något i fältet?
Hmm, kanske att js-scriptet som omvandlar alla "textarea" till WYSIWYG-editors (tinymce) spökar till det och stoppar all data...? Ska ta bort scriptet och se vad som händer...
emission skrev:
Om du ändå håller på att bygga om så tycker jag att du ska passa på att fixa strukturen.
Har man en lista med if/else som du har så ska den inte skrivas
if blablabla
sdfsdf
else
if blablabla
sdfsdfsdf
eftersom det blir en enda djupnästlad if-sats (som måste avslutas med en drös med end if)
Skriv i stället
if blablabla
'sdfsdf
elseif blablablabla
'sdfsdfsdf
elseif blablablablabla
'sdfsdfsdfsdf
end if
...eller ännu hellre
select case Request.Querystring("AVD")
case "Välkommen"
'sdfsdfsdf
case "Aktuellt"
'sdfsdfsdf
end select
Om man tittar på ditt upplägg så ser man att du gör exakt samma sak för alla sidor. Rubriken och kolumnnamnet byts, men i övrigt är det ingen skillnad. Av den anledningen så är det lämpligt att sammanföra all funktionalitet. Lägg alla texter i samma tabell och låt en kolumn med värdet i AVD ("Välkommen","Aktuellt" etc.) identifiera vilken som ska uppdateras/läggas till/visas.
Denna lilla lektion tackar jag för! Har känts väldigt omständigt att göra som jag har gjort hittills! (y)