0

次のコードを使用しようとすると、「解析エラー: 構文エラー、予期しない T_SL」というエラーが表示され続けます。

<?php 
$names = array(1 => 'example1', 2 => 'example2',    3 => 'example3', 4 => 'example4');

$code = <<<HEREDOC<div><h3>$names[$i]</h3>
    <div class="rating"><div class="id$i" id="0
        $stmt = mysqli_prepare($dbc, 'SELECT userid, rating FROM ranks WHERE userid = ? AND id =?');
            mysqli_stmt_bind_param($stmt, 'ii', $userid, $i);
            mysqli_stmt_execute($stmt);
            mysqli_stmt_bind_result($stmt, $userid, $i, $rating);
            while (mysqli_stmt_fetch($stmt)){
                echo ($rating);
            }_$i"><script type="text/javascript">$(document).ready(function(){$(".id' . $i. '").jRating({isDisabled : false});});</script></div></div><div class="push"> 
        $query = "SELECT ROUND( AVG(rating),1 ) FROM ranks WHERE fight_id ='".$i."'");
        $result = mysqli_query($dbc, $query) or die("Error querying database.");
        while($row = mysqli_fetch_array($result)){
            echo "<h3 class='average'>" . $row["ROUND( AVG(rating),1 )"] . "/5" . "</h3>";}
        </div><br/></div><div class="line"></div>;HEREDOC;


for($i=1; $i<5; $i++)
{
    echo $code
}?>

私はそれが間違っていると確信しています.JS/HTMLに切り替えるたびにphpの開始タグと終了タグを使用しようとしましたが、一重引用符を使用してエラーが発生しました. 御時間ありがとうございます!

4

2 に答える 2

0

まず、コードにエラーがあります。この線

$query = "SELECT ROUND( AVG(rating),1 ) FROM ranks WHERE fight_id ='".$i."'");

する必要があります

$query = "SELECT ROUND( AVG(rating),1 ) FROM ranks WHERE fight_id ='".$i."')";

2番目:代替ソリューションは、コンテンツを連結することです

<?php 
$names = array(1 => 'example1', 2 => 'example2',    3 => 'example3', 4 => 'example4');

$code = '<div><h3>'.$names[$i].'</h3>
    <div class="rating"><div class="id'.$i.'" id="0'.(
        $stmt = mysqli_prepare($dbc, 'SELECT userid, rating FROM ranks WHERE userid = ? AND id =?');
            mysqli_stmt_bind_param($stmt, 'ii', $userid, $i);
            mysqli_stmt_execute($stmt);
            mysqli_stmt_bind_result($stmt, $userid, $i, $rating);
            while (mysqli_stmt_fetch($stmt)){
                echo ($rating);
            }).'_'.$i.'"><script type="text/javascript">$(document).ready(function(){$(".id' . $i. '").jRating({isDisabled : false});});</script></div></div><div class="push">'.( 
        $query = "SELECT ROUND( AVG(rating),1 ) FROM ranks WHERE fight_id ='".$i."')";
        $result = mysqli_query($dbc, $query) or die("Error querying database.");
        while($row = mysqli_fetch_array($result)){
            echo "<h3 class='average'>" . $row["ROUND( AVG(rating),1 )"] . "/5" . "</h3>";}).'
        </div><br/></div><div class="line"></div>';


for($i=1; $i<5; $i++)
{
    echo $code
}?>

提案: 関数内のクエリなどを変換して (必要に応じてこれらの関数を呼び出して)、コードがよりクリーンでわかりやすいものになるようにします。

于 2013-07-24T21:38:07.117 に答える