试图从mysql数据库中检索用户个人资料图片。

时间:2017-12-13 03:06:01

标签: php mysql

我在尝试检索存储在MYSQL数据库中的用户个人资料链接时遇到问题。

我尝试运行此代码来选择userprofile(存储用户个人资料图片链接的位置),但它出现了500错误。

        <?php
    $stmt = $DB_con->prepare('SELECT id, userprofile FROM users ');
    $stmt->execute();
if($stmt->rowCount() > 0)
{
    while($row=$stmt->fetch(PDO::FETCH_ASSOC))
    {
        extract($row);
        ?>

link

链接存储在userprofile列中。

HTML(function.php中包含数据库信息):

<?php 
    include('functions.php');


    if (!isAdmin()) {
        $_SESSION['msg'] = "You must log in first";
        header('location: ../login.php');
    }


?>

<!DOCTYPE html>
<html>
<head>
    <title> Admin Home</title>

</head>
<body>
    <div class="header">
        <h2>Admin - Home Page</h2>
    </div>
    <div class="content">
        <!-- notification message -->


        <!-- logged in user information -->
        <div class="profile_info">
            <img src="uploads/<?php echo $row['userprofile']; ?>" class="img-rounded" width="250px" height="250px" />

            <div>
                <?php  if (isset($_SESSION['user'])) : ?>
                    <strong><?php echo $_SESSION['user']['username']; ?></strong>

                    <small>
                        <i  style="color: #888;">(<?php echo ucfirst($_SESSION['user']['user_type']); ?>)</i> 
                        <br>
                        <a href="home.php?logout='1'" style="color: red;">logout</a>
                        &nbsp; <a href="create_user.php"> + add user</a>
                    </small>

                <?php endif ?>
            </div>
        </div>



    </div>

</body>
</html>

登录的测试用户的图像(Bigfella)

html

关于它为什么没有从数据库中检索图像链接的任何想法?提前致谢!!

4 个答案:

答案 0 :(得分:0)

您需要}关闭while()循环,而另一个}关闭if语句。

一般来说,要弄清楚PHP 500错误,如果您无权更改错误报告或以命令行模式运行(大多数共享主机将不提供任何选项),请删除代码语句(或二进制1/2你的语句),直到你有一部分工作,并一次添加一行,希望你能找到语法错​​误。 500可能意味着很多东西,但使用PHP我发现它通常意味着致命的语法错误。

答案 1 :(得分:0)

500 html错误表示在尝试提供页面时服务器上存在一些错误。

这意味着您可能会在

中生成错误的网址

<img src="uploads/<?php echo $row['userprofile']; ?>" class="img-rounded" width="250px" height="250px" />

或者服务器端有一个覆盖,它使得对某个URL路径的每次调用都由脚本提供。

如果您使用的是Apache / HTTPD,请尝试检查.htaccess文件

答案 2 :(得分:0)

1。)500错误是服务器错误。这里的原因似乎是不正确的语法。试试这个:

<?php
    ...

    if($stmt->rowCount() > 0)
    {
        // Since you want only one row (one user) you can drop the while
        $row=$stmt->fetch(PDO::FETCH_ASSOC);
        extract($row);
    }
?>

2.。)为什么要从所有用户加载iduserprofile值?

由于您一次只显示一个用户的信息,因此如果您使用更具选择性的内容会更好:

$stmt = $DB_con->prepare('SELECT `id`, `userprofile` FROM users WHERE `email`='.$clean['emailAddress']);

答案 3 :(得分:0)

我最终解决了500错误无法处理请求,而不是在开始时将代码移到<!DOCTYPE html>以下,并且它工作得很好没有错误,所以我没有线索发生了什么,但现在正在工作!谢谢所有提供帮助我尝试解决这个问题的人! :)