webForumDet fria alternativet

Formatering etc direkt i frågan

2 svar · 330 visningar · startad av learn

learnMedlem sedan jan. 20051 130 inlägg
#1

Jag hämtar en massa information i från en MySQL-databas m.h.a. PHP. Datan som hämtas skall sedan visas på ett speciellt sätt. T.ex. ska en kolumn formateras som valuta (1 000 SEK), i en annan kolumn slås förnamn och efternamn ihop (de är lagrade separat i databasen) etc etc...

Detta är ju busenkelt att göra med PHP efter datan är hämtad från databasen, men mycket går ju istället att göra direkt i sql-frågan (t.ex. med FORMAT, CONCAT etc), vilket känns väldigt smidigt!

Finns det några rekommendationer för hur mycket man ska överlåta till sql-frågan vs i PHP-koden? Tänkte att de kanske krävs olika mycket av server etc.

Ge mig tips! Tack :bire

learnMedlem sedan jan. 20051 130 inlägg
#2

Okay, här kommer exempel då...

$sql = mysql_query("
SELECT CONCAT(l_name, ', ', f_name) AS full_name, CONCAT(amount, ' kr') AS paid
FROM pay
")

while ($r = mysql_fetch_assoc($sql)) {

echo $r['full_name'] . ": " . $r['paid'];

}

VS

$sql = mysql_query("
SELECT f_name, l_name, amount
FROM pay
")

while ($r = mysql_fetch_assoc($sql)) {

echo $r['l_name'] . ", " . $r['f_name'] . ": " . $r['amount'] . " kr";

}

Det första exemplet vore ju nice i mitt fall...

Kom med synpunkter och tips! Finns några rekommendationer :)

SPiNMedlem sedan mars 20007 896 inlägg
#3

Om PHP och MySQL körs på samma server blir det inte så stor skillnad, men om MySQL står på en egen burk kan prestandan förbättras lite grann möjligen, om du låter formateringen ske i SQL. I ditt ovanstående exempel blir prestandavinsten försumbar - då är det bättre att titta på hur koden påverkar ditt projekt. Kommer du kanske vilja ändra formatering i framtiden? Blir det enklare att bara ändra i SQL-koden i så fall? Och så vidare.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)