Help kiểm tra dữ liệu trong input text PHP

Mọi người giúp mình với , mình muốn cộng điểm tiềm năng vào Nội công và Ngoại công , nhưng nó lại bị loại gớ ngân , mình có 200 điểm tiềm năng mình nhập Nội Công 199 điểm và Ngoại Công là 199 điểm vậy mà nó công luôn 398 điểm , rồi điểm tiềm năng âm luôn -198 điểm luôn , ai giúp mình với khi nhập nó phải báo ko đủ điểm tiềm năng ko thể cộng tiếp .
cảm ơn mọi người nhiều !!
FAqrQu.png
 
Reply: Help kiểm tra dữ liệu trong input text

cái này có thể do code xử lý lúc bạn nhập form

biến diem_noi_cong, diem_ngoai_cong bạn không thiết lập điều kiện

diem_tiem_nang = diem_tiem_nang - (diem_noi_cong + diem_ngoai_cong) = 200 - (199 + 199) = -198

đặt điều kiện kiểm tra trước khi submit form, không thỏa mãn không cho submit và đưa ra thông báo

(0 =< diem_noi_cong, diem_ngoai_cong < diem_tiem_nang) && (diem_noi_cong + diem_ngoai_cong =< diem_tiem_nang)
 
Reply: Help kiểm tra dữ liệu trong input text

Bạn xem giúp mình với tks bạn nhiều.
Code khung nhập Nội và Ngoại
Mã:
<div class="right_content_line">                            <div class="right_content_line1">
                               Cường Lực</div>
                            <div class="right_content_line2">
                                <input name="cuongluc" value="<?php echo $cuonglucz ?>" maxlength="6" id="cuongluc"  type="text">  <? echo $st; ?>
                            </div>
                        </div>
                            <div class="right_dot"></div>
                            <div class="right_content_line">
                            <div class="right_content_line1">
                                Nội Lực</div>
                            <div class="right_content_line2">
                                <input name="noiluc" value="<?php echo $noilucz ?>" maxlength="6" id="noiluc"  type="text">  <? echo $sp; ?>
                            </div>
                        </div>
Code xữ lý
//update Ngoại
if($cuonglucz){
$query = "select charname,str,points,charguid from tlbbdb.t_char where charguid='$charguid'";
$sttchar=$row["charguid"];
$tenchar=$row["charname"];
if($cuonglucz<=$points){
$query = "
UPDATE t_char SET points = points - $cuonglucz WHERE charguid = $charguid ";
$check = $tlbb_web->query($query);
$query = " UPDATE t_char SET str = str + $cuonglucz WHERE charguid = $charguid ";
$check = $tlbb_web->query($query);
echo'<center><font color="red"><b>đã cộng thành công: <font color="blue">'.$cuonglucz.'</font></font><br /></center>';}
else{
echo'<center><font color="red"><b><br />bạn đã nhập <font color="blue">'.$cuonglucz.'</font> cường lực lớn hơn số points hiện có : <font color="blue">'.$points.'</font> point hãy nhập lại !</font>
</center>';}}
//update Nội
if($noilucz){
$query = "select charname,spr,points,charguid from tlbbdb.t_char where charguid='$charguid'"; {
$sttchar=$row["charguid"];
$tenchar=$row["charname"];
if($noilucz<=$points){
$query = "
UPDATE t_char SET points = points - $noilucz WHERE charguid = $charguid ";
$check = $tlbb_web->query($query);
$query = " UPDATE t_char SET spr = spr + $noilucz WHERE charguid = $charguid ";
$check = $tlbb_web->query($query);
echo'<center><font color="red"><b>đã cộng thành công: <font color="blue">'.$noilucz.'</font></font><br /></center>';}
else{
echo'<center><font color="red"><b><br />bạn đã nhập <font color="blue">'.$noilucz.'</font> nội lực lớn hơn số points hiện có : <font color="blue">'.$points.'</font> point hãy nhập lại !</font></center>';}}}
 
Sửa lần cuối:
Reply: Help kiểm tra dữ liệu trong input text

Code xử lí của bạn chỉ check

$cuonglucz<=$points >> cộng điểm cường lực >> $noilucz<=$points >> cộng điểm nội lực

nó cứ cộng điểm độc lập, không kiểm tra xem sau khi cộng điểm cường lực xong thì số points còn lại có đủ cộng điểm nôi lực không mà cứ cộng mà không cần kiểm tra

code này còn có chỗ viêt lung tung không có tác dụng, lớp truy vấn $tlbb_web->query()

$query = "select charname,str,points,charguid from tlbbdb.t_char where charguid='$charguid'";
$sttchar=$row["charguid"];
$tenchar=$row["charname"];


Tạm sửa code xử lí như sau
Mã:
// kiem tra cuonglucz + noilucz khong vuot qua points
if(($cuonglucz >= 0) && ($noilucz >= 0) && (($cuonglucz + $noilucz) <= points)){ // diem cong phu hop
	// cong diem cuonglucz va noilucz
	$query = "UPDATE t_char SET points = points - $cuonglucz - $noilucz, str = str + $cuonglucz, spr = spr + $noilucz WHERE charguid = '$charguid'";
	$check = $tlbb_web->query($query);
	
	echo '<center><b><font color="red">bạn đã cộng thành công <font color="blue">'.$cuonglucz.' cường lực</font> và <font color="blue">'.$noilucz.' nội lực</font></font></b></center>';
}else{ // diem cong khong phu hop
	echo '<center><b><font color="red">bạn đã nhập <font color="blue">'.$cuonglucz.' cường lực</font> và <font color="blue">'.$noilucz.' nội lực</font>, điểm cộng nhập không thỏa mãn điều kiện: không âm và tổng điểm cộng không vượt quá số points hiện có (<font color="blue">'.points.' points</font>), hãy nhập lại!</font></b></center>';
}
 
Top