0

我需要帮助来添加 variable value and numeric value和数值是从 mysql 数据库列中获取的吗?

问题

当我插入std0001db 列时,如果 db 列中只有数字值,则函数将不起作用并移至std0002else,然后函数工作并移至0002,003.0003

代码

$query = "SELECT snum val FROM students";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);

$new_val = $row['val']+1;
$a='std';
for($i=0; $i <=$new_val; $i++) {

if($new_val == 0) { 
$say=$a.'0'.$i;

} else if($new_val == 1) {
$say=$a.'00'.$i;
}

else
{
$say=$a.'000'.$i;   
}
}

例如我想要喜欢

Std00001
Std00002
Std00003
.
.
.
.
.
.
.
So On...
4

2 回答 2

0

您的代码中有多个问题:

  1. 您的查询

    $query = "SELECT MAX(snum) val FROM students";
    

    将只返回一行。因此,您的脚本将只运行一次。这就是为什么你只得到 Std00001 然后它停止的原因。

  2. 现在假设您的查询确实检索了很多行。在这里,您仍然使用 mysql_fetch_assoc 只获取一行。检索多行的正确方法是这样的:

    while ($row = mysql_fetch_assoc($result)) {
        ... your code here for each row
    }
    

    请参阅http://php.net/manual/en/function.mysql-fetch-assoc.php示例

  3. 你的 for 循环是错误的。

    for($i=1;$i<=$new_val;$i++){
    

    $new_val 是一个字符串,它必须是一个整数。

于 2013-10-20T08:54:47.040 回答
0

在您的 javascript 中尝试此代码

var a = "00001";
    /*store the value "00001" in a variable as you are getting it from a column*/
var b = "std";
var c = parseInt(a) + 1;
alert(b + c);
于 2013-10-19T13:29:43.787 回答