2016-07-31 34 views
-3

我在用電子發票創建一個POS,因爲發票號碼將從1開始,並且顯示發票號碼是醜陋的:1我想要構建某些內容以將00000添加爲前綴這根據mysql ID號碼添加Echo 0000前綴

$lastinvoice = mysqli_query($db, "SELECT * FROM `sales` 
    order by `id` DESC LIMIT 1"); 
$last_invoice = mysqli_fetch_assoc($lastinvoice); 
$invoice = $last_invoice['id']+1; 

建設前綴

$prefix=if (($invoice)<10){echo '0000000'}; 
elseif (($invoice)<100){echo '000000'}; 
elseif (($invoice)<1000){echo '00000'}; 
elseif (($invoice)<10000){echo '0000'}; 
elseif (($invoice)<100000){echo '000'}; 
elseif (($invoice)<1000000){echo '00'}; 
elseif (($invoice)<10000000){echo '0'}; 

現在,在HTML表單我提出一個隱藏的輸入這樣

<input type="hidden" name="set_invoice" 
    value="<?php echo "$prefix$invoice"?>"> 

我得到錯誤與建設的前綴,它不是很好,但因爲我是新來的PHP我只是不知道該怎麼做...

任何想法?

的錯誤是

PARSE ERROR: SYNTAX ERROR, UNEXPECTED 'IF' (T_IF) IN /HOME/LOCAL/PUBLIC_HTML/*******/SALES.PHP ON LINE 6

和Dreamweaver標誌着所有的建造$前綴壞編碼

不重複的

這不是一個重複的問題。我需要的不僅是前導零,而且要檢查最後一張發票,並根據這個規則應用零數量,並且由某人發佈的「重複」鏈接不會解決問題,因爲它不是同一種問題。

+0

一些測試: https://eval.in/614556](https://eval.in/614556) – FirstOne

+0

首先它不是重複的,第二我編輯與我得到的錯誤的問題。我需要的不僅是前導零,而且還要檢查最後一張發票,並按照這種方式應用零金額 – Liberator

+0

「重複」中發佈的答案不能解決我的問題,甚至不是同一類問題或問題 – Liberator

回答

1

如果你想在8發票號碼,你可以這樣做:

$invoice = sprintf("%08d", $invoice); 

如果$發票是12,它會是00000012

併爲下一個AUTO_INCREMENT:

<?php 
$req = $bdd->query("SHOW TABLE STATUS FROM table_name LIKE 'table_name' "); 
$donnees = $req->fetch(); 
echo $donnees['Auto_increment']; 
?> 
+0

我會試一試,因爲你的代碼更短 – Liberator

+0

它比你的系統更短,更好;) – Amazone

+0

工作完美,非常感謝 – Liberator

-1

對於那些尋找一個類似的解決方案,我發現它自己

$lastinvoice=mysqli_query($db, "SELECT * FROM `sales` 
order by `id` DESC LIMIT 1"); 
$last_invoice=mysqli_fetch_assoc($lastinvoice); 

然後我們建立前綴

$invoice=$last_invoice['id']+1; 
if ($invoice <'10'){$invoice = "0000000$folio";} 
elseif ($invoice <'100'){$invoice = "000000$invoice";} 
elseif ($invoice <'1000'){$invoice = "00000$invoice";} 
elseif ($invoice <'10000'){$invoice = "0000$invoice";} 
elseif ($invoice <'100000'){$invoice = "000$invoice";} 
elseif ($invoice <'1000000'){$invoice = "00$invoice";} 
elseif ($invoice <'10000000'){$invoice = "0$invoice";} 
elseif ($invoice <'100000000'){$invoice = "$invoice";} 

而在去年,我們設置的輸入隱藏或文字等這樣

<input type="hidden" name="set_invoice" 
value="<?php echo "$invoice"?>"> 

無需併發症或閱讀了大量的unussefull東西

+0

它工作如此完美以至於我無法相信我自己做了,也許是一種錯誤的方式來做到這一點,但它的工作 – Liberator