0
私は再帰関数を実行しようとしています。これは単純なIDの作成であり、データベース内のIDをチェックしています。 idがすでに作成されている場合は、関数を実行して新しいIDを作成し、再度検査を実行する必要があります。以下はコードです。 $行[ 'ORDER_COUNT'] == 1は、機能はありません別のセッションを作成するために戻っ)session_orderを(実行されませんでした再帰関数を使用したデータベースのチェック
public function session_order(){
$sr_function = new sr_function();
$session_no = (rand(0,2));
//i have set the order_id in the db as '1'//
$sql = "SELECT COUNT(order_id) as order_count
FROM src_order WHERE order_id = '".$session_no."'";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
if ($row['order_count'] == 1){
$this->session_order();
}
return $session_no;
}
方法今まで、。ありがとう
返す必要があります: 'return $ this-> session_order();'。しかし、私はこの種の検証はお勧めしません。問題の1つは、ごくわずかな範囲でrand()関数を使用していることです。これを使用すると、たとえば20回同じ番号を返すことがあります。これは同じユーザーからの20件のクエリを意味します –
関数の内部呼び出しで作成されたsession_noは決して使用されません。関数呼び出しは別々のスコープを使用し、変数は別々です。 – arkascha
ランドは実際には7桁ですが、私はちょうど関数をテストするためにそれを非常に小さく入れました –