Jump to content
php.lv forumi

kvalitātes uzlabošana


Recommended Posts

samāčījies esmu rakstīt murgainu php kodu tāpec tagad cenšos iemācīties uzrakstīt daudz kvalitatīvāk, īsāk un korektāk ..

 

vārdu sakot te būs scripts neliels un vai varētu pastastīt kā šo visu varētu uzrakstīt savādāk un paraizāk jo zinu kad šitāda metode ir galīgi garām ...

 

<?
$detail = "SELECT * FROM bizness";
$sq_quer = mysql_query($detail) or die("Query failed with error: ".mysql_error());
$ro = mysql_fetch_array($sq_quer);

$details = "SELECT * FROM user WHERE username='".$_SESSION['username']."'";
$sq_query = mysql_query($details) or die("Query failed with error: ".mysql_error());
$row = mysql_fetch_array($sq_query);

if($row['cietums'] == '1') {
include("cietums.php");
return true;}
?>


<table width="100%" border="0" cellspacing="0" class="ipb_table">
 <tr>
   <th width='2%'  class='header'>#</th>
   <th width='47%' class='header'>Nosaukums</th>
   <th width='11%' class='header'>Cena</th>
   <th width='11%' class='header'>Krājums</th>
   <th width='11%' class='header'>Skaits</th>
   <th width='9%'  class='header'>Darbība</th>
 </tr>

 <?
 $int = 0;
 $query = mysql_query("SELECT * FROM bizness ORDER by cena ASC");
 while($dati = mysql_fetch_array($query)){
 $int<100; $int++;
 ?>
<form method="POST" action="" > 
 <tr>
   <th width='2%' class='header'><? echo $int; ?></th>
   <th width='47%' class='header'><? echo $dati['nosaukums']; ?></th>
   <th width='11%' class='header'>$<? echo $dati['cena']; ?></th>
   <th width='11%' class='header'><? echo $dati['krajums']; ?></th>
   <th width='11%' class='header'>
       <input name="krajums" type="text" class="input_text"/></th>
   <th width='9%' class='header'>
       <input type="hidden" name="nosaukums" value="<? echo $dati['nosaukums']; ?>" />
       <input type="hidden" name="cena" value="<? echo $dati['cena']; ?>" />
	   <input type="hidden" name="ids" value="<? echo $dati['id']; ?>" />
	   <input type="submit" name="iepirkt" value="Iepirkt" class="prof" /></th>
 </tr>
</form>

 <?

 }
$nosaukums = mysql_real_escape_string($_POST['nosaukums']);
$ids =       mysql_real_escape_string($_POST['ids']);
$kraj_perk = mysql_real_escape_string($_POST['krajums']);
$cena =      mysql_real_escape_string($_POST['cena']); 
$atnems = $cena * $kraj_perk;


if(isset($_POST['iepirkt'])) {
if($ids == '1') {
    if($ro['krajums'] < $kraj_perk)     { echo "<div class='message_error'>Nav tik liels krājums</div>";}
        elseif($row['money'] < $atnems) { echo "<div class='message_error'>Tev nav tik daudz naudas</div>";}
        elseif($kraj_perk < 0)          { echo "<div class='message_error'>Skaitam jābūt pozitīvam</div>";}
	 elseif($kraj_perk == '')        { echo "<div class='message_error'>Ievadi skaitu</div>";}
	  elseif($kraj_perk == '0')      { echo "<div class='message_error'>Skaitam jābūt lielākam par nulli</div>";}
            else{
                mysql_query("UPDATE bizness SET krajums = krajums - $kraj_perk where id='".$ids."'");
                mysql_query("UPDATE user SET money = money - $atnems where username='".$_SESSION['username']."'");
            echo "<div class='message_success'>Tu iegādājies $kraj_perk $nosaukums</div>";}
}
elseif($ids == '2') {
if($ro['krajums'] < $kraj_perk)          { echo "<div class='message_error'>Nav tik liels krājums</div>";}
        elseif($row['money'] < $atnems) { echo "<div class='message_error'>Tev nav tik daudz naudas</div>";}
        elseif($kraj_perk < 0)          { echo "<div class='message_error'>Skaitam jābūt pozitīvam</div>";}
	 elseif($kraj_perk == '')        { echo "<div class='message_error'>Ievadi skaitu</div>";}
	 elseif($kraj_perk == '0')       { echo "<div class='message_error'>Skaitam jābūt lielākam par nulli</div>";}
            else{
                mysql_query("UPDATE bizness SET krajums = krajums - $kraj_perk where id='".$ids."'");
                mysql_query("UPDATE user SET money = money - $atnems where username='".$_SESSION['username']."'");
            echo "<div class='message_success'>Tu iegādājies $kraj_perk $nosaukums</div>";}
}
else{
echo "<div class='message_error'>Šobrīd nedarbojas</div>";}
}
 ?>

