PHP:仅以粗体显示表的新行,其余行不进行任何格式化(数据将由用户输入)


PHP : to display only new row of a table in bold and rest without any formating (data will be entered by the user)

我需要以粗体显示将存储在php数据库中的每一行,然后显示它。只有新行应该加粗。这是我所做的

<?php
//connection
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "resultdb"; //my database name

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>
<?php
$name=$_POST['name'];
$roll=$_POST['roll'];
$m1=$_POST['m1'];
$m2=$_POST['m2'];
$m3=$_POST['m3'];
//ISNERT DATA INTO TADABASE
$sql="INSERT INTO markstb(name,rollno,sub1,sub2,sub3) VALUES('$name','$roll','$m1','$m2','$m3')";
if($conn->query($sql)===true)
{
    //ketp id column in DB to auto_increment
    $last_id=mysqli_insert_id($conn);
    echo " NEW RECORD INSERTED"."<br>";
    if($last_id>0)
    {
        $sql3="SELECT * FROM markstb WHERE id='$last_id'";
        $result = $conn->query($sql3);
        echo "<table border='2'  bordercolor='black' ";
        echo"<tr><td>NAME</td><td>ROLLNO</td><td>SUB1</td><td>SUB2</td><td>SUB3</td></tr>";
        while($row=$result->fetch_assoc())
        {
            echo"<tr><td><b>".$row['name']."</td><td><b>".$row['rollno']."</td><td><b>".$row['sub1']."</td>"
        ."<td><b>".$row['sub2']."</td><td><b>".$row['sub3']."</td>";
        }
        echo "</table>";
    }
    else
    {
        echo"check last_id";
    }
    echo "<br><br><br><br>";
}
else
{
    echo "ERROR".$sql."<br>".$conn->error;
}
//RETRIVE DATA FROM DATABASE
$sql2="SELECT * FROM  markstb ORDER BY name";
//$result=$conn->query($sq2);
$result = $conn->query($sql2);
echo "<table border='2'  bordercolor='black' ";
if($result->num_rows > 0)
{
    echo"<tr><td>NAME</td><td>ROLLNO</td><td>SUB1</td><td>SUB2</td><td>SUB3</td></tr>";
    while($row=$result->fetch_assoc())
    {
        echo"<tr><td>".$row['name']."</td><td>".$row['rollno']."</td><td>".$row['sub1']."</td>"
        ."<td>".$row['sub2']."</td><td>".$row['sub3']."</td>";
    }
    echo "</table>";
}
else
{
    echo" 0 rows";
}
$conn->close();
?>

在上面的程序中,我只获取了新的行并将其加粗但我必须显示数据库中的所有数据,并使仅行加粗,这是新的,这是由用户输入的

在最后一个while循环中,您可以尝试:

          if($row['id'] == $last_id){
              //echo "your row that is                    
               //bold 
             }else{
              // echo you regular row
               }

在打印数据时,可以在echo语句中执行以下操作:

echo "<tr" . $last_id === (int) $row['id] ? . ' class="bold"' : null; . "><td>...";

所以这意味着,当你打印标签时,你正在检查行id是否与最后一个id匹配,如果是这样,你正在额外打印一个html类"粗体"。

当然,这取决于你使用css来定位这个选择器,并实际使其加粗。

这被称为"三元if"。它看起来像这样:

condition ? do this if true : do this if false;