[英]Separate mysqli results with foreach rows
好的,所以我目前正在嘗試設置一個腳本,該腳本將在每月的1日作為cron作業運行。
它用於我正在構建的物業管理系統。 每個屬性的費用都存儲在MySQL數據庫中。
我需要的是腳本要遍歷每個塊並找到單個費用,然后將它們創建為單個發票條目。 這有點漫長,但對我們有用。
更新的代碼:
<?php
require_once("lib/common.php");
$sql = "SELECT id,service_charge,utility_charge,ground_rent,insurance,communalcleaning,maintenance FROM blocks GROUP BY id";
$rs = $conn->query($sql);
while($r = $rs->fetch_assoc()){
foreach($r as $key=>$value) {
$blkid = $r['id'];
$invid = time();
$date = date('Y-m-d');
switch($key) {
case "service_charge":
$type = "Service Charge";
break;
case "utility_charge":
$type = "Utility Charge";
break;
case "ground_rent":
$type = "Ground Rent";
break;
case "insurance":
$type = "Insurance";
break;
case "communalcleaning":
$type = "Communal Cleaning";
break;
case "maintenance":
$type = "Maintenance";
$ins2 = "INSERT INTO incomings (id,block_id,amount,date) VALUES ('','$blkid','$value','$date')";
$conn->query($ins2);
break;
}
$ins = "INSERT INTO invoices(id,invoice_id,block_id,entry_description,entry_amount,entry_date) VALUES('','$invid','$blkid','$type','$value','$date')";
$conn->query($ins);
}
}
?>
**編輯**
好的,所以我現在將代碼編輯為更加明智的解決方案。 問題仍然存在,我需要為從blocks
表中提取的每個“ block_id”創建新的$invid
。
當前為兩個塊產生相同的$invid
。 它將按預期分隔所有$key=>$value
,只是不分割發票。
我希望我已經解釋得足夠好了! 如有任何疑問,請務必提出!
提前致謝。
您正在將$invid
設置$invid
time()
,它精確到秒。 計算機比這快得多,因此$invid
將在循環中重復設置為相同的數字。 通常的方法是在MySQL中使用自動遞增列,因此它將自行處理為id
列插入遞增數字。 固定表格的方法如下:
ALTER TABLE `invoices` CHANGE `id` `id` INT(11) NOT NULL AUTO_INCREMENT;
之后,調整您的PHP代碼,使其甚至不嘗試為id插入值。 刪除$invid
變量,然后從INSERT
語句的列和值列表中除去id列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.