Неожиданный конец $: я точно знаю, где виновник, но не знаю, как это исправить - PullRequest
0 голосов
/ 21 марта 2011

Я получаю это сообщение об ошибке:

"Ошибка разбора: синтаксическая ошибка, неожиданный конец $ в C: \ Users \ Stacky \ Desktop \ xampp \ htdocs \ wweff \ stackhelp.php в строке 822"

Я пытался заставить этот код работать, используя только одну строку моего кода, строку 54.

Вот полный код.Ищите «// ^^^^ ПРАВИЛЬНО ВЫШЕ ЛИНИЯ 54».в коде ниже:

<html>
<head>
</head>
<body>
    <?php
        $objConnect = mysql_connect("localhost","root","") or die(mysql_error());
        $objDB = mysql_select_db("thegoodhumor");
        $strSQL = "SELECT * FROM gallery";
        if (!isset($_GET['Page']))  $_GET['Page']='0';
        $objQuery = mysql_query($strSQL);
        $Num_Rows = mysql_num_rows($objQuery);
        $Per_Page = 16;   // Per Page

        $Page = $_GET["Page"];
        if(!$_GET["Page"])
        {
            $Page=1;
        }

        $Prev_Page = $Page-1;
        $Next_Page = $Page+1;

        $Page_Start = (($Per_Page*$Page)-$Per_Page);
        if($Num_Rows<=$Per_Page)
        {
            $Num_Pages =1;
        }
        else if(($Num_Rows % $Per_Page)==0)
        {
            $Num_Pages =($Num_Rows/$Per_Page) ;
        }
        else
        {
            $Num_Pages =($Num_Rows/$Per_Page)+1;
            $Num_Pages = (int)$Num_Pages;
        }

        $strSQL .=" order  by GalleryID ASC LIMIT $Page_Start , $Per_Page";
        $objQuery  = mysql_query($strSQL);
                $cell = 0;
                echo '<table border="1" cellpadding="2" cellspacing="1"><tr>';
                while($objResult = mysql_fetch_array($objQuery))
                {
                  if($cell % 4 == 0) {
                  echo '</tr><tr>';
                }

                if($cell == 2 || $cell == 3) {
                echo '<td>RESERVED</td>';
                } else {
                echo '<td><img src="https://s3.amazonaws.com/imagetitle/' .  
                $objResult["Picture"];?>" height="190" width="190" /> . .$objResult["GalleryName"].'\</td>';
                //^^^^ RIGHT ABOVE IS LINE 54.
                }
                $cell++;
                }
                echo '</tr></table>';
    ?>
        <?php
          //DELETED PAGINATION CODE for the sake of simplicity in StackOverflow
        ?>
        </body>
        </html>
        <?php
        mysql_close($objConnect);
        ?>

Ответы [ 3 ]

4 голосов
/ 21 марта 2011
        $objResult["Picture"];?>" height="190" width="190" /> . .$objResult["GalleryName"].'\</td>';

Содержит ?>, который говорит интерпретатору PHP прекратить интерпретацию, другими словами, все, что следует, является необработанным HTML.

Попробуйте изменить ;?> на ., поместив` до height="190" и удалите \ до </td>, давая:

        $objResult["Picture"] . 'height="190" width="190" />' .
            $objResult["GalleryName"] . '</td>';
1 голос
/ 21 марта 2011

В середине строки 54 у вас есть «?>», Что говорит PHP прекратить предварительную обработку (в середине вашего оператора echo).Вы, вероятно, хотите удалить это.

0 голосов
/ 21 марта 2011

В следующей части кода:

while($objResult = mysql_fetch_array($objQuery))
{
  if($cell % 4 == 0) { // A { is opened here
  echo '</tr><tr>';
  // Maybe it should be closed here ?
}

Кажется, вы не закрываете {, что соответствует if.


И, немного ниже в вашем коде, у вас есть }, который, кажется, не принадлежит там:

if($cell == 2 || $cell == 3) {
    echo '<td>RESERVED</td>';
} else {
    echo '<td><img src="https://s3.amazonaws.com/imagetitle/' .  
    $objResult["Picture"];?>" height="190" width="190" /> . .$objResult["GalleryName"].'\</td>';
    //^^^^ RIGHT ABOVE IS LINE 54.
} // closing the else
$cell++;
} // what is this doing here ?


Общие советы в такой ситуации: правильно вставьте свой код!

Это позволит вам гораздо легче выявлять подобные проблемы ;-)
И, конечно, ваш код будет легче читать.

...