Отредактированный ответ:
Ах, я неправильно предположил, что это связано с индексами SQL. Похоже, что это на самом деле ошибка PHP, связанная с тем, что вы пытаетесь распечатать элементы массива, которые не существуют.
Для всех ваших отпечатков, которые содержат элементы $row
($row['deadline']
и т. Д.), Вам необходимо убедиться, что на самом деле есть столбцы с именами, которые возвращаются вашим запросом. Если столбец с именем «крайний срок» отсутствует, то при попытке его печати будет выдано предупреждение.
Снова отредактируйте : так как это произошло, думаю, я углублюсь в немного больше деталей.
Прежде всего, как указывает Бобинс, у вас есть возможность внедрения SQL. Первая строка должна быть:
$id = intval($_GET['id']);
если $ id всегда будет целым числом, и mysql_real_escape_string()
, если это может быть строка.
Во-вторых, SELECT *
обычно плохая форма, особенно в случае с соединениями. Я не знаю точно, из каких таблиц поступают конкретные поля, но ваш запрос должен выглядеть примерно так, где вы выбираете только те поля, которые фактически собираетесь использовать:
$sql = "SELECT clients.fname, clients.lname, projects.p_url, projects.p_title, updates.date_submitted ".
"FROM updates ".
"INNER JOIN clients ON updates.c_id = clients.c_id ".
"INNER JOIN pages ON updates.page = pages.p_id ".
"INNER JOIN projects ON updates.p_id = projects.p_id ".
"WHERE updates.u_id='$id' ".
"LIMIT 1";
Далее $u_id
устанавливается точно в то же значение, которое уже было $id
, так что это своего рода бессмысленная переменная.
Наконец, в последней строке у вас есть:
<? echo $row['date_submitted'] = date("F j, Y, g:i a"); ?>
Я не уверен, что вы ожидаете от этого, но он назначит date("F j, Y, g:i a");
на $row['date_submitted']
, а затем напечатает "true" или "1" или что-то в этом роде, это, вероятно, не то, что вы собирались.
Новейшая проблема: Вы оба пытаетесь выбрать из клиентов и присоединяетесь к клиентам, вы не можете сделать оба, по крайней мере, не предоставив одному из них псевдоним.