首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试使用foreach循环在MYSQL中选择一行数据

尝试使用foreach循环在MYSQL中选择一行数据
EN

Stack Overflow用户
提问于 2019-03-05 04:03:58
回答 2查看 94关注 0票数 1

我正在尝试用PHP和MYSQL创建一个简单的好友系统,我甚至不知道是否可以从另一个表中只使用他们的id来获取使用数据。顺便说一下,我是个新手,所以我不太懂这门语言:)任何帮助都会非常有价值

代码语言:javascript
复制
<?php if(count($friend_request) > 0): ?>
    <?php foreach ($friend_request as $friend_request): ?>
        <?php
            try{
                $statement = $db->query("SELECT * FROM users WHERE id = '$friend_request['id']' ");
                $user_info = $statement->fetchAll(PDO::FETCH_ASSOC);

            }catch (PDOException $ex){
                $user_info = flashMessage("An error occurred: " .$ex->getMessage());
            }   

        ?>
        <?=$friend_request['id'] ?>
        <?=$friend_request['user_requested'] ?>
        <?=$friend_request['user_to'] ?>
        <?=$friend_request['request_date'] ?>
    <?php endforeach; ?>
<?php else: ?>
    <center>
        <input id="emailInput" type="text" name="requestEmail" placeholder="someonesemail@bruh.com">
    </center>
<?php endif; ?>
EN

回答 2

Stack Overflow用户

发布于 2019-03-05 04:16:20

如果要将带引号的字符串放入字符串内的变量索引中,则需要使用卷曲语法。

代码语言:javascript
复制
$statement = $db->query("SELECT * FROM users WHERE id = '{$friend_request['id']}' ");

您也可以在索引中去掉引号,但这不是我喜欢的。

但最好使用准备好的语句。

代码语言:javascript
复制
<?php
if(count($friend_request) > 0):
    $statement = $db->prepare("SELECT * FROM users WHERE id = :id ");
    foreach ($friend_request as $friend_request):
        try{
            $statement->execute([':id' => $friend_request['id']]);
            $user_info = $statement->fetchAll(PDO::FETCH_ASSOC);
        }catch (PDOException $ex){
            $user_info = flashMessage("An error occurred: " .$ex->getMessage());
        }   
        ?>
        <?=$friend_request['id'] ?>
        <?=$friend_request['user_requested'] ?>
        <?=$friend_request['user_to'] ?>
        <?=$friend_request['request_date'] ?>
    <?php endforeach; ?>
<?php else: ?>
    <center>
        <input id="emailInput" type="text" name="requestEmail" placeholder="someonesemail@bruh.com">
    </center>
<?php endif; ?>
票数 0
EN

Stack Overflow用户

发布于 2019-03-05 04:26:02

我假设你的id是数字的,将值传递给一个新的变量,比如$id = friend_request['id'];,然后你的查询可以是"SELECT * FROM users WHERE id = $id LIMIT 1"而不是“‘","limit 1”是为了性能,你只需要使用fetch more info here来检索行$statement->fetch(PDO::FETCH_ASSOC);,然后你可以打印或者直接使用数组$user_info来获取你需要的任何东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54990718

复制
相关文章

相似问题

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