2014-01-23 7 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

Я не думаю, что вы имели в виду, чтобы поместить это в '' х ++ тег :) – 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' без изменения it - удалить весь бит 'if ($ x <= 9)'. –

+0

да, я тоже пробовал, но тот же самый результат.my-код просто $ x ++, а затем update.i до сих пор не может понять проблему и почему это всегда 1. – user3212242

Смежные вопросы