PHP 页面在第一次单击按钮时未加载生成的值?

标签 php mysql

我有一个单页 php 应用程序来生成一个 8 位数字,用户输入一个值,页面生成另一个值,这两个值都插入到 mysql 数据库中,并通过单击按钮在输入框中显示生成的值。正在插入,但生成的值第一次没有显示在输入框中,我也尝试了 session ,它也没有帮助。

这是我的 php 代码,

<?php
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
</head>
<body>
<div>
<?php
if(isset($_POST['luckyButton']) && $_POST['myLuckyNumber'] != ""){
    //sleep(20);
    $myLuckyNum = $_POST['myLuckyNumber'];
    $resultmyLuckyNum = mysql_query("SELECT * FROM lucky where luckyNum='$myLuckyNum'") or die(mysql_error());
    if (mysql_num_rows($resultmyLuckyNum) > 0) {
        while ($rowmyLuckyNum = mysql_fetch_array($resultmyLuckyNum)) {
            $generatedNumber = $rowmyLuckyNum["generatedNum"];
        }
    }else{
        $gen = getGen();
        $resultGenNum = mysql_query("INSERT INTO lucky (slno, luckyNum, generatedNum) VALUES ( NULL, '$myLuckyNum', '$gen')");
        if (mysql_num_rows($resultGenNum) > 0) {
            $generatedNumber = $gen;
        }
    }
}
?>
<form action="" method="post">
<input type="text"class="inputs" name="myLuckyNumber" onClick="this.select();" placeholder="Enter You Lucky Number" value="<?php echo $myLuckyNum; ?>" />
<input type="submit" class="css_button" name="luckyButton" value="Check"/>
</form>
</div>
<br><br><br>
<?php
if($generatedNumber != ""){
    echo '<input type="text" name="myLuckyNumber" onClick="this.select();" id="generatedNumber" readonly="true" value="' . $generatedNumber . '" />';
}
echo '<p id="errText"> ' . $err . ' </p>';
function random_string($length) {
    $key = '';
    $keys = array_merge(range(0, 9));
    for ($i = 0; $i < $length; $i++) {
        $key .= $keys[array_rand($keys)];
    }
    return $key;
}
function getGen(){
    $gen1 = random_string(8);
    $result = mysql_query("SELECT * FROM lucky where generatedNum='$gen1'") or die(mysql_error());
    if (mysql_num_rows($result) > 0) {
        while ($row = mysql_fetch_array($result)) {
            if($row["generatedNum"] == $gen1){
                getGen();
            }
        }
    }else{
        //echo $gen1;
        return($gen1);
    }
}
?>
</body>
</html>

我的 table ,。

CREATE TABLE `lucky` (
`slno` int(11) NOT NULL,
  `luckyNum` text NOT NULL,
  `generatedNum` text NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

最佳答案

您的代码的问题是 mysql_num_rows 将返回 01,请像这样使用它

if($resultGenNum === 1){
       $generatedNumber = $gen;
}

关于PHP 页面在第一次单击按钮时未加载生成的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27773703/

相关文章:

php - fatal error : [] Operator not working on one page but working on another

php - 网页上相关产品的提取价格

php - 我应该使用@return self、this 还是当前类?

sql - MySQL 查询(混合插入和选择)

用于在 varchar 字段中选择最小/最大值的 Mysql 查询

mysql - 什么时候应该使用复合索引?

php - 唯一索引中 url 的 md5 哈希值

php - 如何使用 PHP 从 MySQL 数据库获取密码值

PHP 制作 4char A-Z、a-z、0-9 的所有可能变体

php - Wordpress - 类别和子类别的嵌套列表