2013-07-08 105 views
0

我搜索和搜索,無法找到我的問題的任何答案所以我很抱歉,如果這是一個轉貼新手在這裏。PHP中的功能問題

我有這個功能在一個單獨的文件名爲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> 

的功能,但我一直有一個undifined變量$get_posts

回答

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> 
+0

非常感謝!我一直都在努力弄清楚這一點! –

1

您不捕獲返回的值。例如你應該有

$get_posts = get_all_posts(); 

如果你沒有指定一個函數的返回值給一個變量,那個返回值會被丟棄。所以你的查詢基本上是無用的。

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無論你想要的。

0

當然!爲了避免獲取未定義的變量,您必須在此場景中爲您的變量賦值$ get_posts,然後在mysqli_fetch_array()函數中使用它。代碼Orangepill建議肯定會工作。