Ben db aramalar yüzlerce yapmak için daha özlü bir şekilde oluşturmak için çalışıyorum. Bunun yerine çıkış için tek bir alan istedim her zaman bütün sorgu dışarı yazma, tüm sorgu işi yaptım bir sınıfa noktasına kod çalıştı. Bu şimdiye kadar sahip sınıftır:
class Listing {
/* Connect to the database */
private $mysql;
function __construct() {
$this->mysql = new mysqli(DB_LOC, DB_USER, DB_PASS, DB) or die('Could not connect');
}
function getListingInfo($l_id = "", $category = "", $subcategory = "", $username = "", $status = "active") {
$condition = "`status` = '$status'";
if (!empty($l_id)) $condition .= "AND `L_ID` = '$l_id'";
if (!empty($category)) $condition .= "AND `category` = '$category'";
if (!empty($subcategory)) $condition .= "AND `subcategory` = '$subcategory'";
if (!empty($username)) $condition .= "AND `username` = '$username'";
$result = $this->mysql->query("SELECT * FROM listing WHERE $condition") or die('Error fetching values');
$info = $result->fetch_object() or die('Could not create object');
return $info;
}
}
Bu sayede tek bir satırdan istediğim herhangi bir bilgi erişimi sağlar.
$listing = new Listing;
echo $listing->getListingInfo('','Books')->title;
Bu kategori "Kitaplar" in ilk listenin başlığını verir. Ben çıktı o liste fiyatı istiyorsanız, ben getListingInfo başka bir çağrı () yapmak zorunda. Bu db başka bir sorgu yapar ve yine sadece ilk satırını döndürür.
Bu tüm sorgu her zaman yazı çok daha özlü, ama çok sık db çağrı olabilir gibi hissediyorum. Çıkışı benim sınıfımda veri için daha iyi bir yolu var mı ve hala (belki bir dizinin tüm satırları çıktısı ve dizi dönen) bunu erişimde özlü? Evetse, nasıl?