Just nu i M3-nätverket
Jump to content

Från ASP till PHP


levva

Recommended Posts

Här kommer tre lätta uppgifter för den som kan. Har en sida i asp som hämter info från en Accessdatabas och det ser ut som nedan. Nu vill jag i stället köra med PHP och hämta från MySQL och det ser ut som nedan (del 2)

 

 

 

[log]

<%

Set Connection = Server.CreateObject("ADODB.Connection")

Connection.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("där filen ligger")

Connection.Execute("Delete * From tavlingar WHERE avslutas < #" & DateAdd("d",-0,date()) & "#")

SQL = "SELECT link, url, uppgift, vinster, avslutas FROM TAVLINGAR ORDER BY avslutas, link"

Set rs = Connection.Execute(SQL)

do until rs.EOF

%>

 

<%

dim bgcolor

bgcolor="#ffffff"

 

While not rs.EOF

 

%>

 

 

 

<tr bgcolor="<% =bgcolor %>">

<td align="left" height="12" width="200" valign="top">

<font face="Arial" size="2">

<a href="<%=rs("url")%>"><%=rs("link")%></a><br><%=rs("Uppgift")%>

</td>

<td align="left" height="12" width="276" valign="top">

<font face="Arial" size="2">

<%=rs("Vinster")%>

</td>

<td align="center" height="12" width="74" valign="top">

<font face="Arial" size="2">

<%=rs("Avslutas")%></td>

</tr>

 

<%

If bgcolor="#ffffff" Then

bgcolor="#f9f6e3"

Else

bgcolor="#ffffff"

End If

 

rs.MoveNext

Wend

loop

rs.Close

Connection.Close

%>

[/log]

 

Del 2

[log]

 

<?

$länk = @mysql_connect ("localhost", "användarnamn", "lösen")

or die ("Kunde inte ansluta");

$databas = mysql_select_db("databas");

$sql = "SELECT * FROM tävlingar";

$result = mysql_query("$sql");

?>

<table border="1" cellpadding="5">

<tr><th><?=mysql_field_name($result,0)?></th>

<th><?=mysql_field_name($result,2)?></th>

<th><?=mysql_field_name($result,3)?></th>

<th><?=mysql_field_name($result,4)?></th>

<th><?=mysql_field_name($result,5)?></th></tr>

<?

while($rad=mysql_fetch_row($result)) {

echo "<tr><td>".$rad[0]. "</td><td>". $rad[2] ."</td><td>". $rad[3] ."</td><td>". $rad[4] ."</td><td>". $rad[5] ."</td></tr>";

}

?>

</table>

<?

mysql_close ($länk);

?>

 

 

[/log]

 

Då kommer mina tre frågor:

 

Fråga 1: Hur gör jag rödmarkerad del i asp i PHP i stället.

Fråga 2: PHP tabellerna är lite tråkiga när de presenteras... Var lägger jag in följande html kod någonstans i PHP?

 

[log]

<table cellspacing="0" cellpadding="3" rules="rows" bordercolor="#BBBBBB" border="1" style="border:1px solid #BBBBBB; width:573px;border-collapse:collapse" id="table4" height="0">

<tr style="background-color:#d9d6c3;font-weight:bold;">

<p class=ingress1>

<th valign="top">

<p align="left">

<font size="2" face="Arial">Tävling</font></th>

<th valign="top" align="left">

<font size="2" face="Arial">Vinster</font></th>

<th>

<font face="Arial" size="2">

Avslutas</font></th>

[/log]

 

Fråga 3: För att inte databas, localhost, användarnamn och lösenord ska synas i följande rader. Var lägger jag de? Ska de ligga i någon include fil? Om jag hur länkar jag till den?

 

$länk = @mysql_connect ("localhost", "användarnamn", "lösen")

or die ("Kunde inte ansluta");

$databas = mysql_select_db("databas");

 

Hoppas någon vänlig själ kan hjälpa mig. Tack på förhand!

 

