php - 尝试计算并返回表中的行数

标签 php mysql

我有以下代码来计算数据库中的行数并将结果返回给用户:

// Connect to database and select
$mysqli = mysqli_connect($config['db_hostname'], $config['db_username'], $config['db_password'], $config['db_name']);
$mysqli->set_charset('utf8');
$select = 'SELECT COUNT(*) AS wines FROM  ft_form_4 WHERE feu_id = "'.$feuid.'"';
$response = mysqli_query($mysqli, $select) or die("Error: ".mysqli_error($mysqli));
$result = mysqli_fetch_array($response, MYSQLI_ASSOC);

$wines = (int)$result[wines];

echo $wines;

// Return 0 for no entries
if ($wines = 0) {

echo 'You currently have no wines entered, your current total entry fee is <strong>£0</strong>.';
}

elseif ($wines = 1) {

echo 'You currently have 1 wine entered, your current total entry fee is <strong>£135</strong>.';
}

elseif ($wines > 1) {

$fee = $wines * 135;
echo 'You currently have '.$wines.' wines entered, your current total entry fee is <strong>'.$fee.'</strong>.';
}

当我运行代码时,结果在第一位中显示为 3(我刚刚输入用于测试)这是正确的,但它总是显示第二行,表示输入了一种酒并且输入费用为 135 英镑。它似乎无法将 3 识别为数字。

我已经使用 mysqli_num_rows 尝试了第二批代码,但我也没有任何运气。

最佳答案

也许是更聪明的方法?

$fee = $wines * 135;
echo 'You currently have '.($wines > 0 ? $wines : 'no').' wine'.($wines != 1 ? 's' : '').' entered, your current total entry fee is <strong>£'.$fee.'</strong>.';

解释:

($wines > 0 ? $wines : 'no')

我们在括号内所做的是评估第一部分:

$wines > 0

如果为真,'?' 之后的值(if) 将被输出,如果 false 将输出 ':' (else) 之后的值。

同样,找出是否在 wine*s* 中回显 s:

($wines != 1 ? 's' : '')

如果 $wines == 1 我们不回显 wine 中的 s*s*:

关于php - 尝试计算并返回表中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591813/

相关文章:

javascript - 将 php 值回显到 javascript onchange()

php - 反转通配文件的顺序

PHP - 登录表单在 IE8 中不起作用

mysql - 在VBA中查询查询

php - 一条数据库记录,数组中的两项

php - PhpMyAdmin 中的培训需求分析数据库 - 难以在我的数据库中存储用户特定的 radio 答案

php - MYSQL ON DUPLICATE KEY 插入其他内容

mysql - SQL 选择不匹配特定选择的地方

mysql - 1432 - 无法创建联合表。数据源连接字符串 %s 的格式不正确

mysql - 根据记录中的日期不同输出