Şimdiye kadar yaptığım şeyi kısaca anlatacağım - Öncelikle mağazaların çoğuna sahibim ve her bir mağazanın kendi içinde id, item, qty ve fiyatı ve her mağaza tablosundan alınan toplam qty içeren all_items
adlı bir ana tablo var. PHP Beklenildiği gibi çalışmayan birden fazla tabloya katılın
S1
id item qty price
1 x1 10 12
2 x2 10 15
3 x3 5 5
S2
id item qty price
1 x1 10 12
2 x4 6 6
S3: denilen
Mağaza tabloları: Burada tablolar neye benzediğini görebilirsiniz
id item qty price
1 x3 1 5
2 x6 5 5
3 x7 5 12
ALL_ITEMS-orijinal toplam qty İçeriyor
id item qty price
1 x1 20 12
2 x2 10 15
3 x3 6 5
4 x4 6 6
5 x6 5 5
6 x7 5 12
Tamam şimdi, şu gibi amaçlı- karşılaştırmak için tüm mağazalarda her öğe için kullanılabilir qty öğrenmek için karar verdik:
item price S1 S2 S3
x1 12 10 10 -
x2 15 10 - -
x3 5 5 - 5
x4 6 - 6 -
x6 5 - - 5
x7 12 - - 5
Şimdi senin için berrak umuyoruz. eğer Şimdi
$allstore = $_POST['store']; //Collects name from checkbox ticks under form
function createSelect($allstore)
{
if (empty($allstore))
return "";
$querySelect = "";
$queryJoin = "";
$baseTable = "";
foreach ($allstore as $store => $value) {
if (!$querySelect) {
$baseTable = "all_items";
$querySelect = "SELECT " . $store . ".item_no, " . $store . ".actual_price, " . $store . ".selling_price, " . $store . ".qty as " . $store;
} else {
$querySelect .= ", " . $store . ".qty as " . $store;
$queryJoin .= "
INNER JOIN " . $store . " ON " . $baseTable . ".item_no = " . $store . ".item_no";
}
}
$querySelect .= " FROM " . $baseTable;
$query = $querySelect . $queryJoin;
return $query;
}
$allstore = array(); // The below code allows function to know how many stores selected in $allstore
if (!empty($_POST['store'])) {
foreach ($_POST['store'] as $value) {
$allstore["s_".$value] = 0; // or 1, it doesn't matter because your function adds all the keys
}
}
var_dump(createSelect($allstore)); // Output SQL
$query = (createSelect($allstore));
$result = mysql_query($query);
//Rest of the code .....
: Bir PHP sayfası aşağıdaki kodu içeren - Ben kullanıcı o karşılaştırmak istiyor, bu yüzden formu gönderdikten sonra saklayan seçmek izin vermek (her mağaza için) onay kutusu giriş tipi ile bir form oluşturduk Not $baseTable = "all_items";
, tüm sorguyu başarısız yapar. Ben $baseTable = $store;
için o değeri değiştirirseniz çıkıyor S1 şimdi ana ve sadece S1 öğeler üzerinde röleleri çünkü sonuç tamamen farklı olacak çünkü Ancak nasıl çalıştığını ve bir çıkış gösterir ama beklendiği gibi değil.
Herhangi bir yardımcı çözüm sunabiliyorsanız takdir edilecektir.
sayesinde parametre 1 kaynak olmasını beklediğini, boolean given' –
Onun bunun için bir çözüm bulma umutsuz görünüyor. –
Ben sonunda davanızı çoğaltılmış ve iyi iş gibi görünüyor. Sütun adlarının ve tablo adlarının sahip olduğunuz öğelere karşılık gelip gelmediğini kontrol edin. Eğer hala devam etmiyorsa, bana bildirin – KBJ