【问题标题】:how to display default image when field image table is empty字段图像表为空时如何显示默认图像
【发布时间】:2017-02-17 18:22:47
【问题描述】:

我有一个 user 表,其中用户当前已登录并且尚未上传照片(用户表中的图像列为空) 显示的图像是 Default.png。如果用户上传了图片,则显示图片。

我的代码有什么问题?

这是我的数据库中的表'user'(很抱歉我无法在此处编写数据库结构)。

|编号 | gb_user | = | 1 |我的.jpg |

这个视图(headers.php):

<?php $user_log = info_user_login();?>
                <?php if(!empty($user_log->gb_user) == NULL):?>
                  <img class="img-circle" src="../assets/img/default.png" width="70" style="margin:20px 0 0 10px;">
                 <?php else:?>
                  <img class="img-circle" src="../assets/img/<?php echo $user_log('gb_user');?>" width="70" style="margin:20px 0 0 10px;">
                  <?php endif;?>

这个助手:

function info_user_login(){
$CI = & get_instance();
$CI->load->model('admin/setting_adm');
$get_data_login = $CI->setting_adm->get_data_log_user();
return $get_data_login;

}

还有这个模型:

function get_data_log_user(){
    $id_login = $this->session->userdata('id');
    $this->db->where('id', $id_login);
    $this->db->from('user');
    $q = $this->db->get();
    return $q->result();
}

其中 ID = session_id_login

【问题讨论】:

  • 您的代码的实际行为是什么?在哪些情况下它不起作用:当用户照片,或者当他没有,或者两者都有?非工作情况下的输出是什么?

标签: php mysql codeigniter


【解决方案1】:
<?php if(!empty($user_log->gb_user) == NULL):?>

这个条件没有意义,empty() 会返回一个布尔值。

尝试以下方法之一:

<?php if(empty($user_log->gb_user)):?>
<?php if($user_log->gb_user == NULL):?>

【讨论】:

    【解决方案2】:

    试试这样...

    使用ternary operator(:?)查看是否有图片。

    查看:

    <?php $user_log = info_user_login();
         $image = isset($user_log->gb_user)?"../assets/img/$user_log->gb_user":"../assets/img/default.png";//sets your image
        ?>
          <img class="img-circle" src="<?php echo $image;?>" width="70" style="margin:20px 0 0 10px;">
    

    【讨论】:

      【解决方案3】:

      只需使用empty() 函数来检查图像是否存在。如果gb_user 字段中没有值,该函数将返回true

      <?php if( empty($user_log->gb_user) ): ?>
          <img class="img-circle" src="../assets/img/default.png" width="70" style="margin:20px 0 0 10px;" />
      <?php else: ?>
          <img class="img-circle" src="../assets/img/<?php echo $user_log('gb_user');?>" width="70" style="margin:20px 0 0 10px;" />
      <?php endif;?>
      

      【讨论】:

        【解决方案4】:

        您可以使用 Js/HTML 方法,例如 HTML if image is not found:

        <img id="currentPhoto" src="SomeImage.jpg" onerror="this.src='Default.jpg'" width="100" height="120">
        

        但不是在开始时设置默认图像,而是创建另一个隐藏图像

        <img src="<?=$myImage?>" onerror="getElementById("default-img").src" />
        

        即使$myImage 为空,php 将其呈现为空字符串,DOM 将其视为错误并触发事件“onError”

        【讨论】:

        • 很抱歉你所有的答案都不匹配
        • 脚本仍然会生成默认图像。但我已经在数据库中填写了 gb_user 列
        猜你喜欢
        • 2013-05-27
        • 2015-11-16
        • 2023-03-06
        • 2019-06-13
        • 1970-01-01
        • 2013-02-02
        • 2012-01-03
        • 2020-01-02
        • 1970-01-01
        相关资源
        最近更新 更多