A+ A A-

PHP, ASP, MySQL, Access, SQL...

  • Overordnet kategori: Dingser
  • Kategori: Spill og data
  • Sist oppdatert tirsdag 10. juni 2008 22:16
  • Treff: 4165

Det var i 1996 at det begynte. Jeg åpnet en webside, valgte "Vis kode", kopierte hele koden fra en webside, studerte den og lærte meg hvordan man setter opp tabeller og slikt. HTML var første steget. Så i 2000 gikk vi til innkjøp av en webserver med Windows 2000 med IIS og en SQL-server. Det var krav fra vår største kunde som dikterte innkjøpet. Som nevnt tidligere gikk jeg på IT Akademiet og lærte wedesign. Som en del av det studiet lærte vi FileMaker Pro 5 med CDML som "programmeringsspråk". Det er veldig likt html og alle databasespørringer gjøres i nettleseren via url. Nå prøver jeg (omsider) å lære meg noe mer moderne og bedre. Herregud! Hvorfor skal det være så vanskelig?

FileMaker/CDML er som barnemat i regne. La meg ta et eksempel. La oss si at jeg vil vise en en liste over DVD-filmene jeg har i kategorien komedie. I FileMaker ligger alle dataene omtrent som det ville sett ut i Excel.



Så lager jeg en enkel tabell med CDML-kode:

[FMP-Record]
<table width="494" border="0" cellspacing="0" cellpadding="0">
  <tr> 
  <td><strong>[FMP-Field: Tittel]</strong></td>
  </tr>
  <tr>
    <td valign="top"><img src="/img/dvd1/[FMP-Field: ID].jpg" width="100"></a></td>
</table>
[/FMP-Record]

URLen viser dette:
http://arkiv.kyrre.net/kyr/FMPro?-Db=dvd.fp5&-Format=index2.html&-Lay=lay1&category=Comedy&-SortField=Tittel&-SortOrder=ascend&-Token.1=dvd&-Token.2=liste&-Max=10&-Find

Vips, så popper en liste over filmene mine opp på skjermen.

Å få til denne enkle visningen av data i for eksempel ASP er en helt annen historie. Jeg har funnet frem noe kodegreier som du kan se nederst i artikkelen. Denne kodesnutten viser frem samme type tabell fra en annen database (jeg prøver å lage en ny løsning for pressebilhåndtering for Ford Motor Norge). Første linjen starter på linje 706. De 705 linjene foran er bare kode som forteller hva som skal hentes frem og hvordan.

Terskelen man skal komme seg over for å begynne å designe smarte og funksjonelle løsninger i moderne og kraftige scriptspråk som ASP og PHP er drithøy. Jeg vet ikke hvor mange netter jeg har sittet oppe og lest, testet, forsøkt å lære - og det eneste jeg så langt har oppnådd er hodepine og påfølgende ineffektive arbeidsdager.

Det jeg skulle ønske var at noen kunne lage noe som gjorde dette enklere. Mange der ute trenger ikke et scriptspråk man kan lage nettbanker av. Jeg selv trenger et verktøy som gir meg muligheten til å liste opp og vise frem enkle data fra en access-database eller noe lignende - i tillegg til en enkel admin der jeg kan administrere alt sammen. Jeg har testet en del kodegeneratorer, men det skorter veldig på designmulighetene etter at koden er generert. Koden du ser under er fra en slik generator. Det er jo komplett umulig for meg å bygge om dette. Så lenge programmet bare lister opp data rad for rad i to kolonner kan jeg ikke bruke det. Penga rett i vasken - igjen.

Kom gjerne med tips til meg på hvordan man bygger dynamiske nettsider uten å ha en IQ på 300+.

Alt koden på siden jeg snakker om blir til sammen på 1052 linjer - og lager tabellen som vist nederst i artikkelen. Du skjønner at jeg klager når jeg forteller deg at absolutt hele forsiden på den gamle hjemmesiden min er på 1036 linjer. Det er en ganske omfattende forside.

Kilidekoden til opplisting av en pressebil.

