При попытке передать функцию массива с одной страницы php на другую. страница try.php имеет фактическую функцию
function someFunc() {
include_once("includes/dbconnect.php");
$types = array();
$connect = TRUE;
$dbconn = dbconnect($connect);
if ($dbconn) {
$sql = "select usertype, userdeptnum from bd.bdusers";
$stmt = db2_prepare($dbconn, $sql);
if ($stmt) {
$result = db2_execute($stmt);
if (!$result) {
echo "exec errormsg: " . db2_stmt_errormsg($stmt);
}
while ($row = db2_fetch_assoc($stmt)) {
$types[] = $row;
}
} else {
echo "exec errormsg: " . db2_stmt_errormsg($stmt);
}
db2_close($dbconn);
} else {
echo "faild " . db2_conn_errormsg();
}
return array($types);
}
Если я использую
echo "<pre>";
print_r($types);
echo "</pre>";
Я понимаю это
Array
(
[0] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 3
)
[1] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 5
)
[2] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 28
)
[3] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 28
)
[4] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 3
)
[5] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 1
)
[6] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 1
)
[7] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 3
)
[8] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 31
)
[9] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 2
)
[10] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 1
)
[11] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 56
)
[12] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 89
)
[13] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 56
)
[14] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 45
)
[15] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 90
)
)
Но когда я передаю эту функцию на try2.php и так же предварительно, print_r, чтобы увидеть, что я получаю, я получаю это
Array
(
[0] => Array
(
[0] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 3
)
[1] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 5
)
[2] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 28
)
[3] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 28
)
[4] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 3
)
[5] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 1
)
[6] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 1
)
[7] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 3
)
[8] => Array
(
[USERTYPE] => 1
[USERDEPTNUM] => 31
)
[9] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 2
)
[10] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 1
)
[11] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 56
)
[12] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 89
)
[13] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 56
)
[14] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 45
)
[15] => Array
(
[USERTYPE] => 2
[USERDEPTNUM] => 90
)
)
)
Это массив внутри массива. Я пытался вывести массив с помощью foreach и цикла for, но я всегда получаю неопределенный индекс или преобразование массива в строку, и он просто выводит «Массив». Что я делаю неправильно?
2 ответа
Потому что вы вернули array($types);
. Вернуть $types
вместо array($types)
.
function someFunc() {
include_once("includes/dbconnect.php");
$types = array();
$connect = TRUE;
$dbconn = dbconnect($connect);
if ($dbconn) {
$sql = "select usertype, userdeptnum from bd.bdusers";
$stmt = db2_prepare($dbconn, $sql);
if ($stmt) {
$result = db2_execute($stmt);
if (!$result) {
echo "exec errormsg: " . db2_stmt_errormsg($stmt);
}
while ($row = db2_fetch_assoc($stmt)) {
$types[] = $row;
}
} else {
echo "exec errormsg: " . db2_stmt_errormsg($stmt);
}
db2_close($dbconn);
} else {
echo "faild " . db2_conn_errormsg();
}
return $types; //<==
}
ИЗМЕНИТЬ: В try.php
попробуйте этот код, чтобы показать результат в таблице
echo '<table border="1">';
echo '<tr><th>USERTYPE</th><th>USERDEPTNUM</th></tr>';
foreach($types as $val){
echo '<tr><td>'.$val['USERTYPE'].'</td><td>'.$val['USERDEPTNUM'].'</td></tr>';
}
echo '</table>';
<?php
include_once("try.php");
$types = someFunc();
echo "<pre>";
print_r(someFunc());
echo "</pre>";
foreach ($types as $list){
echo $types;
}
?>
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.