10/10/2018, 10:54

Cho em hỏi về cái code PHP này !

- Đây là code để hiện lên bảng cửu chương cho từng số : 1,2,3,4,5,6,7,8,9,10 khi người dùng nhập vào Textfield một trong các số thuộc các số tự nhiên trong dãy số trên thì nó sẽ in ra bảng cửu chương của số đó .

VD : Nhập vào số 2 thì kết quả là :

2x1=2
2x2=4
..............

Và đây là code của nó :

PHP Code:
<?php
if(isset($_POST***91;"a"***93;))
{
$so=$_POST***91;"a"***93;;
$chuoi="";// Họ khai báo nó rỗng
for($i=1;$i<=10;$i++)
{
$tich=$so*$i;
$chuoi=$chuoi.$so."x".$i."=".$tich." "; ***91;COLOR="Red"***93;// Tại sao họ viết biến $chuoi kết hợp với biến $so***91;/COLOR***93;
}
}
?>
- Nhưng em không hiểu cái biến $chuoi tại sao họ lại khai báo = rỗng ( không có giá trị gì ). Theo hướng dẫn của họ thì khai báo như thế vì biến $chuoi nó sẽ chứa tất cả các phép tính của bảng cửu chương ( 2x1 , 2x2 , 2x3 ,.... ). Họ khai báo $chuoi=""; là thế nào , em chưa hiểu chỗ này :

$chuoi=$chuoi.$so."x".$i."=".$tich." "; // Tại sao họ lại viết biến $chuoi rồi kết hợp với biến $so

- Em thử bỏ biến $chuoi sẽ còn là : $chuoi=$so."x".$i."=".$tich." "; . Thì kết quả của nó lại hiện ra chỉ còn : 2x3=6 . Ngoài ra không hiện ra phép nhân với các sô khác .


Đây là code full của họ :


PHP Code:
<br />

<?php
if(isset($_POST***91;"a"***93;))
{
$so=$_POST***91;"a"***93;;
$chuoi="";
for(
$i=1;$i<=10;$i++)
{
$tich=$so*$i;
$chuoi=$chuoi.$so."x".$i."=".$tich."<br />";
}
}
?>
<form id="form1" name="form1" method="POST" action="bangcuuchuong.php">
        <table border="0" width="100%" id="table1" height="50" bgcolor="#FFCCCC" cellspacing="1">
        <tr>
            <td bordercolor="#FF0000" bgcolor="#DD4800">
            <p align="center"><b><font color="#FFFFFF">Bảng cửu chương</font></b></td>
        </tr>
        <tr>
            <td>
            <p align="center">Cửu chương :
            <input type="text" name="a" size="10" value="<?php echo $_POST***91;"a"***93;;?>"> 
            <input type="submit" value="Thực hiện" name="Submit̉"> 
            </td>
        </tr>
        <?php
        
if (isset($_POST***91;"a"***93;))
        {
        
?>
        
        <label>
        <table border="0" width="100%" id="table2" height="50" bgcolor="#FFCCCC" cellspacing="1">
        <tr>
            <td bordercolor="#FF0000" bgcolor="#DD4800">
            <p align="center"><b><font color="#FFFFFF">Kết Quả</font></b></td>
        </tr>
        <tr><td><?php echo $chuoi;?></td></tr>
        </table>
        </label>
        
        <?php 
        
}
        
?>
        
        </table>
</form>
<br />
namduong8889 viết 13:08 ngày 10/10/2018
// Tại sao họ lại viết biến $chuoi rồi kết hợp với biến $so
Viết như vầy có nghĩa là nối thêm vào. Ví dụ:

Code:
$chuoi = 'thu 2';
$chuoi = $chuoi . ' thu 3';

echo $chuoi; // kết quả ra 'thu 2 thu 3';
Như bạn thấy ở trên đó là vòng lặp 10 lần,

lặp lần thứ nhất nó ra:

Code:
$chuoi = '2x1=2';
lặp lần thứ 2 nó ra '2x2=4' nhưng nối thêm lần thứ nhất vào nên nó ra:

Code:
$chuoi = '1x1=2
          2x2=4';
cứ thế tiếp tục thì nó ra đầy đủ bảng 2

[=========> Bổ sung bài viết <=========]

mà sao chúng nó viết code nhìn tởm thế ai mà đọc được, bạn bảo chúng nó nên trình bày như vầy:

Với cả tránh dùng ngoặc kép "", thay vào đó dùng ngoặc đơn '' vì ngoặc đơn không phải xử lý content ở trong nên nhanh hơn rất nhiều

Code:
if(isset($_POST['a']))
{
	$so    = $_POST['a'];
	$chuoi = '';// Họ khai báo nó rỗng

	for($i=1 ; $i <= 10 ; $i++)
	{
		$tich   = $so * $i;
		$chuoi .= $so . 'x' . $i . '=' . $tich . "\n";
	}
}
học lập trình viết 12:55 ngày 10/10/2018
Bác ơi em thử thêm chữ này vào code của họ :

<?php
if(isset($_POST["a"]))
{
$so=$_POST["a"];
$chuoi="thêm";// Đó em thêm cái chữ này vào
for($i=1;$i<=10;$i++)
{
$tich=$so*$i;
$chuoi=$chuoi.$so."x".$i."=".$tich."\n";
}
}
?>

- Và khi em nhập vào số 2 rồi bấm submit thì nó ra kết quả là :

thêm2x1=2
2x2=4
2x3=6
..........
thuyduongcd viết 13:00 ngày 10/10/2018
Được gửi bởi namduong8889
Viết như vầy có nghĩa là nối thêm vào. Ví dụ:

Code:
$chuoi = 'thu 2';
$chuoi = $chuoi . ' thu 3';

echo $chuoi; // kết quả ra 'thu 2 thu 3';
Như bạn thấy ở trên đó là vòng lặp 10 lần,

lặp lần thứ nhất nó ra:

Code:
$chuoi = '2x1=2';
lặp lần thứ 2 nó ra '2x2=4' nhưng nối thêm lần thứ nhất vào nên nó ra:

Code:
$chuoi = '1x1=2
          2x2=4';
cứ thế tiếp tục thì nó ra đầy đủ bảng 2

[=========> Bổ sung bài viết <=========]

mà sao chúng nó viết code nhìn tởm thế ai mà đọc được, bạn bảo chúng nó nên trình bày như vầy:

Với cả tránh dùng ngoặc kép "", thay vào đó dùng ngoặc đơn '' vì ngoặc đơn không phải xử lý content ở trong nên nhanh hơn rất nhiều

Code:
if(isset($_POST['a']))
{
	$so    = $_POST['a'];
	$chuoi = '';// Họ khai báo nó rỗng

	for($i=1 ; $i <= 10 ; $i++)
	{
		$tich   = $so * $i;
		$chuoi .= $so . 'x' . $i . '=' . $tich . "\n";
	}
}
Viết vậy cũng có khác gì người ta đâu.
Muốn viết gọn thì viết như vầy:
Code:
if(isset($_POST['a']))
{
	$so    = $_POST['a'];
	for($i=1 ; $i <= 10 ; $i++)
	{
            $tich=$so*$i;
            echo "$so x $i = $tich <br />";
	}
}
xuankhangitbt viết 12:59 ngày 10/10/2018
cho mình hỏi $_POST***91;'name'***93? $_POST***91;'name'***93 có ý nghĩa như thế nào?***91 là để làm gì?
Xin mọi người chỉ giáo
Thanks
hii
Bài liên quan
0