gpt4 book ai didi

php - 如何从 MySQL 中查询多个对应值并将它们轻松添加到一起?

转载 作者:行者123 更新时间:2023-11-29 16:53:10 25 4
gpt4 key购买 nike

我的数据库表保存特定字体文件的宽度测量值。我正在尝试在数据库中查询 $word 变量中每个相应字母的 Letter_Box_Width 并将它们加在一起以获得 $total_word_box_width。

不幸的是,我不确定如何轻松查询多个相应的值,然后将这些值添加在一起。我想我将 $word 拆分为一个数组...但随后我不清楚如何查询数组中的每个值。我是否必须对每个数组值进行单独的查询?

$word = "CHAD";

$array_to_query = str_split($word);

我的数据表:

Font Table

使用我的示例“CHAD”得出的 $total_word_box_width 的结果应为 4500。

非常感谢任何帮助。

最佳答案

像这样的东西应该可以达到你想要的效果。我假设您正在使用 mysqli 并且您在 $conn 中有一个数据库连接,但这应该很容易更改为您实际拥有的。

$word = 'chad';
$letters = array_unique(str_split(strtoupper($word)));
$query = "SELECT GROUP_CONCAT(Alpha) AS Alpha,
GROUP_CONCAT(Letter_Box_Width) AS Letter_Box_Width
FROM letters
WHERE Alpha IN ('" . implode("','", $letters) . "')";
$result = mysqli_query($conn, $query) or die("unable to query database!");
if ($row = mysqli_fetch_assoc($result)) {
$widths = array_combine(explode(',', $row['Alpha']), explode(',', $row['Letter_Box_Width']));
$total_word_box_width = 0;
foreach (str_split(strtoupper($word)) as $letter) {
$total_word_box_width += $widths[$letter];
}
}
echo $total_word_box_width;

我添加了对 strtoupper 的调用,这样您的单词是大写还是小写都没关系。如果实际上您的表中有单独的大写和小写字符条目,您可以在它出现的地方删除该调用,即

$letters = array_unique(str_split($word));
foreach (str_split($word) as $letter) {

关于php - 如何从 MySQL 中查询多个对应值并将它们轻松添加到一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52710513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com