문제

나만을 처리하는 관계에서 php 지금까지,하지만 내가 붙어에 문제를 포함하는 하나의 관계.내가 앉아 있었어에서 이를 위해 며칠 수 없습니다 그래서 나는 절망적인 사람에서 단계 및 표시기 전에 해결책 내 마음입니다.

에서 내 데이터베이스가 있는 시리즈의 url 을 받는 선택을 쿼리와 함께 다양한 분야에서 다른 테이블이 있습니다.모든 url 는 적어도 하나 이상의 카테고리와 연결하지만,여러 개 있을 수 있습니다.그래서 나는 결과를 볼 수 있습니다 보이는 것과는 다음과 같이 비트:

link_id = 3   url= 'http://www.somesite1.com'   category = 'uncategorised'
link_id = 4   url= 'http://www.somesite2.com'   category = 'travel'
link_id = 4   url= 'http://www.somesite2.com'   category = 'fun'
link_id = 4   url= 'http://www.somesite2.com'   category = 'misc'
link_id = 3   url= 'http://www.somesite3.com'   category = 'uncategorised'

내가 이 작업을 합니다.때 나는 루프를 통해 그들을 인쇄,사용하는 동안 반복하고 mysql 가 배열의 결과를 똑같이 보이지 않다.그게 좋은 제외하고,내가 무슨 필요한 것은 그것을 읽을 다음과 같습니다.

link_id = 4   url = 'http://www.somesite2.com'   category = 'travel fun misc'

그래서 그 기본적으로 모든 범주에 대한 각각의 url 을 결합 얻을 어떻게든 그들을 출력한다.첫 시도 나를 지도하려고 중첩된 루프 동안,하지만 그것은 작동하지 않았고 나는 확실하지 않으면 이것이 가능합니다.에서 떨어져 나가는지 궁금하면 내가 필요할 수 있습니다 다차원 어레이(전체 추측,나는 결코 하나를 사용하기 전에).

나는 주문 이러한 결과로 링크 id 위와 같이,그래서 내가 알고 있는 경우 이 링크를 id 에는 현재 루프 반복과 일치하는 마지막에 반복한 다음 나는 뭔가가있는 하나 이상의 카테고리..나는 정말 가까운,그러나 나는 단지 그것을 알아낼 수 없습니다.

어떤 아이디어가?

도움이 되었습니까?

해결책

또한"GROUP_CONCAT 는 기능"에서 mysql.해야 하는지 정확히 무엇을 달성 할 수 있습니다.

다음과 같습니다.

SELECT url, GROUP_CONCAT(category) AS categories FROM yourtable GROUP BY url 

다른 팁

당신이 사용해야의 연결이다.

1 당신의 테이블 링크

id = 1 url = something
id = 2 url = something else

다음 테이블의 카테고리

id = 1 category = something
id = 2 category = something else

다음은 연결되어 있는 테이블

url_id = 1 category_id = 1
url_id = 1 category_id = 2
url_id = 2 category_id = 1

이 적어도 당신은 시작합니다.

당신을 사용할 필요가 제어 알고리즘이 있습니다.

set last_link variable to null
set combined_category to null
exec query

loop over result set {
    if last_link == null {
        last_link=fetch_link
    }
    if fetch_link==last_link {
        set combined_category+=ltrim(' '.fetch_category)
    } else {
        display html for last_link and combined_category
        set last_link=fetch_link
        set combined_category=fetch_category
    }
}//loop

display html for last_link and combined_category

내가 사용하는"표시 html"일반적인"작업"이벤트할 수 있습이 밀어를 배열 구조,등등.대...

배열을 사용하여 키 id 및 url 을 반복을 통해 값을 추가하고 다음과 같다:

$link_categories[ $id ] .= $category." ";

$result = mysql_query("SElECT * FROM LINKS");

$link_categories = array();

while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
    if (!isset($link_categories[$row['link']]))
        $link_categories[$row['link']] = " ";
    else
        $link_categories[$row['link']] .= " ";

    $link_categories[$row['link']] .= $row['category'];
}

print_r($link_categories);

결과:

Array
(
    [http://a.com] =>  test evaluate performance
    [http://b.com] =>  classify reduce
    [http://c.com] =>  allocate
)

이것은 오른쪽'의 방법으로 이 일을 정말로의 관계를 정의해야 하에 별도의 테이블과 함께 1 많은 관계이다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top