0

我搜索和搜索,但找不到我的问题的任何答案所以如果这是一个转贴新手,我很抱歉。

我在一个名为functions.php的单独文件中有这个函数

function get_all_posts(){
global $connection;
$q = "SELECT * FROM blog LIMIT 1";
$get_posts = mysqli_query($connection, $q);
if (!$get_posts){
    die ('Query failed.');
}
return $get_posts;
}

在 blog.php 中调用函数

<div class="group">
        <?php get_all_posts();
            while ($row = mysqli_fetch_array($get_posts)){
         ?>
         <h1><?php echo $row['title']; ?></h1>
         <?php } ?>
        </form>
    </div>

但我一直有一个未定义的变量$get_posts

4

4 回答 4

1

您没有捕获返回的值。例如你应该有

$get_posts = get_all_posts();

如果您不将函数的返回值分配给变量,则该返回值将被丢弃。所以你的查询基本上没用。

于 2013-07-08T21:55:35.180 回答
1

您必须将 get_all_posts 的结果分配给 $get_posts;

<?php $get_posts = get_all_posts(); 
while ($row = mysqli_fetch_array($get_posts)){
     ?>
     <h1><?php echo $row['title']; ?></h1>
     <?php } ?>
    </form>
</div>
于 2013-07-08T21:55:39.800 回答
0

当然!为了不让你得到未定义的变量,你必须给你的变量赋值,在这个场景中是 $get_posts,然后在 mysqli_fetch_array()函数中使用它。Orangepill建议的代码肯定会起作用。

于 2013-07-08T22:09:57.270 回答
0

将 blog.php 中的代码更改为如下所示:

<div class="group">
    <?php 
        $get_posts = get_all_posts();
        while ($row = mysqli_fetch_array($get_posts))
        {
     ?>
     <h1><?php echo $row['title']; ?></h1>
     <?php 
        }
     ?>
    </form>
</div>

您的函数返回一个值,但它不会直接将其传递出去。你必须像这样在一个变量中捕获它,$newvariable = function();然后你可以在任何你想要的地方使用 $newvariable 。

于 2013-07-08T21:56:54.177 回答