使用PHP生成动态<li>元素

时间:2017-04-10 19:17:03

标签: php html sql mysqli

我正在为父母做一个网络应用程序,我想为父母拥有的每个孩子创建li元素,为此,我有一个儿童数据库,所有孩子都使用该软件,我确定父母和#39; s的孩子有一个填充了父电子邮件的列,以便获取孩子列表,我查询链接到该电子邮件的所有孩子。

$stmt = $mysqli->prepare("SELECT id,nombre, medio, alergias, curso, grupo, plato FROM usuarios WHERE idmail = ? ORDER BY id ASC");
$stmt->bind_param('s', $_SESSION["email"]);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $nombre, $medio, $alergias, $curso, $grupo, $plato);
$arrayfinal = array();
$stmt->store_result();
while($stmt->fetch()){
    $arrayfinal[] = $id;
    $arrayfinal[] = $nombre;
    $arrayfinal[] = $medio;
    $arrayfinal[] = $alergias;
    $arrayfinal[] = $curso;
    $arrayfinal[] = $grupo;
    $arrayfinal[] = $plato;
}

数组&#34; arrayfinal&#34;包括所有家庭儿童的信息。 列表如下所示:list

后端看起来像这样:

 <ul class="nav nav-main">
    <li class="nav-active">
        <a href="">
            <i class="fa fa-user" aria-hidden="true"></i>
            <span><? echo $arrayfinal[1]; echo " "; echo $_SESSION["apellido"];?></span>
        </a>
    </li>
 </ul>

列表中每个元素的内容。

我之前提到的数组如下所示:

array(14) {
  [0]=>
  int(1)
  [1]=>
  string(5) "Ramon"
  [2]=>
  string(2) "12"
  [3]=>
  string(6) "Nueces"
  [4]=>
  string(5) "3 ESO"
  [5]=>
  string(1) "A"
  [6]=>
  string(1) "5"
  [7]=>
  int(2)
  [8]=>
  string(6) "Carlos"
  [9]=>
  string(2) "23"
  [10]=>
  string(7) "Lactosa"
  [11]=>
  string(6) "2 Batx"
  [12]=>
  string(1) "A"
  [13]=>
  string(1) "1"
}

在这个阵列中有两个孩子&#34; Carlos&#34;和#34; Ramon&#34;。

总结一下,我想要的是一个列表,它自动为列表中的每个孩子使用PHP生成元素。

1 个答案:

答案 0 :(得分:0)

尝试在此处使用此代码:

<ul class="nav nav-main">
<?php
    // connect to your database
    $db_name = 'mydatabase';
    $db_user = 'user';
    $db_pass = 'password';
    $db = new \PDO('mysql:host=localhost;dbname='.$db_name.';charset=utf8mb4', $db_user, $db_pass);

    // fetch the database data
    $sql = '"SELECT id, nombre, medio, alergias, curso, grupo, plato FROM usuarios WHERE idmail = ? ORDER BY id ASC"';
    $stmt = $db->prepare($sql);
    $stmt->execute([$_SESSION["email"]]);

    // run through the results and display them
    $results = []; 
    while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
        $text = '<li class="nav-active"><a href=""><i class="fa fa-user" aria-hidden="true"></i><span>'.$row['nombre'].' '.$_SESSION["apellido"].'</span></a></li>';
        echo("$text\n");
    }
?>
</ul>

请注意,此解决方案确实使用PDO而不是mysqli