PHP / SQL скрипт не работает - PullRequest
       1

PHP / SQL скрипт не работает

0 голосов
/ 18 февраля 2011

Я пытаюсь сгенерировать топ-10 тегов, я думаю, это довольно просто.

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

Единственная проблема, с которой я сталкиваюсь, заключается в том, что она думает, что где-то в коде есть синтаксическая ошибкано независимо от того, в каких строках я пропускаю синтаксическую ошибку, остается.

Кроме того, есть ли более простой способ делать операторы if для 10 различных массивов, чем для четырех?

Ответы [ 3 ]

5 голосов
/ 18 февраля 2011

Вам не хватает ")" в конце этого утверждения

должно быть

$finalFinalEndArray = mysql_fetch_array(mysql_query("SELECT tagName FROM tags WHERE tagID = '$buddha'"));
3 голосов
/ 18 февраля 2011

optimystique прав насчет синтаксической ошибки.

Что касается вашего второго вопроса, метод shmeeps 'работает для этого примера, но если вам случится другая ситуация, когда вам нужно сравнить одну переменную с числом различныхзначений, тогда вы можете использовать оператор switch вместо целой связки 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;
}
?>
2 голосов
/ 18 февраля 2011

Операторы if-then должны быть обобщены как

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

без операторов if-then.

Я не вижу синтаксических ошибок.Есть ли что-то еще в этом сценарии?

Редактировать: Увидел ошибку сейчас, эта строка

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

Должна быть

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

Обратите вниманиедополнительно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...