неожиданное '}' при использовании SQL и PHP для графиков - PullRequest
0 голосов
/ 14 февраля 2011

Я кодирую график из SQL, используя PHP. У меня есть этот код, и он, кажется, не выполняется. Я думал, что код был правильным, но по сути это не так.

код:

<?php
header ("Content-type: image/png");
$im = imagecreatefrompng ("graphtemp.png");
$red = imagecolorallocate ($im, 255, 0, 0);
$black = imagecolorallocate ($im, 0, 0, 0);
mysql_connect("localhost", "user", "password");
mysql_query("USE database");
$optionsquery = mysql_query("SELECT * FROM brands");
$numoptions = mysql_num_rows($optionsquery);
$pollquery = mysql_query("SELECT * FROM categories");
$numvotes = mysql_num_rows($pollquery);
$xval = 30;
$barwidth = floor(300/$numoptions);
for ($i=0;$i<=($numoptions-1);$i++) 
{
    $voteoption = mysql_result($optionsquery,$i,'name');
    $votevalue = mysql_result($optionsquery,$i,'value');
    $currentnumquery = mysql_query("SELECT * FROM categories WHERE vote='$votevalue'");
    $currentnum = mysql_num_rows($currentnumquery);
    $per = floor(($currentnum/$numvotes)*184);
    $rper = floor(($currentnum/$numvotes)*100);
    imagefilledrectangle ($im, $xval, (200-$per), ($xval+$barwidth), 200, $red);
    imagerectangle ($im, $xval, (200-$per), ($xval+$barwidth), 200, $black);
    imagestring ($im, 1, ($xval+($barwidth/2)), 205, $voteoption, $black);
    imagestring ($im, 2, ($xval+($barwidth/2)), ((200-$per)-15), "$rper%", $bla);
    $xval+=($barwidth+10)
}
imagepng($im);
?>

Когда я использую это, я получаю ошибку:

 Parse error: syntax error, unexpected '}' in /home/user/public_html/graph.php on line 27

Спасибо, ребята! Этот код, кажется, не работает здесь, это журнал ошибок. Я также изучаю PHP и SQL, поэтому любая помощь приветствуется. - http://pastebin.com/Zw18Afne

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011
 1. <?php
 2. header ("Content-type: image/png");
 3. $im = imagecreatefrompng ("graphtemp.png");
 4. $red = imagecolorallocate ($im, 255, 0, 0);
 5. $black = imagecolorallocate ($im, 0, 0, 0);
 6. mysql_connect("localhost", "user", "password");
 /*
     SNIP
 */
 24.    imagestring ($im, 1, ($xval+($barwidth/2)), 205, $voteoption, $black);
 25.    imagestring ($im, 2, ($xval+($barwidth/2)), ((200-$per)-15), "$rper%", $bla);
 26.    $xval+=($barwidth+10)
 27. }
 28. imagepng($im);
 29. ?>

Хорошо, давайте посмотрим на ошибку:

Ошибка разбора: синтаксическая ошибка, неожиданный '}' в /home/user/public_html/graph.php в строке 27

Хорошо, ошибка в основном говорит о том, что PHP нашел } ведьму, которую он не ожидал, причина в том, что php пропускает пробелы, новые строки и любые невидимые символы из кода, а затем интерпретирует код.

Итак, PHP видит ваш код следующим образом

$xval+=($barwidth+10)}imagepng($im);
//                   ^

Но, как вы можете видеть, я поместил стрелку там, где php достигает и говорит, что .. здесь не должно быть }: /

Внутри PHP Каждая строка команды должна быть закрыта ;, чтобы PHP знал, что конец этого бита кода, а вторая не является частью первой.

26.    $xval+=($barwidth+10); // ; here
27. }
28. imagepng($im);
29. ?>

размещение двоеточия здесь говорит php перейти к следующей команде.

1 голос
/ 14 февраля 2011

Вы пропустили точку с запятой после

$xval+=($barwidth+10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...