</table>

Link to post
Share on other sites

Nejaukt HTML kopā ar PHP - viens no labākajiem veidiem kā to izdarīt ir izmantot MVC arhitekūru (re kur laba pamācība)!

 

Labojums:

 

Gribēju pieminēt, ka tas nav vienīgais, ko dot MVC... vēl liels plus (bet tas arī nebūt nav viss) ir tas, ka šāda sistēma dot ļoti labu struktūru - viss ir sakārtots loģiski, viegli pārskatāmi un visādi citādi jauki!

Link to post
Share on other sites

paldies .. kas vēl?

 

un gribēju tieši zināt arī par to beigu daļu lai nebūtu scripti jāatkarto tik daudz reizes ... itkā mēgināju function() bet tad man nepilnīgi darbojās scripts

Link to post
Share on other sites

Es runāšu vispārīgi... DRY ("Don't repeat yourself!") un KISS ("Keep it simple, stupid!") principi. Pameklē informāciju par šiem diviem, tas arī ir ļoti svarīgi!

Link to post
Share on other sites

Nu nez vai mvc ir labākais ko ieteikt, lai atdalītu html no php. Man ir aizdomas, ka čalis pat nezin, kas ir funkcijas. Lai no šitāda koda atbrīvotos ir jāsāk mācīties oop. Pēc tam jasaprot kā var labi uztaisīt templeitus izmantojot <?php .... ?>, lai nav jāizmanto visādi smarty utt. sūdi, un tad var ķerties pie projekta arhitektūras.

Link to post
Share on other sites

Nu nez vai mvc ir labākais ko ieteikt, lai atdalītu html no php. Man ir aizdomas, ka čalis pat nezin, kas ir funkcijas. Lai no šitāda koda atbrīvotos ir jāsāk mācīties oop. Pēc tam jasaprot kā var labi uztaisīt templeitus izmantojot <?php .... ?>, lai nav jāizmanto visādi smarty utt. sūdi, un tad var ķerties pie projekta arhitektūras.

 

hmm, tu saki, ka mvc nav labākais ar ko sākt, un tai pat laikā iesaki mācīties oop čalim, kas nezina, kas ir funkcijas? :)

 

Es teiktu, ka OOP var mierīgi atstāt vēlākam laikam, pagaidām, lai iemācās to pašu MVC izmantojot procedurālos piegājienus... Bet nu bez pamatiem gan neiztikt...

Link to post
Share on other sites

Nav nepieciešams uzreiz sākumā MVC vai OOP. Pietiks, ja iesākumā visu PHP kodu sarakstīs sākumā, un HTML ar minimāliem PHP iestarpinājumiem (if un echo) beigās. Tad var pašā sākumā daļu PHP koda izvilkt funkcijās, kā pamatPHP kodā nelikt n-tos echo, bet saglabāt visu kādā $out mainīgajā(-os), kuru(-s) arī pašās HTML sadaļā izvadīs. Kad šis kods būs sakārtots esošajā realizācijā, varēs sākt domāt par funkciju aizvietošanu ar OOP vai mēģināt kādā vienkāršā MVC to iestrādāt.

