sách gpt4 ăn đã đi

php - 循环到子级的 FINITIE 深度

In lại Tác giả: Walker 123 更新时间:2023-11-29 13:28:11 27 4
mua khóa gpt4 giày nike

我正在制作一个图片库,需要一些循环类别方面的帮助。下一个深度是图库配置文件中的已知设置,因此这不是关于无限深度循环的问题,而是循环已知深度并输出所有结果的最有效方法。

本质上,我想创建一个 包含系统中定义的所有类别的框,包括子、孙等。

类别存储在数据库中,如下所示(还有其他字段,但它们不相关):

+----+--------+--------------+
| id | parent | name |
+----+--------+--------------+
| 1 | 0 | Parent 1 |
| 2 | 1 | Child Lvl 1 |
| 3 | 2 | Child Lvl 2 |
| 4 | 0 | Parent 2 |
+----+--------+--------------+

任何具有 parent 的类别== 0 本身被视为顶级父级。正如我已经提到的,最大深度是已知的并且是预先确定的,所以我想输出如下所示的内容:

Parent 1
- Child Lvl 1
- Child Lvl 2
Parent 2

我原以为这是可能的 trong khi循环,但由于某种原因这会导致 PHP 进入无限循环。

这是我迄今为止尝试过的代码:

$sql = $_database->prepare("SELECT `id`, `name` FROM `".TBL_PREFIX."categories` WHERE `parent` = '0' ORDER BY `name` ASC");
$sql->execute();
while($cat = $sql->fetchObject())
{
$html.= "\n\t".'
$html.= (array_key_exists('selected_val', $options) && $options['selected_val'] == $cat->id) ? ' selected="selected"' : '';
$html.= (array_key_exists('disabled_vals', $options) && in_array('', $options['disabled_vals'])) ? ' disabled="disabled"' : '';
$html.= '>'.$cat->name.'';

$childSql = $_database->prepare("SELECT COUNT(*) AS `total` FROM `".TBL_PREFIX."categories` WHERE `parent` = :parent");
$childSql->execute(array(':parent' => $cat->id));

$numChildren = $childSql->fetchObject();
$numChildren = $numChildren->total;
$parentId = $cat->id;

while($numChildren > 0)
{
for($i = 0; $i < (MAX_CAT_DEPTH - 1); $i++)
{
$children = $_database->prepare("SELECT `id`, `name` FROM `catgeories` WHERE `parent` = :parent ORDER BY `name` ASC");
$children->execute(array(':parent' => $parentId));

while($child = $children->fetchObject())
{
$html.= "\n\t".'
$html.= (array_key_exists('selected_val', $options) && $options['selected_val'] == $child->id) ? ' selected="selected"' : '';
$html.= (array_key_exists('disabled_vals', $options) && in_array('', $options['disabled_vals'])) ? ' disabled="disabled"' : '';
$html.= '>'.$child->name.'';

$parentId = $child->id;

$childSql = $_database->prepare("SELECT COUNT(*) AS `total` FROM `".TBL_PREFIX."categories` WHERE `parent` = :parent");
$childSql->execute(array(':parent' => $parentId));
$numChildren = $childSql->fetchObject();
$numChildren = $numChildren->total;
}
}
}
}

任何人都可以建议正确的方式来解决这个问题。我不想过多地使用数据库结构,因为我相信我已经拥有的数据库结构足以满足这里的要求 - 这不是一个像其他问题一样关于无限深度的问题。

câu trả lời hay nhất

丑陋地尝试使用 mptt 算法来避免递归语句。 Zebra MPTT 这是一个很好的解决方案。 Gedmo 树更好。

关于php - 循环到子级的 FINITIE 深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19847038/

