我在functions.php中有一个函数,如下所示:
function verticals($dbc, $vertical){
$result = mysqli_query($dbc,"SELECT * FROM verticals WHERE verticalTitle='$vertical' ");
while($rows = mysqli_fetch_array($result)) {
return $title = $rows['verticalTitle'];
}
}
我有一个php页面,我希望能够使用$ title变量进行显示:
<?php
verticals($dbc,$vertical);
?>
<h2><?php echo $title; ?></h2>
如果我这样做,我收到以下错误:注意:未定义的变量:标题。我已经通过函数中的echo语句测试了输出,以确保它返回正确的数据。
对我来说,能够将变量分配给行的结果非常重要,这样我才能在页面中的任何位置使用它们。我也不想使用GLOBAL。
思想?
编辑1 返回未定义的变量:行
的functions.php:
function verticals($dbc, $vertical){
$result = mysqli_query($dbc,"SELECT * FROM verticals WHERE verticalTitle='$vertical' ");
while($rows = mysqli_fetch_array($result)) {
return $rows['verticalTitle'];
}
verticals.php:
<?php
verticals($dbc,$vertical);
?>
<h2><?php echo $rows['verticalTitle']; ?></h2>
答案 0 :(得分:0)
return $title = $rows['verticalTitle'];
你应该有
return $rows['verticalTitle'];
如果您希望变量$ title在最后使用
$title = verticals($dbc,$vertical);
调用函数时。
最后,为了按列名称获取值,$ rows ['verticalTitle'],你需要使用mysqli_fetch_assoc,如下所示:
while($rows = mysqli_fetch_assoc($result)) {
但是,一句警告,这只会返回一个值。你想要获得更多吗?
答案 1 :(得分:0)
您的代码存在一些问题。 首先因为“while”似乎函数返回了几个值,但它只返回一个。你根本不需要“同时”。 第二个$ title变量未定义,因为您已调用该函数,而不是将其结果传递给变量。 我已将代码更正为功能级别:
http://phpfiddle.org/lite/code/hsp-6w6
希望它有所帮助。
答案 2 :(得分:0)
首先:您不应该从while循环返回值。你应该返回一个数组并循环遍历这个数组以进行回声输出。
尝试这样的事情:
function verticals($dbc, $vertical){
$result = mysqli_query($dbc,"SELECT * FROM verticals WHERE verticalTitle='$vertical' ");
$title = array();
while($rows = mysqli_fetch_array($result)) {
$title[] = $rows['verticalTitle'];
}
return $title;
}
第二:你调用了一个函数,但你没有在任何变量中获得此函数的返回值。
verticals.php:
<?php
$title = verticals($dbc,$vertical);
foreach($title as $rows){
echo "<h2>". $rows."</h2>";
}
?>