0

追加するのに助けが必要 variable value and numeric valueですが、mysql データベース列から数値を取得していますか?

問題

std0001db 列に挿入すると関数が機能せずstd0002、db 列に数値しかない場合は関数が動作し、他に移動し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;   
}
}

たとえば、I Want Like

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

2 に答える 2

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 に答える
0

コードに複数の問題があります。

  1. あなたの質問

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

    1 行のみを返します。したがって、スクリプトは 1 回だけ実行されます。そのため、Std00001 のみを取得してから停止します。

  2. ここで、クエリが実際に多くの行を取得したとしましょう。ここでも、mysql_fetch_assoc を使用して 1 行のみをフェッチします。複数の行を取得する正しい方法は次のとおりです。

    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 に答える