PHP的新手,我正在尝试做一个练习,其中包括创建一个包含人员信息的简单动态网站,链接到本地数据库。
但我陷入了一个只能通过foreach循环显示任何内容的地方。
我的数据库看起来像这样(当然有更多人):
<?php
function getAllPerson() {
$list_person = array();
$person1 = array(
"id" => 0,
"surname" => "John",
"name" => "Doe",
"img" => "https://randomuser.me/api/portraits/men/64.jpg");
$liste_person[0] = $person1;
return array($personne1);
}
function getPerso($person_id) {
$list_person = getAllPerson();
return $list_person[$person_id];
}
我的页面:
<?php
require_once 'model/database.php';
$id = $_GET["id"];
$person = getPerso($id);
$list_person = getAllPerson();
require_once 'layout/header.php'; ?>
<section class="row">
<article class="column">
<h2><?php echo $person['name'] ?> <?php echo $person['surname'] ?></h2>
<img src="<?php echo $person['img'] ?>" alt="<?php echo $person['name'] ?> <?php echo $person['surname'] ?>" class="pull-left thumbnail">
</article>
</section>
但没有任何作用(有更多的HTML代码,但我想在这里保持简短)..
但是,当我做一个foreach并将文章放入:
<?php foreach ($list_person as $person) : ?>
一切都在显示,但同时有4个人(这是合乎逻辑的,这是一个foreach)。
而且我必须承认我不知道如何使它成为每个不同“id”的独立页面。你能帮帮我吗?请保持简单!
非常感谢!
答案 0 :(得分:0)
如果您可以使用它我做了简短的检查:
function getAllPerson($id = null) {
$list_person = array();
$person1 = array(
"id" => 0,
"surname" => "John",
"name" => "Doe",
"img" => "https://randomuser.me/api/portraits/men/64.jpg");
$person2 = array(
"id" => 1,
"surname" => "Sam",
"name" => "Parker",
"img" => "https://randomuser.me/api/portraits/men/65.jpg");
$list_person[0] = $person1;
$list_person[1] = $person2;
if($id == null){
return ($list_person);
}
else{
return $list_person[$id];
}
}
现在您可以在页面中调用此功能
<?php $person = getAllPerson(1); ?>
<?php if(!empty($person)) { ?>
<section class="row">
<article class="column">
<h2><?php echo $person['name'] ?> <?php echo $person['surname'] ?></h2>
<img src="<?php echo $person['img'] ?>" alt="<?php echo $person['name'] ?> <?php echo $person['surname'] ?>" class="pull-left thumbnail">
</article>
</section>
<?php } ?>
您可以使用相同的功能,如果您想获得所有用户,只需将参数字段留空:如getAllPerson()。
答案 1 :(得分:0)
好吧,我的问题已经过了,我没有找到合适的地方。代码很干净,我唯一的问题是$ _GET ['id']指向无处... Hassan Ahmed是对的。我只是忘了根据我正在看的人改变页面名称来使我的页面动态化,所以它无法显示任何内容。
非常感谢你的答案,我可以通过练习你给我的东西来理解更多的东西!