嵌套 while 循環只運行一次
2023-09-20
php問題
html5模板網
Nested while loop runs only once(嵌套 while 循環只運行一次)
本文介紹了嵌套 while 循環只運行一次的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
嵌套的while "循環只運行一次,只顯示一個 div,找不到任何錯誤,0 個錯誤在error_log ".歡迎提出建議.
我需要第二個 sql 連接,因為 $connectToStore 使 mysqli 連接到單獨的數據庫.
$items 看起來像 1-2,2-5,9-1
我已經檢查過,顯示的 div 使用了表格第一行中的數據
PHP
include("connect.php");$sql = "SELECT * FROM sp_tickets WHERE user_id='foo'";$sqlresult = mysqli_query($connect, $sql);如果 (mysqli_num_rows($sqlresult) > 0) {而 ($row = mysqli_fetch_array($sqlresult)) {$sqlStore = "SELECT * FROM transactions WHERE order_id='".$row['order_id']."'";$connectToStore = mysqli_connect("localhost", "root", "root", "root_db");$sqlStoreDBResult = mysqli_query($connectToStore, $sqlStore);而 ($rowTr = mysqli_fetch_array($sqlStoreDBResult)) {$id_str_array = $rowTr['items'];$id_str_array = rtrim($id_str_array, ",");$id_str_array =explode(',', $id_str_array);foreach ($id_str_array as $key => $value) {$id_quantity_pair = expand("-", $value);//使用連字符(-) 作為分隔符將產品 ID 與其數量分開$product_id = $id_quantity_pair[0];//獲取產品ID$sqlProduct = "SELECT * FROM products WHERE id='$product_id'";$sqlresult = mysqli_query($connectToStore, $sqlProduct);而 ($pp_row = mysqli_fetch_array($sqlresult)) {$tickets .='<div data-ticket="' . $ticket . '" class="ticket"><div class="ticket-left"><span class="product-ticket left-span">'.$pp_row['product_name'] .' ' .$pp_row['product_platform'] .' ' .$pp_row['product_type'] .' ' .$pp_row['product_region'] .'</span><span class="ticket-no left-span">票號' .$row['ticket_id'] .'</span><span class="order-no left-span">訂單號' .$row['order_id'] .'</span><span class="left-span">交易號' .$rowTr['txn_id'] .'</span><span class="product-region left-span">區域:' .$pp_row['product_region'] .'</span>
<div class="ticket-right"><span class="created">Created: ' .$row['date'] .'</span>
<div class="ticket-bottom"><div class="bottom-holder"><span class="details"><span class="subject-txt">類別:</span>'.$row['category'] .'</span><span class="details"><span class="subject-txt">主題:</span>'.$row['subject'] .'</span><span class="details desc">"' . $row['description'] . '"</span>
<div class="removeticketcontainer"><span class="removeticket">X</span>
';}}}}}
解決方案
解決了.答案屬于 @ckimbrell .問題看起來像是您正在用僅返回 1 行的新結果覆蓋變量 $sqlresult.嘗試在嵌套循環中更改它."
include("connect.php");$sql = "SELECT * FROM sp_tickets WHERE user_id='foo'";$sqlresult = mysqli_query($connect, $sql);$connectToStore = mysqli_connect("localhost", "root", "root", "root_db");如果 (mysqli_num_rows($sqlresult) > 0) {而 ($row = mysqli_fetch_array($sqlresult)) {$sqlStore = "SELECT * FROM transactions WHERE order_id='".$row['order_id']."'";$sqlStoreDBResult = mysqli_query($connectToStore, $sqlStore);而 ($rowTr = mysqli_fetch_array($sqlStoreDBResult)) {$id_str_array = $rowTr['items'];$id_str_array = rtrim($id_str_array, ",");$id_str_array =explode(',', $id_str_array);foreach ($id_str_array as $key => $value) {$id_quantity_pair = expand("-", $value);//使用連字符(-) 作為分隔符將產品 ID 與其數量分開$product_id = $id_quantity_pair[0];//獲取產品ID$sqlProduct = "SELECT * FROM products WHERE id='$product_id'";$sqlresult2 = mysqli_query($connectToStore, $sqlProduct);而 ($pp_row = mysqli_fetch_array($sqlresult2)) {$tickets .='<div data-ticket="' . $ticket . '" class="ticket"><div class="ticket-left"><span class="product-ticket left-span">'.$pp_row['product_name'] .' ' .$pp_row['product_platform'] .' ' .$pp_row['product_type'] .' ' .$pp_row['product_region'] .'</span><span class="ticket-no left-span">票號' .$row['ticket_id'] .'</span><span class="order-no left-span">訂單號' .$row['order_id'] .'</span><span class="left-span">交易號' .$rowTr['txn_id'] .'</span><span class="product-region left-span">區域:' .$pp_row['product_region'] .'</span>
<div class="ticket-right"><span class="created">Created: ' .$row['date'] .'</span>
<div class="ticket-bottom"><div class="bottom-holder"><span class="details"><span class="subject-txt">類別:</span>'.$row['category'] .'</span><span class="details"><span class="subject-txt">主題:</span>'.$row['subject'] .'</span><span class="details desc">"' . $row['description'] . '"</span>
<div class="removeticketcontainer"><span class="removeticket">X</span>
';}}}}}
Nested "while " loop runs only one time, only one div is displayed, can't find any mistakes, 0 errors in "error_log ". Feel free to suggest.
I need second sql connection, because $connectToStore makes mysqli connection with separate database.
$items looks like 1-2,2-5,9-1
I've checked and div that's displayed uses data which is in the first row of the table
PHP
include("connect.php");
$sql = "SELECT * FROM sp_tickets WHERE user_id='foo'";
$sqlresult = mysqli_query($connect, $sql);
if (mysqli_num_rows($sqlresult) > 0) {
while ($row = mysqli_fetch_array($sqlresult)) {
$sqlStore = "SELECT * FROM transactions WHERE order_id='".$row['order_id']."'";
$connectToStore = mysqli_connect("localhost", "root", "root", "root_db");
$sqlStoreDBResult = mysqli_query($connectToStore, $sqlStore);
while ($rowTr = mysqli_fetch_array($sqlStoreDBResult)) {
$id_str_array = $rowTr['items'];
$id_str_array = rtrim($id_str_array, ",");
$id_str_array = explode(',', $id_str_array);
foreach ($id_str_array as $key => $value) {
$id_quantity_pair = explode("-", $value); // Uses Hyphen(-) as delimiter to separate product ID from its quantity
$product_id = $id_quantity_pair[0]; // Get the product ID
$sqlProduct = "SELECT * FROM products WHERE id='$product_id'";
$sqlresult = mysqli_query($connectToStore, $sqlProduct);
while ($pp_row = mysqli_fetch_array($sqlresult)) {
$tickets .= '<div class="holder">
<div data-ticket="' . $ticket . '" class="ticket">
<div class="ticket-left">
<span class="product-ticket left-span">' . $pp_row['product_name'] . ' ' . $pp_row['product_platform'] . ' ' . $pp_row['product_type'] . ' ' . $pp_row['product_region'] . '</span>
<span class="ticket-no left-span">Ticket No. ' . $row['ticket_id'] . '</span>
<span class="order-no left-span">Order No. ' . $row['order_id'] . '</span>
<span class="left-span">Transaction No. ' . $rowTr['txn_id'] . '</span>
<span class="product-region left-span">Region: ' . $pp_row['product_region'] . '</span>
</div>
<div class="ticket-right">
<span class="created">Created: ' . $row['date'] . '</span>
</div>
<div class="ticket-bottom">
<div class="bottom-holder">
<span class="details"><span class="subject-txt">Category: </span>' . $row['category'] . '</span>
<span class="details"><span class="subject-txt">Subject: </span>' . $row['subject'] . '</span>
<span class="details desc">"' . $row['description'] . '"</span>
</div>
</div>
</div>
<div class="removeticketcontainer">
<span class="removeticket">X</span>
</div>
</div>';
}
}
}
}
}
解決方案
Solved it. Answer belongs to @ckimbrell . "The problem looks like you are overwriting the variable $sqlresult with a new result that only returns 1 row. Try to change that in the nested loop."
include("connect.php");
$sql = "SELECT * FROM sp_tickets WHERE user_id='foo'";
$sqlresult = mysqli_query($connect, $sql);
$connectToStore = mysqli_connect("localhost", "root", "root", "root_db");
if (mysqli_num_rows($sqlresult) > 0) {
while ($row = mysqli_fetch_array($sqlresult)) {
$sqlStore = "SELECT * FROM transactions WHERE order_id='".$row['order_id']."'";
$sqlStoreDBResult = mysqli_query($connectToStore, $sqlStore);
while ($rowTr = mysqli_fetch_array($sqlStoreDBResult)) {
$id_str_array = $rowTr['items'];
$id_str_array = rtrim($id_str_array, ",");
$id_str_array = explode(',', $id_str_array);
foreach ($id_str_array as $key => $value) {
$id_quantity_pair = explode("-", $value); // Uses Hyphen(-) as delimiter to separate product ID from its quantity
$product_id = $id_quantity_pair[0]; // Get the product ID
$sqlProduct = "SELECT * FROM products WHERE id='$product_id'";
$sqlresult2 = mysqli_query($connectToStore, $sqlProduct);
while ($pp_row = mysqli_fetch_array($sqlresult2)) {
$tickets .= '<div class="holder">
<div data-ticket="' . $ticket . '" class="ticket">
<div class="ticket-left">
<span class="product-ticket left-span">' . $pp_row['product_name'] . ' ' . $pp_row['product_platform'] . ' ' . $pp_row['product_type'] . ' ' . $pp_row['product_region'] . '</span>
<span class="ticket-no left-span">Ticket No. ' . $row['ticket_id'] . '</span>
<span class="order-no left-span">Order No. ' . $row['order_id'] . '</span>
<span class="left-span">Transaction No. ' . $rowTr['txn_id'] . '</span>
<span class="product-region left-span">Region: ' . $pp_row['product_region'] . '</span>
</div>
<div class="ticket-right">
<span class="created">Created: ' . $row['date'] . '</span>
</div>
<div class="ticket-bottom">
<div class="bottom-holder">
<span class="details"><span class="subject-txt">Category: </span>' . $row['category'] . '</span>
<span class="details"><span class="subject-txt">Subject: </span>' . $row['subject'] . '</span>
<span class="details desc">"' . $row['description'] . '"</span>
</div>
</div>
</div>
<div class="removeticketcontainer">
<span class="removeticket">X</span>
</div>
</div>';
}
}
}
}
}
這篇關于嵌套 while 循環只運行一次的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!
相關文檔推薦
MySQLi prepared statement amp; foreach loop(MySQLi準備好的語句amp;foreach 循環)
Is mysqli_insert_id() gets record from whole server or from same user?(mysqli_insert_id() 是從整個服務器還是從同一用戶獲取記錄?)
PHP MySQLi doesn#39;t recognize login info(PHP MySQLi 無法識別登錄信息)
mysqli_select_db() expects exactly 2 parameters(mysqli_select_db() 需要 2 個參數)
Php mysql pdo query: fill up variable with query result(Php mysql pdo 查詢:用查詢結果填充變量)
MySQLI 28000/1045 Access denied for user #39;root#39;@#39;localhost#39;(MySQLI 28000/1045 用戶“root@“localhost的訪問被拒絕)
主站蜘蛛池模板:
深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板
|
砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂
|
升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】
|
微型驱动系统解决方案-深圳市兆威机电股份有限公司
|
超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司
|
脱硝喷枪-氨水喷枪-尿素喷枪-河北思凯淋环保科技有限公司
|
上海噪音治理公司-专业隔音降噪公司-中广通环保
|
碳纤维布-植筋胶-灌缝胶-固特嘉加固材料公司
|
盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司
|
全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器
|
杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司
|
德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏
|
纳米二氧化硅,白炭黑,阴离子乳化剂-臻丽拾科技
|
抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司
|
医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司
|
上海办公室装修,写字楼装修—启鸣装饰设计工程有限公司
|
托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科
|
上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训
|
全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司
|
硫化罐-胶管硫化罐-山东鑫泰鑫智能装备有限公司
|
山东齐鲁漆业有限公司【官网】-工业漆专业生产厂家
|
德州万泰装饰 - 万泰装饰装修设计软装家居馆
|
济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司
|
pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司
|
金刚网,金刚网窗纱,不锈钢网,金刚网厂家- 河北萨邦丝网制品有限公司
|
冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司
|
快速卷帘门_硬质快速卷帘门-西朗门业 |
汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司
|
硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司
|
垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司
|
深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】
|
上海质量认证办理中心 |
北京网站建设|北京网站开发|北京网站设计|高端做网站公司
|
沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家
|
莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司
|
东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸
|
液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司
行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家
|
流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司
|
BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司
|
★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App
|
气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司
|