为每个用户自动生成内容

时间:2013-08-03 22:14:42

标签: php mysql

我希望这个标题解释得很好,但我遇到了麻烦,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等等......对于完整的用户数据库。我正在假设它的某种时间或前期循环,但正如上面我的努力,迄今为止,没有结果。

感谢。

1 个答案:

答案 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_*功能被删除,建议您使用mysqliPDO,请参阅this question了解详情。