<Table  Border="0" Cellpadding="2" Cellspacing="1" BgColor="#177AE9">
<%
Response.Write "<tr>"
Response.Write "<td colspan=""2""ThRows"">Biler More Info.</td>"
Response.Write "</tr>"
%>
<%
intRowCount = 0
Do While RS.AbsolutePage = Current_Page And Not RS.EOF

    if intRowCount mod 2 = 0 then
        CssClass = """TrOdd"""
    else
        CssClass = """TrRows"""
    end if

    Response.Write "<tr>"
    Response.Write "<tdThRows"">ID</td>"
        CellValue = "" & QSFormatNumber(Rs(0),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Int Nr</td>"
        CellValue = "" & QSFormatNumber(Rs(1),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Reg Nr</td>"
        CellValue = "" & Rs(2) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Modell</td>"
        CellValue = "" & Rs(3) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Farge</td>"
        CellValue = "" & Rs(4) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Doors</td>"
        CellValue = "" & Rs(5) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Motor</td>"
        CellValue = "" & Rs(6) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Drivstoff</td>"
        CellValue = "" & Rs(7) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Pris</td>"
        CellValue = "" & QSFormatNumber(Rs(8),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Avd</td>"
        CellValue = "" & Rs(9) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Active</td>"
        CellValue = "" & QSFormatNumber(Rs(10),0,-1,0,-1) & ""
    cbchecked = QSCheckSelected("1", CellValue,"checked")
    Cellvalue = "<input type=""checkbox"" onclick=""return false"" value=""1""" & cbchecked & ">"
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">Endre</td>"
        CellValue = "<img src="/" mce_src="""&"./images/bt_edit.gif"&""" border=""0""  title=""Endre"" onerror=""this.onerror=null;this.src='./images/qs_nopicture.gif';"" >"
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& " align=Center ><a href="/" mce_href="""&"./biler_edit.asp?"&""&"currentrow_fd0=" & QSURLencode(Rs(0)) & ""&""" class=" &CssClass& ">" &CellValue& "</a></td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U1</td>"
        CellValue = "" & Rs(11) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P1</td>"
        CellValue = "" & QSFormatNumber(Rs(12),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U2</td>"
        CellValue = "" & Rs(13) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P2</td>"
        CellValue = "" & QSFormatNumber(Rs(14),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U3</td>"
        CellValue = "" & Rs(15) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P3</td>"
        CellValue = "" & QSFormatNumber(Rs(16),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U4</td>"
        CellValue = "" & Rs(17) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P4</td>"
        CellValue = "" & QSFormatNumber(Rs(18),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U5</td>"
        CellValue = "" & Rs(19) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P5</td>"
        CellValue = "" & QSFormatNumber(Rs(20),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U6</td>"
        CellValue = "" & Rs(21) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P6</td>"
        CellValue = "" & QSFormatNumber(Rs(22),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U7</td>"
        CellValue = "" & Rs(23) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P7</td>"
        CellValue = "" & QSFormatNumber(Rs(24),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U8</td>"
        CellValue = "" & Rs(25) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P8</td>"
        CellValue = "" & QSFormatNumber(Rs(26),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U9</td>"
        CellValue = "" & Rs(27) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P9</td>"
        CellValue = "" & QSFormatNumber(Rs(28),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">U10</td>"
        CellValue = "" & Rs(29) & ""
    if CellValue <> ""  then
        CellValue = replace(Cellvalue,vbCrLf,"<br>")
    else
        Cellvalue = " "
    end if
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"
    Response.Write "<tr>"
    Response.Write "<tdThRows"">P10</td>"
        CellValue = "" & QSFormatNumber(Rs(30),0,-1,0,-1) & ""
    Response.Write "<td class=" &CssClass& "  align=Default >" &CellValue& "</td>"
    Response.Write "</tr>"


    intRowCount = intRowCount + 1
    Rs.MoveNext
Loop
'-----get back url page----
  backurl = "./biler.asp?"
Response.Write "<tr>"
Response.Write "<td  colspan=""2""ThRows"" align=""Default"">"
Response.Write "<input align=""Center"" type=""button"" name=""QS_Back"" value=""Tilbake"" OnClick=""javascript:window.location='"& backurl & "'"">" & "  "
Response.Write "</td>"
Response.Write "</tr>"
%>
</Table>