27 4 0
  • php - Cần tư vấn chỉnh sửa php qua php

    Mình có file cấu hình viết bằng PHP như hình bên dưới nên muốn sử dụng PHP để phát triển một giao diện (interface), có thể chỉnh sửa các giá trị file như $WEBPATH, $ACCOUNTPATH ​​và const value (value) view

  • Không thể xuất bản "tệp PHP" PHP

    Tôi đang cố gắng tạo một trang đăng nhập để tìm hiểu PHP cơ bản, trước tiên tôi muốn tệp PHP độc lập của mình lưu trữ đầu vào của tệp HTML (có biểu mẫu), nhưng khi tôi nhấn một nút (kích hoạt POST cho tập lệnh PHP ) Tôi liên tục mắc phải sai lầm khó chịu. Tôi đã tìm kiếm S

  • Có chức năng in nào cho PHP tạo ra các biểu thức PHP hợp lệ không?

    Tôi đang tìm cách để PHP in một mảng tùy ý ở dạng mà tôi có thể đưa vào dưới dạng bài tập trong mã (kiểm tra) của mình. print_r tạo ra ví dụ: Array ( [0] => qsr-part:1285 [1]

  • Có giới hạn kích thước cho các khóa mảng PHP không? Những hạn chế chung của mảng PHP là gì?

    Câu hỏi này đã có câu trả lời: Đã đóng cửa 11 năm trước. Có thể trùng lặp: Kích thước khóa tối đa cho một mảng trong PHP là bao nhiêu? Như tiêu đề đã nói, tôi muốn biết

  • Có chức năng in nào cho PHP tạo ra các biểu thức PHP hợp lệ không?

    Tôi đang tìm cách để PHP in một mảng tùy ý ở dạng mà tôi có thể đưa vào dưới dạng bài tập trong mã (kiểm tra) của mình. print_r tạo ra ví dụ: Array ( [0] => qsr-part:1285 [1]

  • php - Cho phép hàm thực thi khi php làm mới (PHP)

    đóng cửa. Câu hỏi này cần được hỏi tập trung hơn. Câu trả lời không được chấp nhận vào thời điểm này. Bạn muốn cải thiện vấn đề này? Câu hỏi được cập nhật để chỉ tập trung vào một vấn đề chỉnh sửa bài đăng này. Đã đóng 9 năm trước. Cải thiện truy vấn này

  • php - Hiển thị menu theo khoảng thời gian PHP PHP MySQL

    Tôi có một bảng trong cơ sở dữ liệu MySQL lưu trữ các thực đơn do nhà hàng cung cấp vào mỗi ngày trong tuần và khoảng thời gian. Cấu trúc bảng như sau: i_type i_name i_cost i_day i_start i_

  • Gửi tham số tới PHP động được lồng trong trang PHP

    Tôi có hai trang. test1.php và test2.php. Tất cả những gì tôi muốn làm là nhấn gửi trên test1.php và hiển thị test2.php trong div. Điều này thực sự hoạt động tốt, nhưng tôi cần thêm

  • php - vùng văn bản -> php -> mysql -> php

    Tôi đã nhận được mã này. Tôi muốn cập nhật mysql qua vùng văn bản. Tôi đang lặp lại MySQL của mình trong một vùng văn bản nhưng tôi không biết cách cập nhật nó, tôi có nên đặt mọi thứ vào đó không vì chế độ _GET không mang lại cho tôi bất cứ thứ gì, tôi cũng đã thử _GET

  • Làm cách nào để phân tích một giá trị từ php này sang php khác

    Trước hết, tôi mới làm quen với php nên tôi vẫn đang cố gắng học hỏi. Tôi đã tạo một biểu mẫu trên Wordpress và tôi muốn chèn các giá trị vào một bảng (bảng data_test mà tôi đã quản lý) và sau đó lấy tất cả các cột (id

  • php - Tùy chọn bảo mật trong php, các hàm php để vệ sinh đầu vào

    Tôi có chức năng sau để lọc dữ liệu đầu vào từ người dùng hoặc URL: function SanitizeString($var) { $var=stripslashes($var);

  • Chuyển hướng đăng nhập HTML/PHP sang php

    Tôi có một trang html sử dụng tệp php để truy vấn cơ sở dữ liệu và sau đó cho phép người dùng đăng nhập hoặc từ chối quyền truy cập. Vấn đề tôi gặp phải là nó chỉ chuyển hướng đến url của tệp php và không bao giờ cung cấp phản hồi về những gì đang diễn ra. Đây là lần đầu tiên tôi sử dụng html,

  • Chức năng PHP onClick của PHP sau đó chuyển hướng

    Tôi có một trang chứa đầy các liên kết đến pdf và tôi muốn theo dõi những liên kết nào được nhấp vào. Tôi nghĩ tôi có thể làm điều gì đó như sau, nhưng tôi gặp phải một vấn đề: query($sql); if($result){

  • Có cách nào để phân tích cú pháp PHP từ một tệp được tải bằng mã PHP không?

    Tôi đang sử dụng mã để tải HTML/PHP từ tệp văn bản bên ngoài $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l

  • Xem sitemap của VNExpress