0

我正在构建一个我想以某种方式显示的菜单。但是,它将从数据库中填充,因此不能进行硬编码。

本质上,我希望<li>标签在创建时出现在设定的位置,并希望我可以使用 PHP count() 设置它们的类并且已经为它们设置了 CSS。

基本上,菜单不会超过 12 个<li>标签。我希望能够在它们生成时为它们分配一个 CSS id。它们不能有一个通用类,因为它们必须绝对定位在页面上,因此我希望使用 count() 返回<li>标签的数量,然后以某种方式为它们分配一个唯一的 CSS id

<ul id="work_div"> 
    <li id="one"><a href="detail/one">Project 1</a></li>
    <li id="two"><a href="detail/two">Project 2</a></li>
    <li id="three"><a href="detail/three">Project 3</a></li>
    <li id="four"><a href="detail/four">Project 4</a></li>
</ul> 

基本上,当菜单被填充时,我想<li>通过使用count()来确定哪一个去哪里。

我在想我需要将数据库结果放入一个变量并从那里赋值????

有意义吗??

希望!

4

3 回答 3

2

好的,首先看看这个。count() 不是您要查找的函数。将 id 标签存储到数据库中并在脚本中获取它们以便以后打印是个好主意。

基本上代码看起来像:
编辑(阅读评论后),可以扩展元素数组以保留您想要的任何数据类型,例如另一个数组:

$elements = array ( "one" => array ( "Project 1", "detail/one"), "two" => array( "Project 2", "detail/two"));
echo "<ul id='work_div'>";
foreach( $elements as $id => $key)
{
   list( $name, $href) = $key;
   echo "<li id=$id><a href='$href'>$name</a></li>";
}
echo "</ul>";

您将使用数据库中的行而不是 $element。

于 2009-06-06T15:06:39.640 回答
2

目前还不清楚您需要 count() 做什么。首先,您必须以所需的顺序(按 id、标题等排序)从数据库中获取相关的项目数组,您可以获得如下内容:

//result from database
$array = array(array('page_id'=>'1','sef_title'=>'one','title'=>'Project 1'),array('page_id'=>'2','sef_title'=>'two','title'=>'Project 2'),array('page_id'=>'3','sef_title'=>'three','title'=>'Project 3'));

//create counter starting from 1
$i = 1;
$arrayLinks = array();
foreach($array as $link){
$arrayLinks[] = "<li id=\"link{$i}\"><a href=\"detail/{$link['sef_title']}\">{$link['title']}</a></li>";
$i++;
}
//print result in ul
echo '<ul id="work_div">' . implode("", $arrayLinks) . '</ul>';

结果,您将收到 ID 为“link1”、“link2”等的列表

于 2009-06-06T15:36:03.797 回答
1

以下是您可以做到的一种方法,其中 project_id 是一个数字,即您的 id 中的数字。

echo '<ul id="work_div">'
$sql = 'SELECT project_id, project_name, project_link FROM projects';
$dh = mysql_query( $sql );

while ( $result = mysql_fetch_assoc( $dh ) ) {
    echo '<li id="'.$result['project_id'].'"><a href="'.$result['project_link'].'">'.$result['project_id'].'</a></li>';
}
echo '</ul>'

如果您不想使用项目 ID,可以使用另一种方法:

$numbers = array("zero", "one", "two", "three", "four", "five", "six", "seven");
echo '<ul id="work_div">'
$sql = 'SELECT project_name, project_link FROM projects';
$dh = mysql_query( $sql );
$counter = 1;
while ( $result = mysql_fetch_assoc( $dh ) ) {
    echo '<li id="'.$numbers[$counter].'"><a href="'.$result['project_link'].'">'.$result['project_id'].'</a></li>';
    $counter++;
}
echo '</ul>'
于 2009-06-06T17:47:18.570 回答