2014-01-23 79 views
0
<? 
include('config.php'); 
$z=$_GET['qnum']; 
$j=$_GET['num']; 
$n=$_GET['num']; 

$sql=mysql_query("SELECT * FROM qustion where qnum='$z'"); 
while($l=mysql_fetch_array($sql)) 
{ 
    $m++; 
} 
$sql=mysql_query("DELETE FROM qustion WHERE qnum='$z' and num='$n'"); 
if($n!=$m) 
{ 
    $sql=mysql_query("SELECT * FROM qustion where qnum= '$z' order by num"); 
    while($r=mysql_fetch_array($sql)) 
    { 
     $x++; 
     if($x<=9) 
     { 
      $x="0$x"; 
     } 
     $sql= "UPDATE qustion SET num='$x' WHERE qnum='$z'";     
     if(!mysql_query($sql,$link)) 
     die('Error: ' . mysql_error()); 
    } 
} 
?> 

我的數據庫更新,但所有我的num列更新爲01.i希望它是序列01,02 ....取決於我的數據庫上的行數。

+1

我不認爲你的意思是把這個'X ++'標籤:) – user1477388

+0

'而($ l = mysql_fetch_array($ sql)){$ m ++;這是什麼?你爲什麼不使用'mysql_numrows'之類的東西? – Peon

+0

對不起,所有這些代碼和標籤。我是新手在PHP :) – user3212242

回答

2

而不是在你的PHP零填充,爲什麼不適當地定義你的數據庫列?

ALTER TABLE `qustion` MODIFY `num` TINYINT(2) UNSIGNED ZEROFILL 

或者更好的是,在出來的路上,而不是在路上格式:

$q = /* some code to get the question data */ 
echo sprintf("%02s",$q['num']); 
+0

我改變了塔伯,但仍然是相同的結果 – user3212242

+0

如果你去'ALTER TABLE'選項,那麼你應該插入'$ x'而不改變它 - 刪除整個if($ x <= 9)'位。 –

+0

是的,我也試過,但相同的result.my代碼只是$ x ++然後update.i仍然無法弄清楚問題,爲什麼它總是1. – user3212242

相關問題