0

我需要以下内容,这是我的功能:

function i_iframe( $cadena ) {
   $x = @mysql_query("SELECT * FROM videos WHERE id_peli = '$cadena' LIMIT 3");
   while ( $i = mysql_fetch_array( $x ) ) {
      $option = adios( $i['idioma'] );
      echo "<li>".$option."</li>";
   }
   @mysql_free_result( $x );
}

此代码输出:

<li>option name 1</li>
<li>option name 2</li>
<li>option name 3</li>

我需要的输出应该是这样的:

<li class="selected">option name 1</li> 
<li>option name 2</li>
<li>option name 3</li>

你循环的第一个结果应该打印<li class="selected">和休息应该是<li>

4

2 回答 2

1
function i_iframe($cadena) {
$x=@mysql_query("SELECT * FROM videos WHERE id_peli = '$cadena' LIMIT 3");
bool $first = true;
while($i=mysql_fetch_array($x)) {
    $option = adios($i['idioma']);
    if($first)
    {
        echo "<li class=\"selected\">".$option."</li>";
        $first = false;
    } else {
        echo "<li>".$option."</li>";
    }
}
@mysql_free_result($x); 
}

应该做的伎俩

于 2013-09-24T01:59:53.210 回答
1

为您的第一个元素调用mysql_fetch_array一次:

function i_iframe($cadena){
$x=@mysql_query("SELECT * FROM videos WHERE id_peli = '$cadena' LIMIT 3");
if($i=mysql_fetch_array($x)){
$option = adios($i['idioma']);
echo '<li class="selected">', $option, '</li>';
while($i=mysql_fetch_array($x)){
$option = adios($i['idioma']);
echo "<li>".$option."</li>";
}
}
@mysql_free_result($x);
}

现在格式化您的代码:

function i_iframe($cadena) {
    $x = @mysql_query("SELECT * FROM videos WHERE id_peli = '$cadena' LIMIT 3");

    if($i = mysql_fetch_array($x)) {
        $option = adios($i['idioma']);
        echo '<li class="selected">', $option, '</li>';

        while($i = mysql_fetch_array($x)) {
            $option = adios($i['idioma']);
            echo '<li>', $option, '</li>';
        }
    }

    @mysql_free_result($x);
}

停止忽略错误并使用更清晰的名称:

function i_iframe($cadena) {
    $query = mysql_query("SELECT * FROM videos WHERE id_peli = '$cadena' LIMIT 3");

    if($item = mysql_fetch_array($query)) {
        $option = adios($item['idioma']);
        echo '<li class="selected">', $option, '</li>';

        while($item = mysql_fetch_array($query)) {
            $option = adios($item['idioma']);
            echo '<li>', $option, '</li>';
        }
    }

    mysql_free_result($x);
}

在使用它们的地方转义你的输入,特别是如果你还没有:

function i_iframe($cadena) {
    $cadena = mysql_real_escape_string($cadena);
    $query = mysql_query("SELECT * FROM videos WHERE id_peli = '$cadena' LIMIT 3");

    if($item = mysql_fetch_array($query)) {
        $option = adios($item['idioma']);
        echo '<li class="selected">', $option, '</li>';

        while($item = mysql_fetch_array($query)) {
            $option = adios($item['idioma']);
            echo '<li>', $option, '</li>';
        }
    }

    mysql_free_result($x);
}

现在停止使用已弃用的扩展程序并享受 PDO 的生活:

function i_iframe($cadena) {
    global $db;

    $query = $db->prepare('SELECT idioma FROM videos WHERE id_peli = :cadena LIMIT 3');
    $query->execute([':cadena' => $cadena]);
    $videos = $query->fetchAll(PDO::FETCH_OBJ);

    $first = array_shift($videos);
    echo '<li class="selected">', htmlspecialchars(adios($first->idioma)), '</li>';

    foreach($videos as $video) {
        echo '<li>', htmlspecialchars(adios($first->idioma)), '</li>';
    }
}
于 2013-09-24T01:54:59.160 回答