簡體   English   中英

生成隨機數並保存在數據庫中

[英]generate random numbers and save in database

在我的基於PHP / MYSQL的網站上,賣家可以張貼10種相同類型,性質和價值的物品。

我希望用戶能夠發布數量= 10,值=100。(值在下拉列表中預先設置,並由賣家選擇)。

目前,我只能針對預設值發布單個項目,並且生成的代碼如下所示:

 $sql_query = "INSERT INTO 
 eg_posts(seller_id,value_id,quantity,cdate,egcode) 
 VALUES
 ('$a','$bval','$cqty',now(),CONCAT( CHAR(FLOOR(RAND()*26)+65),FLOOR(100+RAND()*(5000-100))))"; 

上面的帖子保存了一個項目,並帶有一個字母數字代碼和由賣方選擇的預設值。

我希望用戶能夠發布多個具有相同種類,性質和值的商品(例如10個),並且我希望為這10個商品生成10個隨機字母數字代碼。 我想將所有10個隨機代碼都保存在數據庫中的帖子ID下。

使用PDO(即使您要更改不同值,數量的值,它也可以工作,因為它分別綁定每個變量):

try {
    //Make your connection handler to your database
    $conn = new PDO("mysql:host=".$servername.";dbname=".$database, $username, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
    $a = 1;
    $bval= 1;
    $cqty = 10;

    $values = array();
    $binds = array();

    $temp = "INSERT INTO eg_posts (seller_id, value_id, quantity, cdate, egcode) VALUES ";

    for($i = 0; $i < 10; $i ++) {
        $values[] = ' (seller_id'.$i.' = :seller_id'.$i.', value_id'.$i.' = :value_id'.$i.', quantity'.$i.' = :quantity'.$i.', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) )))';
        $binds[':seller_id'.$i] = $a;
        $binds[':value_id'.$i] = $bval;
        $binds[':quantity'.$i] = $cqty;
    }
    $sql_query = $temp.implode(', ', $values).';';

    $stmt = $conn->prepare($sql_query);
    $stmt->execute($binds);

} catch(PDOException $e) {
    echo $e->getMessage();
    die();
}

結果:

INSERT INTO eg_posts (seller_id, value_id, quantity, cdate, egcode) 
VALUES 
(seller_id0 = :seller_id0, value_id0 = :value_id0, quantity0 = :quantity0, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id1 = :seller_id1, value_id1 = :value_id1, quantity1 = :quantity1, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id2 = :seller_id2, value_id2 = :value_id2, quantity2 = :quantity2, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id3 = :seller_id3, value_id3 = :value_id3, quantity3 = :quantity3, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id4 = :seller_id4, value_id4 = :value_id4, quantity4 = :quantity4, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id5 = :seller_id5, value_id5 = :value_id5, quantity5 = :quantity5, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id6 = :seller_id6, value_id6 = :value_id6, quantity6 = :quantity6, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id7 = :seller_id7, value_id7 = :value_id7, quantity7 = :quantity7, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id8 = :seller_id8, value_id8 = :value_id8, quantity8 = :quantity8, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
(seller_id9 = :seller_id9, value_id9 = :value_id9, quantity9 = :quantity9, NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) )));

普通SQL:

$a = 1;
$bval= 1;
$cqty = 10;

$temp = "INSERT INTO eg_posts (seller_id, value_id, quantity, cdate, egcode) VALUES ";
$values = array();
for($i = 0; $i < 10; $i ++) {
    $values[] = " ('$a', '$bval', '$cqty', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) )))";
}
$sql_query = $temp.implode(', ', $values).';';

echo $sql_query;

結果:

INSERT INTO eg_posts (seller_id, value_id, quantity, cdate, egcode) 
VALUES 
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) ))),
('1', '1', '10', NOW(), CONCAT( CHAR(FLOOR(RAND()*26) + 65), FLOOR(100 + RAND() * (5000-100) )));

暫無
暫無

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

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