我正在构建一个我希望以某种方式显示的菜单。但是,它应该从数据库填充,因此不能进行硬编码。
基本上我希望<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>
将特定ID分配给count()
,以确定哪一个去哪里。
我认为我需要将数据库结果放入变量并从那里分配值????
有道理吗??
希望!
答案 0 :(得分:2)
好的,首先看一下this。 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。
答案 1 :(得分: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>';
结果您将收到包含ids'link1','link2'等
的列表答案 2 :(得分:1)
以下是一种可以执行此操作的方法,其中project_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>'