webForumDet fria alternativet

Noob på MySQL (one.com)

ASP

44 svar · 1 499 visningar · startad av DanneSt · sida 2 av 3

Frågan, av DanneSt

Huvvaligen... Har hittills bara arbetat med Access men har nu blivit tvungen att kasta mig på MySQL då ett nuvarande projekt ligger på webhotellet one.com (f.d. B-One) som inte hanterar Access. Istället erbjuder de MySQL via ett gränssnitt som de kallar PHPMyAdmin. Har efter flera timmars sökande på wF iaf fått igång kopplingen och lyckats knåpa ihop en databas via PHPMyAdmin. Problemet som jag i

Läs frågan i sin helhet →
Medlem sedan feb. 20041 311 inlägg
#21

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

Medlem sedan dec. 19996 721 inlägg
#22

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

Medlem sedan dec. 20014 239 inlägg
#23

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.

Medlem sedan feb. 20041 311 inlägg
#24

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.

Medlem sedan feb. 20041 311 inlägg
#25

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! ;)

Medlem sedan dec. 19996 721 inlägg
#26

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.

Medlem sedan dec. 20014 239 inlägg
#27

Precis Response.Write(SQL) visa oss resultatet.

Medlem sedan feb. 20041 311 inlägg
#28

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... ;)

Medlem sedan feb. 20041 311 inlägg
#29

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
Medlem sedan juni 20019 519 inlägg
#30

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

Medlem sedan dec. 20014 239 inlägg
#31

SQL="UPDATE start SET konsult='" & Replace(Request.Form("konsult"),"'","\'") & "'"

Medlem sedan feb. 20041 311 inlägg
#32

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
Medlem sedan dec. 20014 239 inlägg
#33

Så med andra ord kommer det ingenting i Request.Form("konsult").

Finns fältet konsult på den sida som skickar till din .asp sida?

Medlem sedan feb. 20041 311 inlägg
#34

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">
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			L&ouml;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.&nbsp;
	<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>&nbsp;&nbsp;&nbsp;
	<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>
Medlem sedan dec. 20014 239 inlägg
#35

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.

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.

Medlem sedan feb. 20041 311 inlägg
#36

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.&nbsp;
	<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>&nbsp;&nbsp;&nbsp;
	<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

Medlem sedan dec. 20014 239 inlägg
#37

Ja den kodsnutten ja.. Där fanns det ju med en textarea som hette konsult, den hade jag inte sett tidigare...

Medlem sedan feb. 20041 311 inlägg
#38

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)

Medlem sedan dec. 19996 721 inlägg
#39

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.

Medlem sedan feb. 20041 311 inlägg
#40

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)

277 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
148 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)