Php 阵列循环内的显示阵列
我在一个项目上工作,在那里我有发票、报价表和更多的表格 我被困在这里- 我正在将引号的值作为n数组保存到表中。例如:- 如果选择了两个服务,那么它将以如下方式保存:Service1、service2 同样,其数量和费用的节省方式相同: Sqty : 1,1 然后在下表中显示输出- tbl_service_info是我的表,其中包含服务的所有详细信息Php 阵列循环内的显示阵列,php,mysql,arrays,loops,Php,Mysql,Arrays,Loops,我在一个项目上工作,在那里我有发票、报价表和更多的表格 我被困在这里- 我正在将引号的值作为n数组保存到表中。例如:- 如果选择了两个服务,那么它将以如下方式保存:Service1、service2 同样,其数量和费用的节省方式相同: Sqty : 1,1 然后在下表中显示输出- tbl_service_info是我的表,其中包含服务的所有详细信息 <?php foreach ($_POST['service'] as $key => $value) { $query=("se
<?php
foreach ($_POST['service'] as $key => $value) {
$query=("select * from tbl_service_info WHERE sname = '$value'");
$result=mysql_query($query) or die ("Unable to Make the Query:" . mysql_error() );
while($row=mysql_fetch_array($result)){
$product = @$row["sname"];
$prid = @$row["id"];
$sdetails = @$row["details"];
?>
<tr class="item-row">
<td class="item-name"><div class="delete-wpr">
<textarea name="services[]"><?php echo $value ; ?></textarea></div></td>
<td class="description"><textarea><?php echo $sdetails; ?></textarea></td>
<td><textarea class="description"><?php echo $sunit; ?></textarea></td>
<?php }
$scharge1 = explode(",",$scharge);
foreach ($scharge1 as $keysc => $valuesc) { ?>
<td><textarea class="cost" name="scharge[]"> <?php
echo $valuesc;?> </textarea> </td> <?php } ?>
<?php
$sqty1 = explode(",",$sqty);
foreach ($sqty1 as $key2 => $value2) { ?>
<td><textarea class="qty" name="snos[]"><?php echo $value2;?></textarea></td>
<?php } ?>
<td><span class="price"></span></td>
</tr>
<?php } ?>
在我的评论之后,这里是在您的案例中应该有效的解决方法
可以使用临时值来回显分解字符串的正确部分($charge)
$i=0;
while($row=mysql\u fetch\u数组($result)){
//代码的其余部分
$scharge1=爆炸(“,”,$scharge);
//删除该foreach($scharge1as$keysc=>$valuesc){?>
//代码的其余部分,也更改NOS部分
//在while循环结束之前,增加$i
++$i;
}
您发布的图像似乎没有显示任何内容?没有显示任何内容?Product1(喘息)的单位成本为100,应在单位成本下,然后是product2(纹理绘制)单位成本为300,属于产品2的单位成本。相反,循环正在创建新的,导致重复…$charge的内容是什么?@ClémentMalet:$scharge=100,300@user1299086好的,那么我会说您的数据库模型似乎是错误的。您在一个不同产品的行中有其他产品的值我们可以很容易地为您提供一个解决方案,让此代码正常工作,但您最好重新编写数据库(或至少查询),因此在一行中,您只有相关行的值。谢谢您的回答。但它不起作用。它只是显示数组的第一个值。@user1299086是否在while循环结束时添加了+$i;
?正是该值改变了要显示的分解$charge的部分。内部循环在之后丢失explode and until++i
@ring0:能否请您详细解释缺少哪个循环以及如何添加它?
$qdetails = mysql_query("SELECT * FROM tbl_quotation WHERE id ='$qid';")
or die(mysql_error());
$qdet = mysql_fetch_array( $qdetails );
$pcharge = $qdet['pcharge'];
$scharge = $qdet['scharge'];
$pqty = $qdet['pqty'];
$sqty = $qdet['sqty'];
<?php
foreach ($_POST['service'] as $key => $value) {
$query=("select * from tbl_service_info WHERE sname = '$value'");
$result=mysql_query($query) or die ("Unable to Make the Query:" . mysql_error() );
while($row=mysql_fetch_array($result)){
$product = @$row["sname"];
$prid = @$row["id"];
$sdetails = @$row["details"];
?>
<tr class="item-row">
<td class="item-name"><div class="delete-wpr">
<textarea name="services[]"><?php echo $value ; ?></textarea></div></td>
<td class="description"><textarea><?php echo $sdetails; ?></textarea></td>
<td><textarea class="description"><?php echo $sunit; ?></textarea></td>
<?php }
$scharge1 = explode(",",$scharge);
foreach ($scharge1 as $keysc => $valuesc) { ?>
<td><textarea class="cost" name="scharge[]"> <?php
echo $valuesc;?> </textarea> </td> <?php } ?>
<?php
$sqty1 = explode(",",$sqty);
foreach ($sqty1 as $key2 => $value2) { ?>
<td><textarea class="qty" name="snos[]"><?php echo $value2;?></textarea></td>
<?php } ?>
<td><span class="price"></span></td>
</tr>
<?php } ?>
$i = 0;
while($row=mysql_fetch_array($result)){
// Rest of your code
$scharge1 = explode(",",$scharge);
// Remove that foreach ($scharge1 as $keysc => $valuesc) { ?>
<td><textarea class="cost" name="scharge[]">
<?php echo $scharge1[$i];?>
</textarea></td>
// Rest of your code, also change the NOS part
// Before the very end of your while loop, increment $i
++$i;
}