我希望这个标题解释得很好,但我遇到了麻烦,a)找到了我想要做的任何参考,以及b)弄清楚我脑子里的逻辑,所以所有的输入,即使只是指着我正确语法的方向,将是一个很大的帮助。
我的目标是这样 - 我拥有的每个用户都可以上传10张照片。我想在预设模板中显示每个用户的照片,所有用户“模板”显示在一个页面的列表中,即病人在模板中有十张照片,然后立即生病,用户二人,依此类推清单。
我已经设计了模板,我可以根据当前登录的用户ID填充它,但是我很难让它为每个用户显示,这样每个用户都可以看到彼此的照片。
我试过了:
$everyid = array($user_id) foreach ($user_id as $value) {include 'template.php';}
但这不起作用所以它似乎是非常错误的。简而言之,我想我想拿起数据库中的每个user_id,检查他们是否上传了照片(应用其他参数,但我不会进入这里,因为我应该能够自己排序),然后输出他们的如果相关,则将模板区域设置为某个页面。
请记住,我已将相关用户列中的所有照片路径输入到mysql表中,因此可能有一种更简单的方式来自动生成我忽略的内容,因此欢迎任何有关如何执行此操作的建议。
感谢。
编辑:如果需要可以提供模板代码等,但是它们很长,并且会扩展页面很多。编辑编辑:根据要求,以下是我的能力设置方式(简化形式):
user_id username image1 image2..... and so on.
1 her eduejdksk.jpg werfwer9342.jpg
2 him 234234234.jpg null
这是我的示例代码:
$user_id = $_SESSION['user_id'];
$queryone = mysql_query("SELECT `image1` FROM `users` WHERE `user_id` = $user_id");
$resone = mysql_fetch_array($queryone);
$valueone = $resone['image1'];
<div id="imageone">
<?php
if($valueone != '') {
echo '<img src="uploads/', $user_id, '/thumbsbig/', $valueone, '">';
} else { ;}
?>
</div>
这使我能够成功地假设“她”已登录,将“她”(eduejdksk.jpg)的image1调用到基于登录用户的模板中。它不允许我做的是,在一个模板中显示所述文件,然后在另一个模板中显示234234234.jpg。
正如您所看到的,它使用会话用户ID从数据库中选择照片。我想要发生的是$ user_id等于1然后是2然后3等等......对于完整的用户数据库。我正在假设它的某种时间或前期循环,但正如上面我的努力,迄今为止,没有结果。
感谢。
答案 0 :(得分:1)
您似乎已为用户表中的图像创建了10个字段。这不是很容易管理。你最好为图像创建一个单独的表。
id | user_id | path_to_image
----+-------------+--------------------------------
1 | 1 | some/image.jpg
2 | 1 | some/other/image.jpg
3 | 1 | some/other/image2.jpg
4 | 2 | some/other/users/image.jpg
.... etc ....
如您所见,任何用户现在都可以拥有零到无限数量的图像。如果您确实希望将图片数量限制为10,请在上传之前添加一个检查SELECT COUNT(*) FROM images WHERE user_id=$user_id
是否小于10。
现在可以轻松查询此表以获取所有用户的图像:
SELECT * FROM images
如果您希望获得特定用户的所有图片:
SELECT * FROM images WHERE user_id=$user_id
对于内部数据库关系,我建议您阅读InnoDB的foreign key relationship
哦,最重要的是:mysql_*
功能被删除,建议您使用mysqli
或PDO
,请参阅this question了解详情。