2013-07-11 3 views
0

죄송합니다.이 모든 것이 옳지 않다고 생각합니다. 처음으로이 사이트에서 질문합니다.앵커 ID를 통해 반복하십시오.

나는 html, css 및 php를 사용하여 웹 페이지를 만들고 있습니다. 특히, 데이터베이스의 정보를 사용하여 내 페이지에서 하위 탐색 링크를 만들려고합니다. 여기

는 내가 가지고있는 코드 :

foreach ($subArr as $sub => $result) 
{ 
    if (mysql_num_rows($result) > 0) 
    { 
     $resultString .= '<a id="$sub" style="cursor: poimter; color: #0076cf;" href="$sub">'.' | '.$sub.' | '.'</a>'; 
    } 
} 

$ subArr 나는 사용자가 하위 범주의 이름을 가진 링크를 클릭 할 수 있도록하고 싶습니다 하위 범주의 배열이며 그에게 걸릴 것입니다 같은 페이지의 일부. 지금 당장은 개별 링크를 만드는 대신 모든 하위 범주 이름 아래에 하나의 거대한 링크를 만듭니다.

분명히 나는 ​​일종의 루프가 필요하지만 $ 앵커 ID와 href를 모두 변경하기 위해 $ resultString을 살펴 보는 방법을 모르겠습니다.

어떤 도움을 주셔서 감사합니다!

+0

'print_r ($ subArr) '결과를 포함해야합니다. 배열의 구조를 알 수 없습니다. – Robert

답변

0

(주제,하지만 중요한)

당신은 오타를 가지고, 그것은해야한다 :

style="cursor: pointer; ..." 

대신 : 코드에서 오류가 있습니다

style="cursor: poimter; ..." 
0

.

에 변수를 넣으면 PHP가 구문을 분석하지 않아서 ""에 변수를 넣어야합니다.

foreach ($subArr as $sub => $result) 
{ 
    if (mysql_num_rows($result) > 0) 
    { 
     $resultString .= '<a id="'.$sub.'" style="cursor: pointer; color: #0076cf;" href="'.$sub.'"> | '.$sub.' | </a>'; 
    } 
} 

또한 href와 동일한 ID를 가지고 이상하게 보입니다.

나는 당신이 쓸모없고 앞으로 제거 될 mysql_ * 함수를 사용하는 것으로 나타났습니다. PDO 또는 을 대신 사용하는 것이 좋습니다. MySQLi

0
foreach ($subArr as $sub => $result) 
{ 
    if (mysql_num_rows($result) > 0) 
    { 
    $resultString = '<a id="$sub" style="cursor: pointer; color: #0076cf;" href="$sub">'.' | '.$sub.' | '.'</a>'; 
    } 

    $resultstring=""; 
} 
0

오른쪽 트랙에있는 것처럼 보이지만 몇 가지 사항이 섞여있는 것 같습니다. 당신이 unordered list를 사용하려면 메뉴를 만들 때

메뉴

첫째, 다음 CSS로 스타일을. basic example of this은 : 첫째로 다음과 같은 CSS

ul.menu, ul.menu * { 
    list-style: none; 
    padding: 0; 
    margin: 0; 
} 

ul.menu { 
    width: 100%; 
    height: 20px; 
    background: #ccc; 
    padding: 5px 0; /* Add padding top and bottom */ 
} 

ul.menu > li { 
    height: 20px; 
    line-height: 20px; 
    float: left; 
} 

/* Make a tag fill the entire LI so users can click 
anywhere, not just on the text. */ 
ul.menu > li > a { 
    display: block; 
    padding: 0 10px; /* Add padding between items */ 
    color: #000; 
    text-decoration: none; 
} 

ul.menu > li > a:hover, ul.menu > li > a:active { 
    background: #000; 
    color: #FFF; 
} 

/* Add divider between items, except last item (Does not work with earlier versions of IE) */ 
ul.menu > li:not(:last-child) { 
    border-right: 1px solid #000; 
} 

PHP 루프

메모와 함께

다음
<ul class="menu"> 
    <li><a href="test">Test</a></li> 
    <li><a href="test2">Test 2</a></li> 
    <li><a href="test3">Test 3</a></li> 
</ul> 

당신을 스타일을. mysql (depreciated)을 사용 중입니다. 즉, PHP 버전에서 얼마 지나지 않아 더 이상 사용할 수 없게됩니다. 많은 사람들이 PDO을 배우는 것이 좋습니다.개인적으로 나는 준비된 진술에 비해 MySQLi을 선호하지만 이는 단지 나의 취향이다. 어느 쪽이든 좋지만 그 중 하나를 배우십시오.

이제 루프하십시오. 루프 내에서 mysql 쿼리의 결과를 확인하는 것 같다. 틀린 문제이다. 위의 결과를 $ subArr로로드하는 쿼리가 있다고 생각합니다. $ subArr에로드하기 전에 mysql_num_rows에 전화해야합니다.

위와 같이 목록에 적용하면 루프 자체가 문제가되지 않습니다. 최종 코드는 다음과 같아야합니다. 참고로 필자는 예제에서 MySQLi를 사용했지만, 원한다면 MySQL로 변환하는 것이 너무 어렵지는 않지만 동일한 작업을 수행하는 것이 좋습니다.

<?php 
$subArr = array(); 
$query = "SELECT something FROM somewhere"; 
$result = $mysql->query($query); 
if($result->num_rows) { 
    while($row = $result->fetch_assoc()) { //I personally prefer fetch_assoc over the others, but fetch_row or fetch_array are both fine here too. 
     $subArr = $row; 
    } 
} 

//Lets output the menu 
$resultString .= '<ul class="menu">'; 
foreach($subArr as $sub => $result) { 
    $resultString .= '<li><a href="' . $result['url'] . '">' . $result['name'] . '</a></li>' 
} 
$resultString = '</ul>'; 

노트의 마지막 지점으로, 당신이 태그에 cursor: pointer를 넣을 필요가 없습니다, 그것은 기본적으로 그 스타일을 가지고있다.

나는 이것이 당신을 위해 몇 가지를 정리할 수 있기를 바랍니다.