Bu kodu nasıl azaltılır?

7 Cevap

Bu kodu kısaltmak için herhangi bir yolu var mı:

$resultCategoryName = mysql_query("SELECT ecname FROM electioncategorymaster WHERE ecid=".$Category);
$rowCategoryName = mysql_fetch_row($resultCategoryName);
$CategoryName = $rowCategoryName[0];

7 Cevap

Belki bazı tür bir ORM kullanarak içine bakmak gerekir. Zend_Db bir sorgudan tek bir değer kapma için bir yöntemi vardır.

$ecname = $db->fetchOne("SELECT ecname FROM electioncategorymaster WHERE ecid = ?", $Category);

No nedeniyle PHP bir kusur aşağıdaki mümkün değildir:

$CategoryName = mysql_fetch_row($resultCategoryName)[0];

Ben daha fazla azalabilir sanmıyorum. Tüm fonksiyonlar çok az düzeyde görev yapmaktadır. Sadece değişken isimlerini kısaltabilir :)

Eğer 2 adımda categroyName almak için mysql_result kullanabilirsiniz.


$resultCategoryName = mysql_query("SELECT ecname FROM electioncategorymaster WHERE ecid=".$Category);
$categoryName = mysql_result($resultCategoryName, 0); //Extract First column

İşte referans link.

Ben PHP gurusu değilim, ama belki sen ya her tablo için bir çerçeve ya da bir sınıf kullanıyor olmalıdır.

Ben bu kod zatında azalabilir sanmıyorum.

$rowCategoryName = mysql_fetch_row(mysql_query("SELECT ecname FROM electioncategorymaster WHERE ecid=$Category"));
$CategoryName = $rowCategoryName[0];

Bu Aklıma kısa bulunuyor. Bunu gerçekten yapmak SELECT ecname FROM electioncategorymaster WHERE ecid='$Category'" olsa (değişken tek tırnak koyarak). Olmalıdır

Bu bunu yapmak yoludur. Ben sadece sayısal değerler id olarak geçirilir sigortalamak için sprintf'i kullanın. Ben de sadece tek bir kayıt getirilen olmasını sağlamak için LİMİT 1 SQL sentance ekleyin.

$r = mysql_fetch_row(mysql_query(
sprintf("SELECT * FROM <sometable> WHERE id = %d LIMIT 1",intval($id))
,$connection));