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_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 に答える
1

戻り値をキャプチャしません。たとえば、あなたが持っている必要があります

$get_posts = get_all_posts();

関数の戻り値を変数に割り当てないと、その戻り値は破棄されます。したがって、クエリは基本的に役に立ちませんでした。

于 2013-07-08T21:55:35.180 に答える
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 に答える
0

もちろん!未定義の変数を取得しないようにするには、関数で使用する前に、変数 (このシナリオでは $get_posts) に値を割り当てる必要があります mysqli_fetch_array()Orangepillが提案したコードは確実に機能します。

于 2013-07-08T22:09:57.270 に答える