2013-05-27 3 views
0

각 탭에 mysql 테이블 행의 다른 필드를 보여주는 내 페이지의 탭을 만들려고합니다. 탭의 내용을 전환하고 싶습니다. 모든 행의 ID가 다르므로 탭 디자인을 만들고 싶습니다. 데이터는 표의 ID로 선택해야합니다. 에코 부분에 간단한 텍스트 만 사용하면 탭이 정상적으로 작동하지만 데이터베이스에서 데이터를 가져올 수 없습니다. 이 코드를 시도했지만 작동하지 않습니다.탭의 다른 필드를 에코합니다.

<?php 

if (isset($data[0]) && is_numeric($data[0])) { 
    $content = mysql_fetch_assoc (mysql_query("select id,tab_content_one,tab_content_two,tab_content_three,tab_content_four,tab_content_five from db_name where id = $data[0];")); 
} else { 
    $content = mysql_fetch_assoc (mysql_query("select id,tab_content_one,tab_content_two,tab_content_three,tab_content_four,tab_content_five from db_name order by id asc limit 1;")); 
} 

switch($_GET['tabNum']) { 
    case 1: echo strip_tags($content['tab_content_one']); break; 
    case 2: echo strip_tags($content['tab_content_two']); break; 
    case 3: echo strip_tags($content['tab_content_three']); break; 
    case 4: echo strip_tags($content['tab_content_four']); break; 
    case 5: echo strip_tags($content['tab_content_five']); break; 
} 

?> 

내 코드에 어떤 문제가 있는지 알 수 없습니다. 너는 어떤 생각을 가지고 있니?

+0

어떻게 작동합니까? 너는 무엇을 얻 느냐? 오류가 있습니까? – Borniet

+0

어떤 오류가 있습니까? mysql_ * 함수는 사용하지 않아야하며, 향후 php relases에서 제거 될 것입니다. $ 콘텐츠가 스위치에서 보이지 않을 수도 있습니다. – Robert

+0

'$ _GET [ 'tabNum']'이 값을 얻는 지 확인하십시오. '$ _GET [ 'tabNum']'이'$ content' 배열을 검사하는 것보다 적절하게 값을 얻는다면 배열로 값을 얻는 지 여부. 나는 나머지는 당신이 깔끔하고 명료하게 생각했다고 생각합니다. – Roopendra

답변

1

mysql_fetch_assoc을 while 루프로 묶어야합니다! 그 대신 mysql_PDO 확장자를 사용하는 PHP 5.5.0부터 사용되지 할 것 mysql_fetch_assoc로

if (isset($data[0]) && is_numeric($data[0])) { 
$sql = "select id,tab_content_one,tab_content_two,tab_content_three,tab_content_four,tab_content_five from db_name where id = $data[0];"; 
} else { 
$sql = "select id,tab_content_one,tab_content_two,tab_content_three,tab_content_four,tab_content_five from db_name order by id asc limit 1;"; 
} 
$result = mysql_query($sql); 

while($content = mysql_fetch_assoc($result)){ 
    switch($_GET['tabNum']) { 
    case 1: echo strip_tags($content['tab_content_one']); break; 
    case 2: echo strip_tags($content['tab_content_two']); break; 
    case 3: echo strip_tags($content['tab_content_three']); break; 
    case 4: echo strip_tags($content['tab_content_four']); break; 
    case 5: echo strip_tags($content['tab_content_five']); break; 
} 
} 

어쨌든 당신에게 제안 있어요 : 코드의 경우는 이런 일이 될 것입니다.

+0

물론 SQL 문을 테스트하고 $ _GET [tabNum]이 1 2 3 4 또는 5 인 값을 가지고 있다고 가정합니다. – r1verside

+0

예, 값은 1,2,3,4,5입니다. 하지만 어떻게 든 작동하지 않습니다. 모든 탭에 아무것도 표시되지 않고 첫 번째 경우에만 'strip_tags ($ content ['tab_content_one '])'를 사용했지만 모든 탭에는 아무 것도 표시되지 않았습니다. – user2424221

+0

테스트 추가 : $ sql print ($ sql)마다 $ (ups); 결과 후 print (mysql_affected_rows()); 그리고 그 동안 print_r ($ content); 그래서 당신은 어디서 오류인지 알 수 있습니다. – r1verside

관련 문제