首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要有关PHP循环中使用的特定MySQL查询的帮助

问需要有关PHP循环中使用的特定MySQL查询的帮助
EN

Stack Overflow用户
提问于 2012-12-26 04:10:31
回答 3查看 250关注 0票数 1

我使用的主要代码是

代码语言:javascript
复制
while ($row = mysql_fetch_assoc($result1)) {
    echo $row["user_id"];
    $new    = "[grade uid=\"{$row["user_id"]}\" value=\"{$groupgrade}\" format=\"{$groupformat}\" prv_comment=\"{$groupprivatecomment}\" pub_comment=\"{$grouppubliccomment}\"] ";
    $sqq    = "UPDATE wp_postmeta SET meta_value='$new' WHERE meta_key='grade' AND post_id= $post_id ";
    $result = mysql_query($sqq);
    echo "grade has been updated";
}

这会影响表wp_postmeta中的行,如链接上的图片所示

这里所有未定义的变量都是在此段落之前定义的。

我真正想要的用户id必须在不同的行中不同。在这个循环中发生的唯一一件事是,数组中的每个uid一个接一个地写入所有行,最后只有最后一个uid存在,它在图中是3,但我只希望每个uid应该单独出现,即不同的uid代表diff。meta_id。请帮帮忙

关于代码,$result1从定义的mysql函数中获取一个userid数组,而rest变量是用户定义的。我对php和编程有点陌生,所以请帮助我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-27 02:53:03

好了,现在我理解了您的问题(您说“所有行”都在更新,这让我很困惑,您的意思是使用这个post_id更新所有行),我想这就是答案:

代码语言:javascript
复制
$sql2 = "SELECT meta_id FROM wp_postmeta where meta_key='grade' AND post_id = $post_id";
$result2 = mysql_query($sql2);

while (($row = mysql_fetch_assoc($result1)) && ($row2 = mysql_fetch_assoc($result2))) {
    echo $row2["meta_id"], ' => ', $row["user_id"];
    $new    = "[grade uid=\"{$row["user_id"]}\" value=\"{$groupgrade}\" format=\"{$groupformat}\" prv_comment=\"{$groupprivatecomment}\" pub_comment=\"{$grouppubliccomment}\"] ";
    $sqq    = "UPDATE wp_postmeta SET meta_value='$new' WHERE meta_key='grade' AND post_id= $post_id AND meta_id = {$row2["meta_id"]}";
    $result = mysql_query($sqq);
    echo " grade has been updated";
}

新的$sql2查询获取每个meta_id,并用来自$result11的不同user_id更新每一行。

票数 0
EN

Stack Overflow用户

发布于 2012-12-26 04:54:00

question不是很清楚,它与WordPress相关,而且您没有在问题中添加WordPress标签。无论如何,WordPress有它自己的函数来处理后期元数据。在您的循环中,您正在尝试手动更新post meta,但可以使用WordPress的update_post_meta函数来完成此操作。语法如下所示

代码语言:javascript
复制
<?php update_post_meta($post_id, $meta_key, $meta_value, $prev_value); ?>

在这种情况下,您可以使用以下代码

代码语言:javascript
复制
<?php update_post_meta($post_id, 'grade', $new); ?>

这里的$post_id将是你想要更新的帖子id。

票数 2
EN

Stack Overflow用户

发布于 2012-12-26 05:14:37

您的代码将解决此$row["user_id"]问题

  • 如果发布的是同一个用户,则结果将为true 3
  • 如果此变量来自其他查询,则您必须查看此查询如何获取此user_id,或者在您的问题中发布它,以了解为什么它只出现3.
  • 最好为user_id创建一列来插入数据,因为sql注入是一个警告变量,因此必须使用sql进行转义
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14033682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档