Just nu i M3-nätverket
Gå till innehåll

Från ASP till PHP


levva

Rekommendera Poster

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]

Länk till kommentar
Dela på andra webbplatser

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

 

Länk till kommentar
Dela på andra webbplatser

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?

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Ä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.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...