Jump to content
php.lv forumi

News


Chickenz

Recommended Posts

Scripts atrodas shite...

http://paste.php.lv/1490

sql:

CREATE TABLE `news` (
 `id` int(11) NOT NULL auto_increment,
 `autors` varchar(255) NOT NULL default '',
 `laiks` varchar(255) NOT NULL default '',
 `ip` varchar(255) NOT NULL default '',
 `virsraksts` varchar(255) NOT NULL default '0',
 `apraksts` text NOT NULL,
 `raksts` text NOT NULL,
 `bilde` varchar(255) NOT NULL default '',
 PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1;

Doma taada: moshka kaads no shejienes gudrajiem praatiem var to koodu kaut kaa optimizeet, ieteikt labaaku variantu, TJipa lai straadaaa aatraak...

 

Ceru ka domu saprataat...

Link to comment
Share on other sites

1. nu datu pārbaude ir tā kas pirmā stitās acīs:

if (isset($_GET['news'])){
$news = $_GET['news'];

jāpārbauda, kas tajā get tiek saņemts pirms vaicājumā bāzt;

 

2. mysql_fetch_array un mysql_fetch_assoc ātrdarbība ar te kaut kur ir apspriesta;

 

3. seko līdzi pēdiņu lietošanai:

$apraksts = $row["apraksts"];
$raksts = $row['raksts'];

 

4. ja tabulas ir, tad vēl nekas, bet par css gan derētu padomāt;

 

5. man nedaleca, kāpēc tur n reizes tiek rakstīts viens un tas pats pamainot tikai vaicājumu:

$db=mysql_query("SELECT * FROM news ORDER BY `id` DESC limit 2, 2");

ja jau reiz ir jēga, tad varbūt, ka vajag;

 

tas tā garām skrienot

Link to comment
Share on other sites

Tipa man ir taa ka zinjas tiek paraadiitas 2x2 tabulaa, taadad kopumaa chetras, tad veel ir tas ka uzspiezjot uz raxta blakus paraadaas citi raxti...

Visu laiku atkaartojoties es padomaaju ka moshka kaadam ir kaadi ieteikumi kaa vareetu optimizeet lai aatraak, paarskataamaak, efektiivaak darbotos tas scripts...

Link to comment
Share on other sites

es protams nesaprotu, ko tu tur īsti gribi optimizēt un par kādu ātrdarbību iet runa, ja ir elementāri sql vaicājumi un tiek atgriezti 4 ieraksti (vai kaut kā tā)

vēl tam iepriekš minētajam var pievienot, lai tu pārtaisi tos html blāķus uz funkcijām, tb tev tur ir 2x izsaukts

<table border="0" cellpadding="2" cellspacing="5" width="350" class="dark">
    <tr>
        <td width="350" colspan="2"><b><a href="?news=<?=$id;?>" class="news"><?=$virsraksts;?></a></b></td>
    </tr>
    <tr>
        <td width="112"><img src="<?=$bilde;?>" width="100" height="115" border="1"></td>
        <td width="238"><div align="justify"><?=$apraksts;?></div></td>
    </tr>
    <tr>
        <td width="112"><font color="#444444"><b><?=$autors;?></b></font></td>
        <td width="238" align="right"><font color="#AAAAAA"><?=$laiks;?></font></td>
    </tr>
    </table>

 

pārtaisi par funkciju un būs tev optimizācija

 

un par to funkciju arhivs() ar var strīdēties, jo šaubos, ka tu viņu izsauksi vairāk kā vienu reizi. ja arī izsauksi, tad funkcijai bez parametriem nav īsti tolka, tad jau labāk likt kā include, bet nu tas jau ir vairāk piekasīšanās dēļ

 

galveno uzmanību gribētu vērst tieši uz html, jo kā redzi, tad elementārs piemērs izvēršās par diezgan nelasāmu koda gabalu...

Link to comment
Share on other sites

un par to funkciju arhivs() ar var strīdēties, jo šaubos, ka tu viņu izsauksi vairāk kā vienu reizi. ja arī izsauksi, tad funkcijai bez parametriem nav īsti tolka, tad jau labāk likt kā include, bet nu tas jau ir vairāk piekasīšanās dēļ

12516[/snapback]

 

Tikko tu liec kaut ko kā include, tā ir uzreiz papildus faila atvēršanas, nolasīšanas un aizvēršanas operācija, kas attiecīgi nozīmē uzreiz papildus laiku pie scenārija izpildes. Bet nu pie tik sīkiem brīnumiem, kāds ir šis par to var neuztraukties :)

Link to comment
Share on other sites

Tikko tu liec kaut ko kā include, tā ir uzreiz papildus faila atvēršanas, nolasīšanas un aizvēršanas operācija, kas attiecīgi nozīmē uzreiz papildus laiku pie scenārija izpildes. Bet nu pie tik sīkiem brīnumiem, kāds ir šis par to var neuztraukties :)

12518[/snapback]

Tagad varam te uzsākt bezgalīgu diskusiju ne par tēmu, bet (vismaz es) ja taisu funkcijas, tad tās tiek liktas atsevišķā failā, tad tiek šis fails vajadzīgajās vietās inklūdots un attiecīgi izsaukta funkcija. Līdz ar to tas pats vien ir...

 

