【问题标题】:PHP/SQL script not workingPHP/SQL 脚本不工作
【发布时间】:2011-02-18 01:52:25
【问题描述】:

我正在尝试生成前 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;
        }
    }   
}

我遇到的唯一问题是它认为我在代码中的某处有语法错误,但无论我省略哪一行,语法错误仍然存​​在。

另外,有没有更简单的方法来为 10 个不同的数组点执行 if 语句,而不是四个?

【问题讨论】:

    标签: php sql mysql tags


    【解决方案1】:

    您在此语句的末尾缺少一个“)”

    应该是

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

    【讨论】:

    • 另外,看看模式,你可以使用 $topArray[($poland["tagID"] - 1)] = $topArray[$poland["tagID"]] + 1;
    【解决方案2】:

    optimystique 关于语法错误是正确的。

    关于你的第二个问题,shmeeps 的方法适用于这个例子,但如果你碰巧有另一种情况,你需要将一个变量与多个不同的值进行比较,那么你可以使用 switch statement 而不是一个整体一堆如果。例如(来自上面链接的 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;
    }
    ?>
    

    【讨论】:

    • 这绝对是一种更好的方法,特别是如果您对每种情况都有不止一行代码。 +1
    【解决方案3】:

    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'"));
    

    注意额外的)

    【讨论】:

      猜你喜欢
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2014-04-21
      相关资源
      最近更新 更多