2016-02-13 205 views
0

您好,我正在嘗試爲我的一位朋友構建一個Web應用程序,以幫助她進行業務。該應用程序的目的是幫助她監控她的小蛋糕店的存放單位數量(或者監視她麪包中剩下多少袋麪粉,雞蛋和黃油杯)。爲此,我爲她做了一個表格。看:我想避免重複代碼

<tr> <form method="POST" action="makeprod.php"> 
<td>Prodname</td> 
<td> <input type="text" name="prodname"></td> 
</tr> 
<tr> 
<td>Quantity</td> 
<td> <input type="int" name="quantity"></td> 
</tr> 
<tr> 
<td>Recipe 1: </td> 
<td> 
<?php 
$connection = mysql_connect('localhost', 'root', ''); 
mysql_select_db('inventory system'); 

$sql = "SELECT itemname FROM inventory"; 
$result = mysql_query($sql); 

echo "<select name='recipe1'>"; 

while ($row = mysql_fetch_array($result)){ 
echo "<option value = ' ". $row ['itemname'] ."'>".$row['itemname']."</option>";  
      } 
echo "</select>"; 
?> 
</td> 
<td>Qty</td> 
<td> <input type="int" name="rec1qty"></td> 
</tr> 
<tr> 
<td>Recipe 2: </td> 
<td> 
<?php 
$connection = mysql_connect('localhost', 'root', ''); 
mysql_select_db('inventory system'); 

$sql = "SELECT itemname FROM inventory"; 
$result = mysql_query($sql); 

echo "<select name='recipe2'>"; 

while ($row = mysql_fetch_array($result)){ 
echo "<option value = ' ". $row ['itemname'] ."' >".$row['itemname']."</option>"; 
      } 
echo "</select>"; 
?> 
</td> 
<td>Qty</td> 
<td> <input type="int" name="rec2qty"></td> 
</tr> 
<tr> 
<td>Recipe 3: </td> 
<td> 
<?php 
$connection = mysql_connect('localhost', 'root', ''); 
mysql_select_db('inventory system'); 

$sql = "SELECT itemname FROM inventory"; 
$result = mysql_query($sql); 
echo "<select name='recipe3'>"; 

while ($row = mysql_fetch_array($result)){ 
echo "<option value = ' ". $row ['itemname'] ."'>".$row['itemname']."</option>";     
      } 
echo "</select>"; 
?> 
</td> 
<td>Qty</td> 
<td> <input type="int" name="rec3qty"></td> 
</tr> 
<tr> 
<td>Recipe 4: </td> 
<td> 
<?php 
$connection = mysql_connect('localhost', 'root', ''); 
mysql_select_db('inventory system'); 

$sql = "SELECT itemname FROM inventory"; 
$result = mysql_query($sql); 
echo "<select name='recipe4'>"; 

while ($row = mysql_fetch_array($result)){ 
echo "<option value = ' ". $row ['itemname'] ."' >".$row['itemname']."</option>"; 
} 
echo "</select>"; 
?> 
</td> 
<td>Qty</td> 
<td> <input type="int" name="rec4qty"></td> 
</tr> 
<tr> 
<td>Recipe 5: </td> 
<td> 
<?php 
$connection = mysql_connect('localhost', 'root', ''); 
mysql_select_db('inventory system'); 

$sql = "SELECT itemname FROM inventory"; 
$result = mysql_query($sql); 
echo "<select name='recipe5'>"; 

while ($row = mysql_fetch_array($result)){ 
echo "<option value = ' ". $row ['itemname'] ."' >".$row['itemname']."</option>";       ['itemname']."</option>"; 
} 
echo "</select>"; 
?> 
</td> 
<td>Qty</td> 
<td> <input type="int" name="rec5qty"></td> 
</tr> 


<tr> 
<td><input id="button" type="submit" name="submit" value="submit"></td> 
</tr> 



</form> 
</table> 

我試圖以這種形式做的是提醒她錄製的產品/糕點她製作,數量並註明配方/庫存,這將花費她作出這樣的產品在數量所以它會減少我命名爲「庫存」的數據庫表中的這些配方(但這是針對另一個故事)。

我的問題是,我不能確定她會需要多少成分,使一個單一的產品和重複選擇選項爲配方5或10倍,似乎使我的代碼看起來太骯髒,它似乎並不喜歡高效。我想要的是一個代碼,它將幫助我只顯示她在表單中需要的選擇選項的數量。所以如果她製作的產品只有6種不同的配料,那麼只應該顯示6種選擇選項。如果爲3,則只有3個。 如果我沒有從上面重複此代碼,使我的代碼ATLEAST有點清潔這將有助於:

<td>Recipe 1: </td> 
<td> 
<?php 
$connection = mysql_connect('localhost', 'root', ''); 
mysql_select_db('inventory system'); 

$sql = "SELECT itemname FROM inventory"; 
$result = mysql_query($sql); 

echo "<select name='recipe1'>"; 

while ($row = mysql_fetch_array($result)){ 
echo "<option value = ' ". $row ['itemname'] ."' >".$row['itemname']."</option>";      
} 
echo "</select>"; 
?> 

我是相當新的PHP和不知道Javascript還沒有,所以我寧願HTML/PHP格式的解決方案,但JS也足夠了。謝謝。

+0

的項目必須有一個規範......創建一個表......例如'ItemSpecification'具有itemID'的'列,'成分表'......這將解決你的問題......在你的物品維護中,如果你添加一個項目,你只需要選擇創建該項目所需要的成分,那麼必須有一份成分列表... –

回答

0

按你的問題的標題,你在你的代碼的SQL連接的重複代碼。通過添加單個連接文件來避免它。創建connection.php並在其中添加下面的代碼。

<?php 
$connection = mysql_connect('localhost', 'root', ''); 
mysql_select_db('inventory system'); 
?> 

,包括您在本頁面工作將此文件作爲

include "connection.php";