Principā tas pats, ko teica Jackal, tikai bez OOP, lai iesākumā pats savam kodam var izsekot līdzi, nevis brīnīties uz MVC, ka kaut kā tas viss strādā, bet nesaprot, kā.

Link to post
Share on other sites

cik cilvēku tik viedokļu ... jāklausa vien būs briedim citādi beigās būs vēl lielāka putra nekā ir tagad ...

 

PS: ir vēl kādi priekšlikumi,padomi,piebildes?

Edited by snach15
Link to post
Share on other sites

Ehh, jaunieši, par kādām f-jām, oop, mvc, wtf jūs tur runājat. Cilvēkam iesākumā pietiks ar to, ka viņš uzzinās, kas ir OR operators:

 

if(isset($_POST['iepirkt'])) {
if($ids == '1') {
    if($ro['krajums'] < $kraj_perk)     { echo "<div class='message_error'>Nav tik liels krājums</div>";}
        elseif($row['money'] < $atnems) { echo "<div class='message_error'>Tev nav tik daudz naudas</div>";}
        elseif($kraj_perk < 0)          { echo "<div class='message_error'>Skaitam jābūt pozitīvam</div>";}
                elseif($kraj_perk == '')        { echo "<div class='message_error'>Ievadi skaitu</div>";}
                 elseif($kraj_perk == '0')      { echo "<div class='message_error'>Skaitam jābūt lielākam par nulli</div>";}
            else{
                mysql_query("UPDATE bizness SET krajums = krajums - $kraj_perk where id='".$ids."'");
                mysql_query("UPDATE user SET money = money - $atnems where username='".$_SESSION['username']."'");
            echo "<div class='message_success'>Tu iegādājies $kraj_perk $nosaukums</div>";}
}
elseif($ids == '2') {
if($ro['krajums'] < $kraj_perk)          { echo "<div class='message_error'>Nav tik liels krājums</div>";}
        elseif($row['money'] < $atnems) { echo "<div class='message_error'>Tev nav tik daudz naudas</div>";}
        elseif($kraj_perk < 0)          { echo "<div class='message_error'>Skaitam jābūt pozitīvam</div>";}
                elseif($kraj_perk == '')        { echo "<div class='message_error'>Ievadi skaitu</div>";}
                elseif($kraj_perk == '0')       { echo "<div class='message_error'>Skaitam jābūt lielākam par nulli</div>";}
            else{
                mysql_query("UPDATE bizness SET krajums = krajums - $kraj_perk where id='".$ids."'");
                mysql_query("UPDATE user SET money = money - $atnems where username='".$_SESSION['username']."'");
            echo "<div class='message_success'>Tu iegādājies $kraj_perk $nosaukums</div>";}
}
else{
echo "<div class='message_error'>Šobrīd nedarbojas</div>";}
}

 

pārtop par

 

if(isset($_POST['iepirkt'])) {
   if($ids == '1' || $ids == '2') {
       if($ro['krajums'] < $kraj_perk){ 
           echo "<div class='message_error'>Nav tik liels krājums</div>";
       }elseif($row['money'] < $atnems) { 
           echo "<div class='message_error'>Tev nav tik daudz naudas</div>";
       }elseif($kraj_perk < 0){ 
           echo "<div class='message_error'>Skaitam jābūt pozitīvam</div>";
       }elseif($kraj_perk == ''){ 
           echo "<div class='message_error'>Ievadi skaitu</div>";
       }elseif($kraj_perk == '0'){ 
           echo "<div class='message_error'>Skaitam jābūt lielākam par nulli</div>";}
       else{
           mysql_query("UPDATE bizness SET krajums = krajums - $kraj_perk where id='".$ids."'");
           mysql_query("UPDATE user SET money = money - $atnems where username='".$_SESSION['username']."'");
           echo "<div class='message_success'>Tu iegādājies $kraj_perk $nosaukums</div>";
       }
   }else{
       echo "<div class='message_error'>Šobrīd nedarbojas</div>";
   }
}

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...