2011-02-18 8 views
-1

상위 10 개 태그를 생성하려고합니다. 매우 간단하다고 생각합니다. PHP/SQL 스크립트가 작동하지 않습니다.

//generate 10 top tags 
$tagSQL = mysql_fetch_array(mysql_query("SELECT * FROM tags")); 
$topArray = array(); 
foreach($tagSQL as $poland) 
{ 
    if($poland["tagID"] == 1) 
    { 
     $topArray[0] = $topArray[1] + 1; 
    } 
    if($poland["tagID"] == 2) 
    { 
     $topArray[1] = $topArray[2] + 1; 
    } 
    if($poland["tagID"] == 3) 
    { 
     $topArray[2] = $topArray[3] + 1; 
    } 
    if($poland["tagID"] == 4) 
    { 
     $topArray[3] = $topArray[4] + 1; 
    } 
} 
function printTopTags() 
{ 
    $n = 0; 
    foreach($topArray as $buddha) 
    { 
     $n = $n + 1; 
     if(sizeOf($topArray) > $n) 
     { 
      $hersheyBar = " "; 
     } 
     else 
     { 
      $hersheyBar = ""; 
     } 
     $finalFinalEndArray = mysql_fetch_array(mysql_query("SELECT tagName FROM tags WHERE tagID = '$buddha'"); 
     foreach($finalFinalEndArray as $waterBottle) 
     { 
      echo $waterBottle . $hersheyBar; 
     } 
    } 
} 

유일한 문제는 내가 데

는 내가 코드 어딘가에 구문 오류가 있다고 생각하지만, 어떤 라인에 상관없이 내가 구문 오류가 유지 생략한다는 것입니다.

또한, 네 가지가 아닌 10 개의 다른 배열 스폿에 대해 if 문을 수행하는 더 쉬운 방법이 있습니까?

답변

5

당신은 문을

$topArray[($poland["tagID"] - 1)] = $topArray[$poland["tagID"]] + 1; 

으로 일반화 될 수있을 것입니다 경우 - 다음

그것은

$finalFinalEndArray = mysql_fetch_array(mysql_query("SELECT tagName FROM tags WHERE tagID = '$buddha'")); 
+0

, 패턴을보고, 당신은 단지 topArray [($ 폴란드 [ "tagID $를 사용할 수 있습니다 "] - 1)] = $ topArray [$ poland ["tagID "]] +1; – optimistAk

2

을해야이 문장의 끝에 ")를"누락 if-then 진술은 전혀 없습니다.

구문 오류가 표시되지 않습니다. 이 스크립트에는 더 많은 것이 있습니까?

편집 :는 지금 여분의

$finalFinalEndArray = mysql_fetch_array(mysql_query("SELECT tagName FROM tags WHERE tagID = '$buddha'")); 

주)

3

optimystique 구문 오류에 대한 권리이어야한다이 줄

$finalFinalEndArray = mysql_fetch_array(mysql_query("SELECT tagName FROM tags WHERE tagID = '$buddha'"); 

을 오류를 보았다.

두 번째 질문에 대해서는 shmeeps '메서드가이 예제에서 작동하지만 한 번 변수를 여러 값과 비교해야하는 또 다른 상황이 발생하면 전체 묶음 대신 switch statement을 사용할 수 있습니다 ifs. (위의 링크 된 PHP 매뉴얼 페이지에서) 예를 들어 :

<?php 
if ($i == 0) { 
    echo "i equals 0"; 
} elseif ($i == 1) { 
    echo "i equals 1"; 
} elseif ($i == 2) { 
    echo "i equals 2"; 
} 
?> 

은 동일하다 : 또한

<?php 
switch ($i) { 
    case 0: 
     echo "i equals 0"; 
     break; 
    case 1: 
     echo "i equals 1"; 
     break; 
    case 2: 
     echo "i equals 2"; 
     break; 
} 
?> 
+0

이것은 특히 더 나은 방법입니다. 특히 각각의 경우에 대해 한 줄 이상의 코드가 있다면 더욱 그렇습니다. +1 – shmeeps

관련 문제