【问题标题】:php wordpress - retrieveing values from mysql table one by onephp wordpress - 从mysql表中一一检索值
【发布时间】:2018-01-04 10:59:31
【问题描述】:

我一直在尝试从我刚刚创建的 mysql 表中一一检索数据。下图显示了包含示例优惠券代码的表格和一个名为“test”的字段,用于指定代码是否由用户生成。

我的目标是连续检索“adidas”下方的优惠券代码(arda10,arda11,arda12,...),并在显示优惠券代码后更新测试栏中的优惠券状态。 如果测试列中的状态为 1,则代码不应显示给用户。只应打印状态为 0 的代码。

$kupon = $wpdb->get_results( 'SELECT * FROM `wp_kuponlar`', ARRAY_A);
echo $kupon[adidas];

请帮忙!

【问题讨论】:

  • 那么是有错误还是某种错误?

标签: php mysql wordpress algorithm


【解决方案1】:

我不确定您的问题和错误可能是什么,但这是一种更好的格式和方法,请确保您的阿迪达斯像我下面的示例一样被引用。

 $kupon = $wpdb->get_results( 'SELECT * FROM wp_kuponlar', ARRAY_A);
     foreach($kupon as $coupon){
        echo $coupon['adidas'];
    }

额外提示 如果表格附加到 wordpress db 而不是完全不同的 db,则更好的方法是执行以下操作

 $kupon = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}_kuponlar", ARRAY_A);

基于评论

 $kupon = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}_kuponlar where status = 0 Orderby id ASC", ARRAY_A);
     foreach($kupon as $coupon){
        echo $coupon['adidas'];
    }

【讨论】:

  • 我刚刚编辑了mysql表wp_kuponlar。在此处查看图片:ibb.co/ckpBRb 我想要的是: 1. 按 ID 以升序显示代码。 2. 更新每张优惠券的状态字段,如果状态为 1,则不显示状态。更新 wp_kuponlar SET status='1' WHERE adidas='arda12'
  • 嗨@ArdaUlusoy,你的问题不是很清楚,但我会根据你的问题对我之前的回答进行更新。请尝试更好地解释,尤其是更新方面。
  • 嗨@Ezekiel 感谢您的努力。我有一个使用 WP 创建的优惠券代码网站。我正在为我的会员创建交易,并且在每笔交易中都有唯一代码的数量(因交易而异)。我正在将代码上传到 wp_kuponlar 表,每个代码在表中都有 id(递增顺序 1、2、3、...)和状态(1 或 0;1 表示未使用,0 表示已使用)值。我的目标是每次用户尝试查看代码时检索一个唯一且未使用的代码。因此,第一个用户生成代码将看到表中的第一个代码,第二个将看到第二个,第三个将看到第三个。如果代码的状态为 0,则不应检索它。
  • 嗨@ArdaUlusoy 我已经改变了我关于检索所有非 0 代码的文章,但是你可以在代码中轻松地在 0 和 1 之间互换。因此它将检索越来越多的非 0 的代码,即它只会显示状态为 1 的代码
【解决方案2】:

从 wp 数据库表中获取结果使用 $wpdb->get_results() 查询类似的东西,

它为您提供测试状态为 0 或 1 的所有数据

 <?php

    global $wpdb;
    $kupon = $wpdb->get_results(
            $wpdb->prepare(
                    'SELECT * FROM wp_kuponlar'
            ), ARRAY_A
    );
    foreach ($kupon as $coupon) {
        echo $coupon['adidas'];
    }

但如果您只想过滤 0 的值,则更改查询为,

<?php

global $wpdb;
$kupon = $wpdb->get_results(
        $wpdb->prepare(
                'SELECT * FROM wp_kuponlar WHERE test = %d', 0
        ), ARRAY_A
);
foreach ($kupon as $coupon) {
    echo $coupon['adidas'];
}

按优惠券升序查找结果数据集,测试状态不为1,

 <?php

global $wpdb;
$kupon = $wpdb->get_results(
        $wpdb->prepare(
                'SELECT * FROM wp_kuponlar WHERE test != 1 ORDER BY RIGHT(adidas,3)'
        ), ARRAY_A
);
// Now the resultset will be in order of ids
foreach ($kupon as $coupon) {
    echo $coupon['adidas'];
}

【讨论】:

  • 嗨桑杰。感谢您的回答。我明白了如何用它来获得地位。但我有两个问题:1. arda11arda13arda14arda15arda16arda17arda18arda19arda2arda20arda3arda4arda5arda6arda7arda8arda9da1 2. 我被困在一个一个地把这些值放在桌子上。
  • 让我帮助你@ArdaUlusoy,请让我清楚你的评论为'如果测试列中的状态是1,代码不应该显示给用户。只应打印状态为 0 的代码。这是什么意思?
  • 当然。我刚刚编辑了 mysql 表 wp_kuponlar。在此处查看图片:ibb.co/ckpBRb 我想要的是:1. 按 ID 以升序显示代码。 2.更新每张优惠券的状态字段,如果状态为1则不显示状态。更新wp_kuponlar SET status='1' WHERE adidas='arda12'
  • 现在@ArdaUlusoy,我又添加了一个脚本,它实际上按照优惠券的顺序为您提供了结果。
猜你喜欢
  • 1970-01-01
  • 2016-02-15
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 2011-11-28
相关资源
最近更新 更多