/levva

 

 

[inlägget ändrat 2005-05-25 14:07:10 av levva]

[inlägget ändrat 2005-05-25 14:08:48 av levva]

Link to comment
Share on other sites

Här kommer tre lätta uppgifter för den som kan.

Tänka sig, man kunde tro att den som kan avgöra om frågorna är lätta också kan svaren :-)

 

Fråga 1: Hur gör jag rödmarkerad del i asp i PHP i stället.

Om du anväder mysql_fetch_array() och inte mysql_fetch_row() så gör du så här:

<a href="<?=$rad("url")?>"><?=$rad("link")?></a><br>
<?=$rad("Uppgift")?>

Vill du använda mysql_fetch_row() så petar du dit indexen för fälten istället, något som naturligtvis blir klurigt eftersom du gör SELECT * FROM och inte SELECT <fältnamnslista> FROM.

 

Fråga 2: PHP tabellerna är lite tråkiga när de presenteras... Var lägger jag in följande html kod någonstans i PHP?

På samma ställe som om du skulle göra det i ASP, det är väl ingen skillnad i sidans utformning?

 

Fråga 3: För att inte databas, localhost, användarnamn och lösenord ska synas i följande rader. Var lägger jag de? Ska de ligga i någon include fil?

De kommer alltid att synas för den som har rätt att titta på filen (svårt att köra koden annars) men aldrig synas för den som ber om sidan (då är ju koden körd), detta gäller oavsett var du lägger dem, naturligtvis kan du lägga dem i en include-fil om du vill men normalt gör man det för att bara behöva ha dem på ett ställe, inte för att det blir någon skillnad i säkerhet.

 

Och sen vidare till nästa del:

Bonus-tips 1:

$länk = @mysql_connect ("localhost", "användarnamn", "lösen")

...

$sql = "SELECT * FROM tävlingar";

Det kan förresten vara värt att nämnas att det är en riktigt genomusel idé att ha variabelnamn och tabellnamn innehållande å, ä eller ö. Det är möjligt att det fungerar, nu, eller imorgon, eller aldrig men man vet inte.

 

Bonus-tips 2:

$result = mysql_query("$sql");

Skriv istället:

$result = mysql_query($sql);

Jag tycker det verkar som om du borde läsa ett inledande kapitel i vilken bok som helst som förklarar hur PHP fungerar, att porta ett projekt till ett språk till ett annat förutsätter lixom att man har koll på grunderna.

 

http://www.php.net/ är bra, tittar du på t.ex mysql_fetch_array() så hittar du massor med exempel på hur den fungerar:

http://www.php.net/mysql-fetch-array

 

Link to comment
Share on other sites

Tack för hjälpen! Ska testa lite senare ikväll. Jag har läst en del, men sen gäller du ju att fatta allt också ;-) Är det inte därför forumet finns?

 

angående bokstaven ö, så råkade det bli fel vid inskrivningen.

 

men ärligt talat...

 

är asp-koden eller PHP-koden så illa skriven?

 

 

 

 

Link to comment
Share on other sites

Är det inte därför forumet finns?

Absolut, fast om du inte har grundläggande koll på hur en sträng eller variabel fungerar så blir det svårt att hjälpa dig med bra svar på sådana "jätteuppgifter" som ovan.

Det var mer ett råd att börja i rätt ände, att lära sig baklänges genom att ta på sig ett förstort projekt på en gång och hoppas att saker går att direktöversätta blir sällan bra i längden.

 

angående bokstaven ö

Vet inte om du missuppfattade mig men mina två exempel gällde bokstaven ä och inget annat :-)

 

är asp-koden eller PHP-koden så illa skriven?

Nejdå, hemsk men knappast ett skräckexempel. Skrev jag det?

Det jag menade var att om man skriver saker som $result = mysql_query("$sql"); så är det uppenbart att man missat någonting centralt som mycket väl kan leda till att man går över ån efter vatten när man ska lösa framtida uppgifter.

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...