【发布时间】:2018-03-23 03:59:38
【问题描述】:
总结:我正在寻找比较表中的 ID 以查看它是否存在于另一个表中。理想情况下,我想在 PHP 回显语句中执行此操作(使用来自两个单独查询的结果)。是否可以在此 PHP 语句中执行此操作,还是应该将查询设置为先返回 id 然后再输入?
详情:
我正在尝试制作一个执行以下操作的 php 表:
(1) 显示来自 mysql 表的结果
(2) 允许用户将项目添加到收藏夹列表
(3) 收藏列表应将第一个表的 ID 复制到新表
(4) 一旦 id 存在于其他表中,收藏项旁边的图标或链接应更改
(5)点击喜欢的项目会将其从表格中删除(所以基本上经过相同类型的过程)
现在我的这个页面的 PHP 执行以下操作:
(1) 连接数据库
(2) 查询结果,循环建表
(3) 将行 id 传递给另一个将其添加到表中的 php 页面
我不知道如何设置“收藏夹”图标以显示它正在使用中,并在第二次点击时使用删除脚本(我希望这是有道理的)
我是新手,而不是开发人员(希望我正确地传达了这一点)。我想我可以通过以下方式做到这一点:
(1) 将查询中的两个表连接起来并用大小写
(2)在查询(函数等)的mysql端做其他事情
(3) 在 php loop/echo 中处理一些事情
我读过的很多内容都推荐 Ajax,但我正在尝试学习 php。注意:我已经编写了添加和删除脚本并在另一个文件中工作,我只需要帮助。
到目前为止我已经尝试过
- 在我的 echo(php 端)中添加引用另一个查询的“if”语句。
- 尝试三元运算符(php 端)
- 尚未针对 mysql 查询执行任何特定操作 - 不确定这是否有效,并且更愿意从 php 文件中学习
没有成功。
/*Show grid of records for user to choose as fav, allow viewer to take action on it*/
$sql = "SELECT id, record1, record2 FROM MyTable";
$result = $cxn->query($sql);
$in = "SELECT id FROM MyFavorites"; //no idea if I should have this here or nested below
$exists = $cxn->query($in);
echo "<table><tr><th>record1</th><th>record2</th></tr>";
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
//bring back records from table and attempt to case rowid to see if it exists in favorites table
echo "<tr><td> " . $row["id"]. " " . $row["record1"]. "</td><td> " . $row["record2"]. "</td><td><a href='AddFavorite.php?favid=".$row['id']."'>Add</a></td><td>($row["id"]=$in)? "active":""</td></tr>";
} //basically what I want here is if exists direct to remove.php, if not exists redirect to add.php - adjust text accordingly
} else {
echo "no results";
}
echo "</table>";
【问题讨论】:
-
你能把这个标题改成英文有意义的东西吗?当标题简洁地描述了核心问题时,你更有可能获得答案,现在它似乎是一个单词的集合,很难理解我是否应该根据它阅读其余的帖子。
-
问题标题很糟糕。请改进它,这就是我们能理解它的原因。