Php 验证表行是否在每个字段中都有数据
我想验证每个字段中的当前行是否有数据,如果没有,则不显示数据。请帮帮我。另外,建议在显示表数据时使用echo,或者我应该坚持使用html。提前谢谢!我一直在网上搜索,没有找到一些答案。哈哈Php 验证表行是否在每个字段中都有数据,php,mysqli,Php,Mysqli,我想验证每个字段中的当前行是否有数据,如果没有,则不显示数据。请帮帮我。另外,建议在显示表数据时使用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=statio
$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>";
}
$ct\u list=mysqli\u query($conn,“在ct上从ct左连接站中选择*。station\u id=station.station\u id在dilg\u emp.station\u id=station.station\u id,其中dilg\u emp.dilg\u emp\u id=$session\u id”);
如果(mysqli_num_行($ct_列表)>0){
而($ct\u行\u列表=mysqli\u获取\u数组($ct\u列表)){
$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_地址=$ct_行列表['ct_地址];
$ct_birth=$ct_row_list['ct_birth'];
$ct_age=$ct_行_列表['ct_age'];
$ct_性别=$ct_行列表['ct_性别];
$ct_level_educ=$ct_row_list['ct_level_educ'];
$ct_课程=$ct_行列表['ct_课程];
$ct_school=$ct_row_list['ct_school'];
$ct_prev_covid=$ct_row_list['ct_prev_covid'];
$ct_training_date=$ct_row_列表['ct_training_date'];
$ct_部署日期=$ct_行列表['ct_部署日期];
$ct_prev_emp=$ct_row_list['ct_prev_emp'];
回声“
".
$x++。”
$ct\u FName$ct\u MName$ct\u LName$ct\u SName
$ct\U地址
$ct_生日
$ct_年龄
$ct_性别
$ct_level_educ
$ct\U课程
$ct_学校
$ct\U上一个新冠病毒
$ct\u培训\u日期
$ct\u部署\u日期
$ct\u prev\u emp
";
}
}否则{
回应“无需显示”;
}
您可以在行数组上循环,将空值替换为无数据
$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
很难准确地说出您的意思,如果一行有任何空列,那么跳过该行 如果您在查询中选择了15列,或者您知道
select*
将返回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(mysqli\u num\u行($ct\u列表)>0){
而($ct\u行\u列表=mysqli\u获取\u数组($ct\u列表)){
if(计数(数组过滤器($ct\U行))==15){
回声“
$x++
$ct\u FName$ct\u MName$ct\u LName$ct\u SName“//等等。。。
}
}
}
您还可以检查并跳过:
if (count(array_filter($ct_row)) < 15) {
continue;
}
//echo your HTML
if(计数(数组过滤器($ct\u行))<15){
继续;
}
//回显您的HTML
什么不起作用?你的意思是如果行中有任何列是空的,那么就不显示行还是什么?谢谢它的工作。如果我要排除一行中的1个字段。试一试$ct\u SName。我将如何做?使用if
语句跳过该字段。我将把它放在if语句的哪里?我已经将它添加到我的答案中了。