2017-10-26 5 views
0

私はPHP初心者で、以下のコードのrandom_numをPHP変数に変換する最良の方法を見つけようとしています。MySql Select FLOOR(rand)ASをPHP変数に変換する

$query = "SELECT FLOOR(rand(0, 28000) as random_num 
    FROM numbers_mst 
    WHERE random_num NOT IN (SELECT random_num FROM numbers_mst) 
    LIMIT 1"; 

$mysqli->query($query); 

申し訳ありませんが、これはシンプルであれば、私は、構文のバリエーションのすべての種類を試してみましたし、それの地獄をグーグルが、私は唯一の変数に行の結果を取得する方法を見つけることができました...

答えて

1

MySQLは1回のクエリで何もしません。あなたが望むよう

do { 
    $random = rand(0, 28000); 
    $query = "SELECT numbers FROM numbers_mst 
       WHERE numbers = $random LIMIT 1"; 
    $result = $mysqli->query($query); 
} while ($result->num_rows > 0); 

この方法で、あなたのユニークな乱数として$ランダムを使用することができます:あなたは一意の番号を取得するためにクエリを反復処理する必要があります。

0

使用fetch_rowまたはfetch_objecthttp://php.net/manual/en/mysqli-result.fetch-row.php

だからあなたのコードは次のようになります。

$query = "SELECT FLOOR(rand(0, 28000)) as random_num 
FROM numbers_mst 
WHERE random_num NOT IN (SELECT numbers FROM numbers_mst) 
LIMIT 1"; 

$result = $mysqli->query($query)->fetch_object()->random_num; // This will contain your number 

あなたのそれで、またCで、他の機能を読んでいる間ASEは、あなたが複数の結果をさらに行きたい:

mysqli_fetch_array() - 連想、数値配列、またはとして結果の行を取得両方

mysqli_fetch_assoc() -

mysqli_fetch_object()連想配列として結果の行を取得します - 結果セットの現在の行をオブジェクトとして返します。

+0

これは動作していないようですが、私は共有ホスティングをしていますので、サーバー500のエラーが表示されます...アイデアはありますか? – Benswana

+0

更新されたコードを試してください – Boratzan

関連する問題