Этот код беспорядок.
а)
require_once($_SERVER['DOCUMENT_ROOT'].'\includes\format.php');
Не используйте обратную косую черту в путях. Используйте только косые черты /
. PHP компенсирует вас, если вы работаете в Windows, и автоматически переводит в обратную косую черту. Обратные слеши в таких строках открывают дверь для неверного истолкования как escape-символа, а не ссылки на путь.
б)
$result = mysql_query("select * from `database`.`collegemeter");
Вам не хватает закрывающей обратной галочки на Collegemeter, и если вы не используете зарезервированное слово для имени базы данных, обратные галочки совершенно не нужны.
в)
if (!$result || !($row = mysql_fetch_assoc($result))) {
Правильный (+ самый простой) метод для проверки ошибки БД:
if ($result === false) {
die(mysql_error());
}
Не проверяйте, есть ли какие-либо результаты, пытаясь получить строку. Вот для чего mysql_num_rows()
.
if (mysql_num_rows($result) == 0) then
die("No results!");
}
d) Стилистически, циклы do / while для результатов базы данных немного некрасивы. Вы бы лучше с более стандартным:
while($row = mysql_fetch_assoc($result)) { ... }
конструкция. Это также позволит вам увидеть, что вы определяете свои $college
и другие переменные только ОДИН РАЗ, ВНЕ вашего цикла извлечения. Нет необходимости извлекать строку извлечения БД в отдельные переменные, вы можете напрямую выводить их:
while ($row = ...) {
$money = moneyformat($row['goal']);
echo <<<EOL
<div class="progresswrap">
<p><a href="{$row['url']}">{$row['college']}</a></p>
<div class="progresscontainer">
etc...
EOL;
}