2016-12-10 11 views
0

データベース内のユーザーを選択して、そのチケット1 < = $ rand、ticket2> = $ randをエコーし​​ようとしていますが、動作していないユーザーを選択しようとしていますが、なぜ。 これはコードです:?私たちはあなたを助けることができないすべてのランダム番号<=チケット

<?php 
    $sql = "SELECT t1, t2 FROM user"; 
    $result = mysqli_query($conn, $sql); 
    $sqlt = "SELECT t2 FROM user ORDER BY id DESC LIMIT 1"; 
    $resultt = mysqli_query($conn, $sqlt); 
    $rowt = mysqli_fetch_assoc($resultt); 
    $rand = rand(1, $rowt['t2']); 
    echo $rand.'<br>'; 
    while($row = mysqli_fetch_assoc($result)){ 
     echo $row['t2'].'<br>'; 
     $t1 = $row['t1']; 
     $t2 = $row['t2']; 
     $sqls = "SELECT uid FROM user WHERE $t1 <= $rand && $t2 >= $rand"; 
     $results = mysqli_query($conn, $sqls); 
     $rows = mysqli_fetch_row($result); 
     echo $rows[0]; 
    } 

>

+1

達成しようとしていることを説明してください。サンプルデータと望ましい結果も役立ちます。 –

+1

あなたが得た結果は何ですか?あなたは何を望みますか? –

+0

'WHERE $ t1 <= $ rand && $ t2> = $ rand'に' $ t1'/'$ t2'があるので、' $ rand'に列の値ではなく定義された値を比較します。 – Sean

答えて

0

まずあなたは私たちがあなたのテーブルに持っていないものを見ることはできませんでしたので。

$sql = "SELECT t1, t2 FROM user"; 
    $result = mysqli_query($conn, $sql); 
    //This is for getting t1 and t2 from user table 

    $sqlt = "SELECT t2 FROM user ORDER BY id DESC LIMIT 1"; 
    $resultt = mysqli_query($conn, $sqlt); 
    $rowt = mysqli_fetch_assoc($resultt); 
    //This is for getting only t2 from last row in user table 

    $rand = rand(1, $rowt['t2']); 
    //This is for picking up random number from 1 to t2 
    //which is in the last row from user table 
    //so it may be lower number than you want 
    //if you want to get number of rows its done differently 

    while($row = mysqli_fetch_assoc($result)){ 
     $t1 = $row['t1']; 
     $t2 = $row['t2']; 
    //Here you are getting every t1 and t2 value for every row 

     $sqls = "SELECT uid FROM user WHERE $t1 <= $rand && $t2 >= $rand"; 
    //And here you are saying I want to select userId from userTable where 
    //someNumber <= randomNumber and someOtherNumber>= randomNumber 
    //which wont work, you are looking for userId from userTable where 
    //randomNumber is >= than SomeNumber which is t1 and randomNumber<=t2 
     $results = mysqli_query($conn, $sqls); 
     $rows = mysqli_fetch_row($result); 
     echo $rows[0]; 
    } 
関連する問題