当前位置: 首页 > 面试题库 >

使用PHP PDO从数据库获取值并将输入更新为已选中

郝永思
2023-03-14
问题内容

我要获得想要的结果最困难。我做了很多研究,但还没有得到。我对此很陌生,但是在发布此问题之前进行了研究。

好的,所以我有一个包含以下列的表:user_id,my_music,my_movies,my_weather,my_maps和my_news

除user_id之外的每一列都将具有1或0。我需要做的是找出数据库中针对特定用户的每一列所存储的值。

这是我到目前为止的内容-这是我的config.php:

// These variables define the connection information for your MySQL database
$username = "dbo12345";
$password = "xxxxxx";
$host = "db12345.db.123.com";
$dbname = "db12345";

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try { $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); }
catch(PDOException $ex){ die("Failed to connect to the database: " . $ex->getMessage());}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
header('Content-Type: text/html; charset=utf-8');
session_start();

这是我的admin.php文件:

require("config.php"); 
if(empty($_SESSION['user'])) 
{
    header("Location: index.php");
    die("Redirecting to index.php"); 
}

$userid = $_SESSION['user']['id'];
$sql = "SELECT my_music, my_movies, my_weather, my_maps, my_news FROM user_preferences WHERE user_id = :userID"; //Note the removed semi-colon that was probably causing your error
$stmt = $db->prepare($sql);
$stmt = $db->bindParam(":userID", $userid);
$userid = $_SESSION['user']['id'];
$sql = "SELECT my_music, my_movies, my_weather, my_maps, my_news FROM user_preferences WHERE user_id = :userID"; //Note the removed semi-colon that was probably causing your error
$stmt = $db->prepare($sql);
$stmt->bindParam(":userID", $userid, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetch();

if ($result['my_music']) {
    $musicChecked = 'checked="checked"';
} else {
    $musicChecked = '';

}
if ($result['my_movies']) {
    $checked = 'checked="checked"';
} else {
    $checked = '';

}

我如何以不同的方式编写上面的代码?我知道有一种方法,但是我很难找到它。

根据上面的结果,我需要更新一些复选框,例如,如果数据库中my_music为1,则将复选框设置为“ checked”。所以我这样做:

<input type="checkbox" name="mymusic" id="mymusic" <? echo $musicChecked;?> />
<input type="checkbox" name="mymovies" id="mymovies" <? echo $moviesChecked;?> />

如果我需要添加更多信息,请告诉我。任何帮助都将不胜感激。


问题答案:

您真的很接近,您无法正确获取:

require("config.php"); 
if(empty($_SESSION['user']['id'])) 
{
    header("Location: index.php");
    die("Redirecting to index.php"); 
}

$userid = $_SESSION['user']['id'];

$sql = "SELECT my_music, my_movies, my_weather, my_maps, my_news 
        FROM user_preferences 
        WHERE user_id = :userID";

$stmt = $db->prepare($sql);
$stmt->bindParam(":userID", $userid);
$stmt->execute();

$result = $stmt->fetch();
  • 您将Params绑定到语句对象而不是连接上
  • 您也可以获取该语句,而不是连接
  • 如果你想看到的内容使用使用fetchall返回一个2维数组var_dumpecho
<input id="mymusic"
       type="checkbox" 
       name="mymusic" 
       <?php echo ($result['my_music']==1 ? 'checked' : '');?>     
/>

<input id="mymovies"
       type="checkbox" 
       name="mymovies"  
       <?php echo ($result['mymovies']==1 ? 'checked' : '');?>
/>


 类似资料:
  • 我已经做了一个下拉列表,内容来自数据库,我可以获取id和名称,并在下拉列表中显示名称。但我只想在下一页中存储id:请参见下面的代码: 提交表单后,我可以得到name,但无法得到tag的值,我想要option tag的值,如何获得值?

  • 在过去的一周里,我一直在努力了解OpenWeatherMap API(链接),但是我现在很难将温度输入到一个JavaScript变量中。我使用过许多教程,但是我还没有找到一个将温度值放入JavaScript变量的教程。 如果你们想知道,这是API的结构: http://api.openweathermap.org/data/2.5/weather?q=London 我目前有这个代码: 提前谢谢你,

  • 你好,我有一个问题,我不能解决,我完成了一个注册表单,用户提供用户名,电子邮件密码,并从选择字段中选择一个值,一旦用户注册,而不是发送选项值作为字符串,它应该发送id,但我不明白知道怎么做。 这是RegisterController上的register操作(在dd上,值作为字符串传递) 这是寄存器视图(试图获取值字段中每个角色的id,但当我这样做时,它会停止显示视图上的选项) 如果有人需要另一个文

  • 在我的应用程序中,我试图创建一个实时提要(如Instagram提要或Facebook提要),其中包含包含图像、标题、用户用户名等图像计数的帖子。我创建了一个片段,用于拍摄图片、添加标题并将其从位图转换为字符串。我可以成功地将这些帖子(对象)发布到firebase数据库,但从数据库中获取每篇帖子的值并将其添加到arraylist中是行不通的CameraFragment(为每篇帖子向数据库添加帖子值)

  • 在我的Java web应用程序中,我使用了servlet(控制器)、JSP(视图)和POJO类。我每10秒运行一次应用程序,并将下拉列表中选定URL的更新值存储到数据库中。在我的servlet中,我获取这些值并转发到JSP,JSP将显示所选URL的更新值。我用过 在这里,我的JSP看起来像:在顶部框架中我有下拉列表。我选择一个URL并单击提交按钮一次。该选定选项(URL)的结果显示在底部框架中。第

  • 本文向大家介绍使用ABAP,通过从数据库表获取数据来更改itab中的值,包括了使用ABAP,通过从数据库表获取数据来更改itab中的值的使用技巧和注意事项,需要的朋友参考一下 您应该使用Modify语句执行此操作,如下所示- 还要注意,当您拥有带有标题行的内部表itab时,这意味着您具有表itab和结构itab,并且其用法取决于情况。像MODIFY和LOOP AT这样的命令很少同时使用。 另外,请