从mySQL数组中的php函数返回变量

时间:2014-01-03 19:33:37

标签: php mysql mysqli global

我在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>

3 个答案:

答案 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>";
      } 
    ?>
相关问题