嵌套 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的訪問被拒絕)
主站蜘蛛池模板:
日韩欧美网
|
a级性视频 |
欧美日韩1区2区3区
欧美久久一区
|
草草影院ccyy |
亚洲精品乱码久久久久久9色
|
成人水多啪啪片
|
欧美日韩久久精品
|
色吊丝在线
|
日韩电影一区二区三区
|
国产精品国产a级
|
久久精品一区二区三区四区
|
91精品国产综合久久久久
|
伊人在线 |
小h片免费观看久久久久
|
亚洲精品av在线
|
欧美午夜一区
|
91操操操
|
国产亚洲一区二区三区
|
中文字幕电影在线观看
|
国产在视频一区二区三区吞精
|
午夜欧美a级理论片915影院
|
久久草在线视频
|
亚洲免费婷婷
|
欧洲精品在线观看
|
一区二区三区在线免费
|
日韩一区中文字幕
|
91新视频 |
国产精品亚洲精品
|
男人天堂网站
|
看黄在线
|
亚洲欧洲精品一区
|
欧美午夜精品久久久久久浪潮
|
国产最新视频在线
|
国产视频一区二区三区四区五区
|
国产精品视频一二三区
|
夜久久 |
国产高清精品一区二区三区
|
亚洲色图在线观看
|
二区av
|
夜夜爆操
|
99精品视频免费观看
|