phpにはストアドプロシージャを使用する2つのメニューがあります。Menu1とMenu2という名前を付けましょう。これはMenu1のコードです。これはMenu2のコードでもあります。
<?php
$sql=$mysqli->query("call selectproducts()");
$i=1;
while($row=mysqli_fetch_array($sql)){
$id=$row['prodid'];
$date=$row['prodname'];
$item=$row['proddescription'];
$qtyleft=$row['prodsupplier'];
$qty_sold=$row['proddate'];
$price=$row['prodprice'];
$sales=$row['prodquantity'];
if($i%2){
?>
<tr id="<?php echo $id; ?>" class="edit_tr">
<?php } else { ?>
<tr id="<?php echo $id; ?>" bgcolor="#f2f2f2" class="edit_tr">
<?php } ?>
<td class="edit_td">
<span class="text"><?php echo $date; ?></span>
</td>
<td>
<span class="text"><?php echo $item; ?></span>
</td>
<td>
<span class="text"><?php echo $qtyleft; ?></span>
</td>
<td>
<span id="last_<?php echo $id; ?>" class="text">
<?php
echo $qty_sold;
?>
</span>
<input type="text" value="<?php echo $rtrt; ?>" class="editbox" id="last_input_<?php echo $id; ?>"/>
</td>
<td>
<span id="first_<?php echo $id; ?>" class="text"><?php echo $price; ?></span>
<input type="text" value="<?php echo $price; ?>" class="editbox" id="first_input_<?php echo $id; ?>" />
</td>
<td>
<span class="text"><?php echo $dailysales; ?>
<?php
echo $sales;
?>
</span>
</td>
</tr>
<?php
$i++;
}
?>
私の問題は、ストアドプロシージャを呼び出すMenu1
と機能しますが、Menu2
エラーが発生することです。
私の調査によると、ストアドプロシージャを順番に呼び出しているため、このコードでエラーが発生する可能性があります。
このコードを変更して、ストアドプロシージャを2回呼び出すことができるようにするにはどうすればよいですか?私はこれと本当に混乱しています。最初の実行後、ストアドプロシージャを再度呼び出す前に、ストアドプロシージャを閉じる必要があるようです。私は本当にこれを行う方法がわかりません。