CI modelinde, tabloyu alanlarını almak için ilk sorguların (bu alanlar zaman içinde dinamik olarak değişeceğinden, bu nedenle alan adlarının bir listesini kodlayamıyorum) bir işlev yaptım), ve sonra ilk sorgu sonuçları alır ve bir alan adı listesi oluşturduğunda, bir satır veya kayıt ait değerleri almak için tabloyu yeniden sorgular. Daha sonra ikinci sorgu sonucu bir dizide saklar. controller.Here geri geçirir adımları gerçekleştirir tam fonksiyonudur: ilk baştaCodeIgniter 3 MySQL sorgusu rasgele bir şekilde çalışır
public function getAssetFeatures($as_id)
{
$data = array();
//this sql query gets the field names from the table I want to query.
$sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '".DATABASE."' AND TABLE_NAME = 'as_features';";
$query = $this->db->query($sql);
$count = 0;
foreach($query->result_array() as $k)
{
foreach($k as $kk=>$v)
{
if( $v != "as_features_id" &&
$v != "as_id" &&
$v != "cid" &&
$v != "lot_size")
{
$features_array[$count] = $v;
$count++;
}
}
}
$features_string = implode(",",$features_array);
//I got the field names, put them into an array, then concatenated them into a string, which I will use for the fields in the next query:
$sql = "SELECT $features_string FROM as_features WHERE as_id='$as_id'";
$query = $this->db->query($sql);
//mandatory rooms/features:
foreach($query->result() as $row)
{
foreach($row as $k=>$v)
{
$data["$k"] = $v; //build an associative array with the values of each field for the one row I am querying
}
}
return $data; // return the associative array.
}
bir şey benim tablo veya görünümde kırıldı sanmıştım ama yenileyerek modele karşı aynı çağrıyı yapmaya devam ettiler olarak sayfa ve girme Tam olarak aynı değerler, bazen kod çalıştı ve ben "undefined endeksi" hatalarını alamadım fark ettim. kullanarak aynı işlemi için, her zaman
echo "<pre>";
print_r($asset['features']);
echo "</pre>";
... ve sadece bazen başarılı performans beklenen çıkışı, fakat:
Yani bu kod ile dizinin sonuçlarını outputted aynı parametreler, şöyle görünür: sorgu bir sonuç kümesi ve daha sonra nüfuslu dizi benim form çalışmalarını döner ve, normal.but sorgu başarısız çoğu zaman bakar ve ne görünüyor olsunArray
(
[kitchen] => 1
[liv_area] => 0
[dining] => 1
[family] => 0
[bed] => 0
[bath] => 1
[half_bath] => 0
[parking] => 0
[car_storage] => 0
[pool] => 0
[miscellaneous] => 0
)
bunun gibi:
Doğru yarasa, sorgu boş veri kümesi döndürmemelidir. Sorun budur. Aynı giriş parametrelerini kullanarak sorguyu gerçekleştiriyorum. Sorgu, verileri, tam olarak aynı verileri, zamanın% 100'ünü döndürmelidir. Tamam, sadece denedim, sorgu hala başarısız (veri döndü). Yani, 'while' döngüsü 'foreach' döngüsünden hiçbir fark yaratmaz. – TARKUS
Tamam, sorun benim kodumdu, sorgu değildi. Şifrelenmiş bir "as_id" iletiyordum, ancak seçim sorgusunu oluşturmadan önce şifresini çözmek için ihmal edildi. Bu yüzden bazen işe yaramaz ve başkalarına değil. Bazı nedenlerden dolayı MySQL şifreli 'as_id''in INT tipindeki mevcut as_id ile eşleşmesine izin verdi.Şifreyi çözdükten sonra, sorgu sonuçları tahmin edilebilir oldu. Bu, SO üyeleri tarafından aldatılmayı beklemeyeceğim bir şey. Teşekkürler. – TARKUS
Sevindim, sıralandı. Sorguyu çıkarmak ve sonra onu çalıştırmak için söyleyecektim. Sanırım bu sorunu da gündeme getirebilirdi. – gabe3886