php sayısı () yardım etmek html elemanları özelliklerini ayarlayabilirsiniz vermek

3 Cevap php

Ben belirli bir şekilde görüntülemek istediğiniz bir menü inşa ediyorum. Ancak, bu kodlanmış olamaz bu yüzden bir veritabanından doldurulur olmaktır.

Esasen ben zaman oluşturulur <li> etiketleri ayarlamak yerlerde görünmesini istiyorum ve ben PHP sayısı () ve zaten onlar için ayarlanmış olan CSS kullanarak sınıfı ayarlamak umuyordum.

Basically, the menu will have no more than 12 <li> etiketleri. Ben onlar oluşturulan olarak onlara bir CSS id atamak mümkün olmak istiyorum. Bu nedenle I () <li> etiketleri ve ve sonra bir şekilde onlara eşsiz bir CSS id atamak sayısını döndürmek için sayılmasını kullanmak umuyordum, kesinlikle sayfaya yerleştirilmiş olması gibi bir genel sınıf olamaz < / strong>

<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> 

Temelde, menü doldurulur gibi count() biri nereye gider hangi çalışmak için kullanarak <li> için özel id atamak istiyoruz.

Ben orada bir değişken ve atama değerleri için veritabanı sonuçları yerleştirmek gerektiğini düşünüyorum??

Hiçbir mantıklı?

Umarım!

3 Cevap

it is not very clear what do you need count() for. first of all you have to get associated array of items from database in desired order (sort by id, title, etc) you can get something like this:

//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>';

Sonuç olarak IDS 'LINK1', 'link2' vb listesini alacak

Ok, first of all have a look at this. count() is not a function what you are looking for. It's a good idea to store the id label into database and gain them in them script in order to print later.

Basically code will looks like:
EDIT(After reading the comments), elements array can be extended to keep any data type you want, for example another array:

$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>";

$ Yerine elemanın size veritabanından satır kullanır.

Aşağıda project_id sizin kimliği yıllarda bir sayı sayı nerede, bunu bir yoludur.

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>'

Eğer bir proje kimliği kullanmak istemiyorsanız, burada bunu yapmak için başka bir yoludur:

$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>'