doulu1020 2015-01-05 05:04
浏览 38
已采纳

PHP页面在第一次按键点击时没有加载生成的值?

I have a single page php application to generate an 8 digit number, user inputs a value and page generates another value, both values are inserted into mysql db and displaying the generated value in an input box at a single button click. Insertion is happening, but generated value is not displaying in the inputbox at the first time, I also tried session its not helping too.

here is my php code,

<?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>

my 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;
  • 写回答

3条回答 默认 最新

  • duanlu1279 2015-04-08 07:12
    关注

    The problem with your code is that mysql_num_rows will return either 0 or 1, use it like

    if($resultGenNum === 1){
           $generatedNumber = $gen;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值