我正在尝试使用PHP和MYSQL创建一个简单的朋友系统,但我不知道是否有可能仅从另一个表中获取具有其ID的使用数据。顺便说一下,我很新,所以我不太了解该语言:)任何帮助都将非常有价值
<?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; ?>
答案 0 :(得分:0)
如果要将带引号的字符串放在字符串中变量的索引中,则需要使用卷曲语法。
$statement = $db->query("SELECT * FROM users WHERE id = '{$friend_request['id']}' ");
您也可以将引号放在索引之外,但这不是我的偏好。
但是最好使用准备好的语句。
<?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; ?>
答案 1 :(得分:0)
我假设您的ID是数字,请将值传递给新的变量,例如$id = friend_request['id'];
,则您的查询可以是
"SELECT * FROM users WHERE id = $id LIMIT 1"
如果不使用“'”,则“限制1”是为了提高性能,而您只需要使用访存more info here来获取该行即可
$statement->fetch(PDO::FETCH_ASSOC);
稍后,您可以直接将其打印或使用$ user_info数组。