簡體   English   中英

array_rand() 執行所有元素 sql 語句 php

[英]array_rand() executes all element sql statements php

我有下 function 來保存帖子

  //save post

    function savePost($id_post,$table,$pdo){

         $sql->execute();
         return "saved post".$id_post;
         }

現在我制作一個數組來保存隨機帖子

 $posts = array();

 $posts[] = savePost("1",$table,$pdo);
 $posts[] = savePost("2",$table,$pdo);
 $posts[] = savePost("3",$table,$pdo);
 $posts[] = savePost("4",$table,$pdo);
 $posts[] = savePost("5",$table,$pdo);

我從$posts返回一個隨機元素,以便$sql->execute(); 只有這個特定的帖子。

 echo $posts[array_rand($posts)];

它回顯了一個唯一的隨機元素,例如saved post4 ,但在表中所有數組元素都已執行,並且所有元素都保存了它們的帖子。 做錯了什么?

我只想保存隨機值。

謝謝你。

echo $posts[array_rand($posts)];

只是從屏幕上的$posts輸出一個隨機條目。 它對保存數據沒有任何作用。 根據您顯示的代碼,保存所有帖子的過程已經發生(通過重復調用savePost ),甚至在您生成隨機數之前。

如果您只想保存一個隨機帖子,那么您可以創建一個包含所有潛在帖子 ID 的數組,然后選擇一個進行保存,並將隨機選擇的條目傳遞給 savePost 方法。

例如:

$postIDs = array(1, 2, 3, 4, 5);
echo savePost($postIDs[array_rand($postIDs)], $table, $pdo);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM