我不得不复制&在每个页面上粘贴这么长的会话列表,如home.php,notices_list.php,histories.php,make_post.php,edit_post.php等。 我需要缩短这段代码,以便缩小每个文件的大小。
我将会话变量标记在我的MySQL表列名后面,因此,如果我为脚本编写了一段代码来获取列名,然后根据列名创建会话,那么代码会缩短很多每页。因此我的Web服务器将占用较少的CPU。
我目前的代码如下:
<?php
$id = $_SESSION["id"];
$email = $_SESSION["email"];
$username = $_SESSION["username"];
$first_name = $_SESSION["first_name"];
$surname = $_SESSION["surname"];
$gender = $_SESSION["gender"];
$dob = $_SESSION["date_of_birth"];
$religion = $_SESSION["religion"];
$education = $_SESSION["education"];
$profession = $_SESSION["profession"];
$state = $_SESSION["state"];
$country = $_SESSION["country"];
}
?>
以下是我的尝试:
1
<?php
$sql = "SHOW COLUMNS FROM browsing_histories";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
$$row['Field'] = $_SESSION["$row['Field']"]."<br>";
}
?>
另一种尝试: 2。
<?php
$sql = "SHOW COLUMNS FROM browsing_histories";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
$$row['Field'] = $_SESSION["\$row['Field']\"]."<br>";
}
?>
请记住,因为列名是这样的:id,username,gender。
然后我现在开始阅读冗长的文件,会议内容如下:
<?php
$id = $_SESSION["id"];
$username = $_SESSION["username"];
$gender = $_SESSION["gender"];
?>
我不想写这样的会话行来减小文件大小,因此需要编写代码,以便脚本获取列名并在这些获取的列名(或获取的标签或获取的字段)下创建会话变量)。 简而言之,在上面提到的冗长代码中,您会看到名为“id”的变量,并且您会看到会话名称“id”。我不想在这里输入所有这个“id”,因为它是一个列名,我希望脚本自动写入列名。 最好,从列名创建数组值,以及如何做到这一点?
同样,我不想输入所有这些'id',因此希望脚本通过抓取列字段名来编写它们,因为这里列字段名称是'id'。你知道我想做什么。因此,请注意显示代码示例如何操作? 我需要使用mysqli的程序样式的样本。尚未进入pdo或oop。
编辑: 第一次尝试失败:
$sql = "SHOW COLUMNS FROM users";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
${$row['Field']} = $_SESSION["{$row['Field']}"]."<br>";
}
第二次尝试失败:
$sql = "SHOW COLUMNS FROM users";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
$row = $_SESSION["{$row['Field']}"]."<br>";
}
答案 0 :(得分:0)
你的$$行变量还有额外的$$