PHP/SQL脚本不工作
我正在尝试生成前10个标签,我认为这非常简单PHP/SQL脚本不工作,php,sql,mysql,tags,Php,Sql,Mysql,Tags,我正在尝试生成前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; }
//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语句?您在该语句末尾缺少了一个“)”
应该是
$finalFinalEndArray = mysql_fetch_array(mysql_query("SELECT tagName FROM tags WHERE tagID = '$buddha'"));
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'"));
注意额外的)optimystique关于语法错误的说法是正确的 关于第二个问题,shmeeps的方法适用于本例,但如果您碰巧遇到另一种情况,需要将一个变量与多个不同的值进行比较,则可以使用一个而不是一整组ifs。例如(从上面链接的PHP手册页面):
同:
<?php
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
?>
另外,查看模式,您可以使用$topArray[($poland[“tagID”]-1)]=$topArray[$poland[“tagID”]]+1;这绝对是一种更好的方法,尤其是当您针对每种情况有不止一行代码时+1.
<?php
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
?>