验证 table 行是否在每个字段中都有数据
validate if table row has data in every fields
我想验证每个字段中的当前行是否有数据,如果没有则不显示任何数据。请帮我。此外,建议在显示 table 数据时使用 echo,或者我应该坚持使用 html。提前致谢!我一直在网上搜索,但找不到一些答案。哈哈
$ct_list = mysqli_query($conn,"select * from ct LEFT JOIN station on ct.station_id=station.station_id LEFT JOIN dilg_emp on dilg_emp.station_id=station.station_id where dilg_emp.dilg_emp_id= $session_id");
if (mysqli_num_rows($ct_list) > 0){
while ($ct_row_list = mysqli_fetch_array($ct_list)) {
$ct_FName = $ct_row_list['ct_FName'];
$ct_MName = $ct_row_list['ct_MName'];
$ct_LName = $ct_row_list['ct_LName'];
$ct_SName = $ct_row_list['ct_SName'];
$ct_address = $ct_row_list['ct_address'];
$ct_birthday = $ct_row_list['ct_birthday'];
$ct_age = $ct_row_list['ct_age'];
$ct_gender = $ct_row_list['ct_gender'];
$ct_level_educ = $ct_row_list['ct_level_educ'];
$ct_course = $ct_row_list['ct_course'];
$ct_school = $ct_row_list['ct_school'];
$ct_prev_covid = $ct_row_list['ct_prev_covid'];
$ct_training_date = $ct_row_list['ct_training_date'];
$ct_deployment_date = $ct_row_list['ct_deployment_date'];
$ct_prev_emp = $ct_row_list['ct_prev_emp'];
echo "<tr>
<td>".
$x++."
</td>
<td>
$ct_FName $ct_MName $ct_LName $ct_SName
</td>
<td>
$ct_address
</td>
<td>
$ct_birthday
</td>
<td>
$ct_age
</td>
<td>
$ct_gender
</td>
<td>
$ct_level_educ
</td>
<td>
$ct_course
</td>
<td>
$ct_school
</td>
<td>
$ct_prev_covid
</td>
<td>
$ct_training_date
</td>
<td>
$ct_deployment_date
</td>
<td>
$ct_prev_emp
</td>
</tr>";
}
}else{
echo "<tr><td><b>Nothing to display</b></td></tr>";
}
您可以遍历行数组,将空值替换为 No data
。
$optional_fields = ["ct_SName"];
while ($ct_row_list = mysqli_fetch_array($ct_list)) {
foreach ($ct_row_list as $name => &$value) {
if (in_array($name, $optional_fields)) {
continue;
} elseif (empty($value)) {
$value = "No data";
}
}
// rest of your code goes here
很难准确地说出你的意思,如果某行有空列则跳过该行?
如果你在查询中 select 15 列或者你知道 SELECT *
将 return 15 列,然后过滤掉空的,看看是否有 15:
if (mysqli_num_rows($ct_list) > 0) {
while ($ct_row_list = mysqli_fetch_array($ct_list)) {
if (count(array_filter($ct_row)) == 15) {
echo "<tr>
<td>$x++</td>
<td>$ct_FName $ct_MName $ct_LName $ct_SName</td>"; //etc...
}
}
}
您也可以勾选跳过:
if (count(array_filter($ct_row)) < 15) {
continue;
}
//echo your HTML
我想验证每个字段中的当前行是否有数据,如果没有则不显示任何数据。请帮我。此外,建议在显示 table 数据时使用 echo,或者我应该坚持使用 html。提前致谢!我一直在网上搜索,但找不到一些答案。哈哈
$ct_list = mysqli_query($conn,"select * from ct LEFT JOIN station on ct.station_id=station.station_id LEFT JOIN dilg_emp on dilg_emp.station_id=station.station_id where dilg_emp.dilg_emp_id= $session_id");
if (mysqli_num_rows($ct_list) > 0){
while ($ct_row_list = mysqli_fetch_array($ct_list)) {
$ct_FName = $ct_row_list['ct_FName'];
$ct_MName = $ct_row_list['ct_MName'];
$ct_LName = $ct_row_list['ct_LName'];
$ct_SName = $ct_row_list['ct_SName'];
$ct_address = $ct_row_list['ct_address'];
$ct_birthday = $ct_row_list['ct_birthday'];
$ct_age = $ct_row_list['ct_age'];
$ct_gender = $ct_row_list['ct_gender'];
$ct_level_educ = $ct_row_list['ct_level_educ'];
$ct_course = $ct_row_list['ct_course'];
$ct_school = $ct_row_list['ct_school'];
$ct_prev_covid = $ct_row_list['ct_prev_covid'];
$ct_training_date = $ct_row_list['ct_training_date'];
$ct_deployment_date = $ct_row_list['ct_deployment_date'];
$ct_prev_emp = $ct_row_list['ct_prev_emp'];
echo "<tr>
<td>".
$x++."
</td>
<td>
$ct_FName $ct_MName $ct_LName $ct_SName
</td>
<td>
$ct_address
</td>
<td>
$ct_birthday
</td>
<td>
$ct_age
</td>
<td>
$ct_gender
</td>
<td>
$ct_level_educ
</td>
<td>
$ct_course
</td>
<td>
$ct_school
</td>
<td>
$ct_prev_covid
</td>
<td>
$ct_training_date
</td>
<td>
$ct_deployment_date
</td>
<td>
$ct_prev_emp
</td>
</tr>";
}
}else{
echo "<tr><td><b>Nothing to display</b></td></tr>";
}
您可以遍历行数组,将空值替换为 No data
。
$optional_fields = ["ct_SName"];
while ($ct_row_list = mysqli_fetch_array($ct_list)) {
foreach ($ct_row_list as $name => &$value) {
if (in_array($name, $optional_fields)) {
continue;
} elseif (empty($value)) {
$value = "No data";
}
}
// rest of your code goes here
很难准确地说出你的意思,如果某行有空列则跳过该行?
如果你在查询中 select 15 列或者你知道 SELECT *
将 return 15 列,然后过滤掉空的,看看是否有 15:
if (mysqli_num_rows($ct_list) > 0) {
while ($ct_row_list = mysqli_fetch_array($ct_list)) {
if (count(array_filter($ct_row)) == 15) {
echo "<tr>
<td>$x++</td>
<td>$ct_FName $ct_MName $ct_LName $ct_SName</td>"; //etc...
}
}
}
您也可以勾选跳过:
if (count(array_filter($ct_row)) < 15) {
continue;
}
//echo your HTML