Ошибка кодирования PHP

#php

#php

Вопрос:

Это моя ошибка — она связана с чем-то, что я упускаю из виду, не уверен, где это находится.

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный $end в /home/mjcrawle/public_html/cit0215/assignment5/onlinebanking/viewaccounts.php в строке 107

с уважением

 <?php 

require_once('footer_nav/navigation.inc.php'); 
require_once('../websiteconfig.inc.php');
require_once('/class/person.class.php');
require_once('../class/database.class.php');

/*Start Session*/
session_start();

$currentMember =usserialize($_session['currentMember']);

/*DataBase*/
$db = new Database;
$conn = $db->connection;
?>
<td width="16">amp;nbsp;</td>
<td width="595">
</td>
</tr>

</div>


<h2>Accounts</h2>  


</td>
<table id="accounts" summary="Bank Account Balance Information">
<thread>
    <tr>
        <th>Account Number</th>
        <th>Account Balance</th>
     </tr>
  </thead> 
<tbody>     
<?
/*Accounts*/
$currentMember->connection = $conn;
$account = $currentMember->retrieve_all_accounts();

/* Loop Though Accounts*/
while($acount = mysqli_fetch_assoc($acount)) {
/* Retrieve Account Balance*/
$bankaccount = new Bankaccount ($account['BankAccountID']);
$bankaccount->connection = $conn;
$balance = mysqli_fetch_assoc($bankaccount->retrieve_current_balance());

 echo '<tr>' . "n";
 echo "t" . '<td class="account_number">' . $account['BankAccountID'] . '</td>' . "n";
 echo "t" . '<td class="account_balance">$' .   number_format($balance['CurrentBalance'], 2) . '</td>' . "n";
 echo '</tr>' . "n";

/*Closed DataBase*/ 
mysqli_close($db->connecion);
}
?>
  

Комментарии:

1. while($acount = mysqli_fetch_assoc($acount)) { Неужели?!

2. Это не полный исходный код. Можете ли вы сказать нам, что это за строка line 107?

3. Пожалуйста, скажите мне, что это личный проект, а не коммерческий код для реального банковского содрогания

4. @Demian называется dir assignment5 поэтому я предполагаю, что это для школы.

5. @Rafe вздыхает с облегчением 😉

Ответ №1:

Сделайте это:

Удалите включенные классы по одному и посмотрите, является ли один из них причиной.

Я предполагаю, что вы найдете { без соответствия} в одном из них

Ответ №2:

Похоже, что ваш цикл while не закрыт.

 while($acount = mysqli_fetch_assoc($acount)) {
  

Либо это, либо вы преждевременно закрываете соединение с базой данных. (в цикле while)

Это, насколько я могу судить, основываясь на коде, который вы включили сюда.

Попробуйте завершить цикл while после

  echo '</tr>' . "n";
  

и посмотрим, поможет ли это.

Комментарии:

1. Нет, он закрыт. Кроме того, преждевременное закрытие базы данных не будет иметь ничего общего с синтаксической ошибкой.

2. Я тоже об этом думал, пока это не было добавлено 🙂

3. Да, это для школы. Это не имеет ничего общего с коммерческим использованием.

4. хотел быть честным. Я продвинулся так далеко в коде, и я думаю, что я близок к его завершению

5. Но почему вы закрываете соединение с БД в цикле while? Конечно, это вызывает проблему?? Я думал, что $ end (где бы это ни было) зависит от того, что база данных все еще доступна. Просто предположение… Кроме того, прошло некоторое время с тех пор, как я посещал PHP, но не захлебнется ли mysqli_fetch_assoc при закрытии базы данных?

Ответ №3:

Завершающий возврат каретки после последнего закрытия ?> .