68 lines
2.2 KiB
PHP
Executable File
68 lines
2.2 KiB
PHP
Executable File
<?php
|
|
ini_set('memory_limit', '512M');
|
|
set_time_limit(300);
|
|
|
|
// بيانات الاتصال بقاعدة البيانات
|
|
$host = 'localhost';
|
|
$dbname = 'aqdamypanel_aqdamy';
|
|
$user = 'aqdamypanel_mysql';
|
|
$pass = 'AST4dxy6vEsi';
|
|
try {
|
|
// الاتصال بقاعدة البيانات باستخدام PDO
|
|
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
|
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
|
// قراءة البيانات من الجدول
|
|
$stmt = $pdo->query("SELECT id, pay FROM `VAT_report_2024_I` WHERE (`date_time` >= '2023-04-01 00:00:00' AND `date_time` < '2023-07-01 00:00:00') AND `branch_id` != 9");
|
|
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
// الهدف
|
|
$target_sum = 138231.74;
|
|
|
|
// وظيفة لحساب مجموع جميع العناصر في مجموعة
|
|
function array_sum_values($array, $key) {
|
|
$sum = 0;
|
|
foreach ($array as $item) {
|
|
$sum += $item[$key];
|
|
}
|
|
return $sum;
|
|
}
|
|
|
|
// دالة لتوليد جميع المجموعات الممكنة
|
|
function generate_combinations($array, $target) {
|
|
$results = [];
|
|
$count = count($array);
|
|
$totalCombinations = pow(2, $count);
|
|
|
|
// التكرار عبر جميع المجموعات الممكنة
|
|
for ($i = 1; $i < $totalCombinations; $i++) {
|
|
$combination = [];
|
|
for ($j = 0; $j < $count; $j++) {
|
|
if ($i & (1 << $j)) {
|
|
$combination[] = $array[$j];
|
|
}
|
|
}
|
|
if (array_sum_values($combination, 'value') == $target) {
|
|
$results[] = $combination;
|
|
}
|
|
}
|
|
|
|
return $results;
|
|
}
|
|
|
|
// استدعاء الدالة للحصول على المجموعات
|
|
$combinations = generate_combinations($rows, $target_sum);
|
|
|
|
// عرض النتائج
|
|
foreach ($combinations as $combination) {
|
|
echo "Combination:\n";
|
|
foreach ($combination as $item) {
|
|
echo "ID: " . $item['id'] . " - Value: " . $item['pay'] . "\n";
|
|
}
|
|
echo "\n";
|
|
}
|
|
} catch (PDOException $e) {
|
|
echo "Error: " . $e->getMessage();
|
|
}
|
|
?>
|