Tôi hy vọng ai đó có thể giúp đỡ.
Tôi chắc rằng nó chỉ là một điều đơn giản mà tôi không thể làm việc vì một số lý do.
Về cơ bản, tôi có một lớp xử lý tất cả các chức năng cơ sở dữ liệu của mình [kết nối, chọn, chèn, cập nhật].
Trong chức năng chọn, tôi đang trả về một mảng.
public function getAll[$table, $cols, $where, $limit, $order] {
// Set the query variables
if[$cols == ''] {
$cols = '*';
}
if[$where!=''] {
$where = ' WHERE '.$where;
}
if[$limit!= ''] {
$limit = ' LIMIT '.$limit;
}
if[$order!=''] {
$order = ' ORDER BY '.$order;
}
// Make the query string
$sql = 'SELECT '.$cols.' FROM '.$table.$where.$order.$limit;
//echo $sql;
// Set the query
$news_qry = mysql_query[$sql];
// Set the array
$rows = array[];
// Run a loop through the results
while[$item = mysql_fetch_object[$news_qry]]
{
// Add each row to an array.
$rows[] = $item;
}
return $rows;
}
Chức năng này đang hoạt động như tôi có thể in một mảng. Xem bên dưới:
Array [ [Gallery_id] => 1 [Gallery_Name] => Test [Gallery_FolderName] => Test Folder ]
Nhưng khi tôi đi sử dụng đối tượng -
$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
Trong vòng mỗi vòng [xem bên dưới] tôi chỉ nhận được chữ cái đầu tiên của kết quả từ cơ sở dữ liệu.
Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.
Thanks.
Vòng lặp foreach trong PHP là gì?
Vòng lặp foreach được sử dụng để đi qua các phần tử mảng. Nó chỉ hoạt động trên mảng và đối tượng. Nó sẽ đưa ra một lỗi nếu bạn cố gắng sử dụng nó với các biến của kiểu dữ liệu khác nhau. Các vòng lặp foreach hoạt động trên cơ sở các yếu tố thay vì chỉ mục. Nó cung cấp một cách dễ nhất để lặp lại các yếu tố của một mảng.
foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement
[Php 4, Php 5, Php 7, Php 8]
Cấu trúc foreach
cung cấp một cách dễ dàng để lặp lại các mảng. foreach
chỉ hoạt động trên các mảng và đối tượng và sẽ đưa ra lỗi khi bạn cố gắng sử dụng nó trên một biến với một loại dữ liệu khác hoặc một biến không chính xác. Có hai cú pháp:
Hình thức đầu tiên đi qua các điều đó được đưa ra bởi iterable_expression
. Trên mỗi lần lặp, giá trị của phần tử hiện tại được gán cho $value
.current[] and key[].
Biểu mẫu thứ hai sẽ chỉ định khóa của phần tử hiện tại cho biến
Array [ [Gallery_id] => 1 [Gallery_Name] => Test [Gallery_FolderName] => Test Folder ]
0 trên mỗi lần lặp. Lưu ý rằng foreach
không sửa đổi con trỏ mảng bên trong, được sử dụng bởi các hàm như dòng [] và key [].
Array [ [Gallery_id] => 1 [Gallery_Name] => Test [Gallery_FolderName] => Test Folder ]
3Có thể tùy chỉnh lặp đối tượng.
Để có thể sửa đổi trực tiếp các phần tử mảng trong vòng lặp đi trước $value
với &. Trong trường hợp đó, giá trị sẽ được gán bằng tham chiếu.unset[]. Otherwise you will experience the following behavior:
Array [ [Gallery_id] => 1 [Gallery_Name] => Test [Gallery_FolderName] => Test Folder ]
6Array [ [Gallery_id] => 1 [Gallery_Name] => Test [Gallery_FolderName] => Test Folder ]
7Array [ [Gallery_id] => 1 [Gallery_Name] => Test [Gallery_FolderName] => Test Folder ]
8Cảnh báo
Array [ [Gallery_id] => 1 [Gallery_Name] => Test [Gallery_FolderName] => Test Folder ]
9Tham chiếu của
$value
và phần tử mảng cuối cùng vẫn còn ngay cả sau vòng lặpforeach
. Nó được khuyến nghị phá hủy nó bằng cách unset []. Nếu không, bạn sẽ trải nghiệm hành vi sau::Có thể lặp lại giá trị của mảng không đổi bằng cách tham khảo:
Ghi chú:
$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
2$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
3$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
4 foreach
không hỗ trợ khả năng triệt tiêu các thông báo lỗi bằng cách sử dụng $arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
1.
$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
Một số ví dụ khác để chứng minh việc sử dụng:
Giải nén các mảng lồng nhau có danh sách []list[] as the value.
[Php 5> = 5.5.0, Php 7, Php 8]
$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
5$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
3$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
7Ví dụ trên sẽ xuất ra:
Có thể lặp lại một mảng mảng và giải nén mảng lồng vào các biến vòng lặp bằng cách cung cấp một danh sách [] làm giá trị.list[] than there are in the nested array, in which case the leftover array values will be ignored:
$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
5$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
3
0Ví dụ trên sẽ xuất ra:
Một thông báo sẽ được tạo nếu không có đủ các phần tử mảng để điền vào danh sách []:list[]:
$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
5$arr_GalleryInfo = $dataObj->getAll['tbl_Gallery', '', '', '', ''];
3
3Ví dụ trên sẽ xuất ra:
Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:
Sanusi Hassan ¶ ¶
1 tháng trước
4
5
6
7
8Okafor Chiagozie ¶ ¶
1 tháng trước
9foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement0
foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement1
foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement2
Okafor Chiagozie ¶ ¶
1 tháng trước
foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement3
foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement4
foreach [iterable_expression as $value] statement foreach [iterable_expression as $key => $value] statement2