Lai gan dažkārt man gribētos teikt, ka cilvēki pārāk optimizējas. Protams, neesmu speciālists par miljonu lietotāju apmeklētām lapām, bet manuprāt, parastā ziņu skriptā runāt par optimizāciju ir lieki.

Optimizēt var sāk kaut kādus algoritmus, kur kaut kas sarežģīts tiek aprēķināts (draugiem.lv draugu tīkls or smth) un biežāk gribētos teikt, ka apsprāgst tieši datu bāze un nevis web serveris.

Bet nu protams, pierodam rakstīt optimizētu kodu :)

Link to comment
Share on other sites

Tagad varam te uzsākt bezgalīgu diskusiju ne par tēmu, bet (vismaz es) ja taisu funkcijas, tad tās tiek liktas atsevišķā failā, tad tiek šis fails vajadzīgajās vietās inklūdots un attiecīgi izsaukta funkcija. Līdz ar to tas pats vien ir...

12519[/snapback]

 

Netaisos uzsākt bezgalīgu un nejēdzīgu diskusiju, taču tas ir viens no momentiem, kas tomēr ir jāņem vērā - ja tu katru funkciju bāzīsi savā failā un galu galā tavam PHP skriptam dzīves laikā būs jāatver teiksim 30 faili, ar garantiju, ka tas būs stipri lēnāk, nekā tad, ja tam būs jāatver tikai 10 faili.

Link to comment
Share on other sites

jā! optimizācija ir ļoti laba lieta un to vienkārši vajag, jo:

1) kods izskatās zolīdāk

2) par sekundes simtdaļām arī strādā ātrāk

3) mazāk noslogojas serveris (lieki mainīgie, utt)

 

daži padomi:

if ( empty($var) ) { echo 'not set'; }

vietā varam izmantot:

if ( !$var ) { echo 'not set'; }

vienīgi neies cauri, ja ņemsi masīvu elementus. tiem vajag isset()

***

ja vajag vienkāršu pārbaudi uz jā/nē tad ļoti noder if/then/else saīsinātais variants:

$viens = "ir ir !! ";
$divi = "diemzheel nebuus";
$out = ($var ? $viens : $divi );

garais pieraksts būtu:

if ( $var ) {
    $out = $viens;
    }
else {
    $out = $divi;
    }

 

un nemaz nerunājot par liekiem mainīgajiem:

$var = $row['var'];
echo '<div class="var">'.nl2br($var).'</div>';

labāk būtu :

echo '<div class="var">'.nl2br($row['var']).'</div>';

 

un protams neaizmirstam, ka iekš mysql pastāv ne tikai SELECT * FROM table WHERE 1 = 2, bet gan ļoti daudzas citas noderīgas funkcijas ar kurām var jau viltīgi atlasīt, kārtot, ievietot un vēl visko darīt, lai samazinātu mysql pieprasījumu skaitu un php koda daudzumu.

Edited by hmnc
Link to comment
Share on other sites

Esmu pret

if ( !$var ) { echo 'not set'; }

 

un ja nu $var nav nodefinēts! isset un/vai empty _ir jālieto

 

if (!isset($var))

echo 'not set';

 

empty ņem arī apakšmasīvus

 

tālāk - stringiem lietojam apostrofus, ja vien nav labs attaisnojums:

$viens = 'ir ir !!';

Link to comment
Share on other sites

Venom - un ja nu.. tas ir variants.. un ja nu tu nomirsti - neiesi ārā uz ielas, nebrauksi ar mašīnu? :D :D

bet nu jā. tapēc vajag funkciju, kas ķer mainīgos. vismaz ērtāk izmantot.

 

labs iemesls lietot " " ir

echo "new line\n";

Link to comment
Share on other sites

<table border="0" cellpadding="2" cellspacing="5" width="350" class="dark"> 
    <tr> 
        <td width="350" colspan="2"><b><a href="?news=<?=$id;?>" class="news"><?=$virsraksts;?></a></b></td> 
    </tr> 
    <tr> 
        <td width="112"><img src="<?=$bilde;?>" width="100" height="115" border="1"></td> 
        <td width="238"><div align="justify"><?=$apraksts;?></div></td> 
    </tr> 
    <tr> 
        <td width="112"><font color="#444444"><b><?=$autors;?></b></font></td> 
        <td width="238" align="right"><font color="#AAAAAA"><?=$laiks;?></font></td> 
    </tr> 
    </table>

run'ajot par html izvadi ieteiktu bildi un aprakstu nelikt katru sava td bet gan floutot ar stila palidzibu, redzams ka teu ir kadcs .css failinsh ta ka iemet:

<style>

img {

float: left;

width: 100px;

height: 115px;

border: 1px solid #999;

margin-right: 1em;

}

</style>

    <tr>

        <td width="350" colspan="2"><img src="<?=$bilde;?>"><div align="justify"><?=$apraksts;?></div></td> 

    </tr>

tas taada apsveruma delj ja $apraksts ir diezgan garsh tad nu ne ipashi acij patikami izskatas kopeji un bildes ja vien katru reizi netaisi tieshi tada lieluma labak jau butu likt kadus max platumus un augstumus joshada veida ja nav resolutija proporcionala bilde izstiepjas vai saraujas

Link to comment
Share on other sites

×
×
  • Create New...