1

我使用的主要代码是

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 中的行,如链接上的图片所示,http://i.stack.imgur.com/gkUiz.jpg此处未定义的所有变量都在此 para 之前定义。

我真正想要的用户ID在不同的行中必须不同。在这个循环中唯一发生的事情是数组中的每个 uid 一个接一个地写入所有行,只有最后一个 uid 最终持续存在,在图中为 3 但我只希望每个 uid 应该单独出现,即不同用于差异的 uid。元标识。请帮忙

关于代码 $result1 从定义的 mysql 函数中获取用户 ID 数组,其余变量是用户定义的。我对php和编程有点陌生,所以请帮忙

4

3 回答 3

2

question不是很清楚,它是相关的WordPress,你没有WordPress在你的问题中添加标签。无论如何,WordPress它有自己的功能来处理后期元数据。在您的循环中,您尝试手动更新帖子元,但可以使用 WordPress 的update_post_meta函数来做到这一点。语法如下

<?php update_post_meta($post_id, $meta_key, $meta_value, $prev_value); ?>

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

<?php update_post_meta($post_id, 'grade', $new); ?>

$post_id将是您要更新的帖子 ID。

于 2012-12-25T20:53:59.687 回答
0

你的代码是为了解决这个问题$row["user_id"]

  • 如果发布的用户是同一用户,则结果为真 3
  • 如果这个变量来自其他查询,那么你必须查看这个查询你是如何得到这个user_id的,或者,在你的问题中发布它,看看为什么它只有 3。

  • 最好创建一个user_id专门为该用户插入数据的列。

  • $row["user_id"]是对 sql 注入的警告变量,因此必须通过mysql_real_escape_string()
于 2012-12-25T21:14:36.697 回答
0

好的,既然我了解了您的问题(您说“所有行”正在更新,这让我感到困惑,您只是指所有带有 this 的行post_id),我认为这就是答案:

$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查询获取 each ,并使用不同的 frommeta_id更新每一行。user_id$result11

于 2012-12-26T18:53:03.107 回答