Ошибка Undefined index... on line...после выборки из базы

Mato

Новичок
Добрый день всем. Я тут новенькая :rolleyes:(*сарказм).
Собственно возникла ошибка:
Notice: Undefined index: cauthor in ...\profile.php on line354
Вроде бы все просто - индекс не определен, а нет. На деле все оказалось сложнее(по крайней мере для моих мозгов) :D

строка 354 + некоторые еще:
PHP:
        $quecc = mysqli_query($link, "SELECT * FROM bcomm WHERE idcomm='{$bid}'");
                             while($rocc = mysqli_fetch_array($quecc, MYSQLI_ASSOC)){
                                
                                 if(isset($rocc)){
                                 $cid = $rocc['id'];
354 строка-->                 $cauthor = $rocc['cauthor'];
                                 $cmess = $rocc['cmess'];
                                 $cdate = $rocc['cdate'];
                                echo"
                                 <div id='xds' class='msg msg2 msg3' >
                                    <div style='padding:9px; '>
                                    <div style='text-align: justify;font-family: 'Gautami', cursive; '>".$cmess."</div>
                                    <div> <a style='text-decoration:none;' href='lk.php?profile=".$sid."'>".$cauthor."</a>".$cdate."</div>
                                 </div>
                                </div>
                                 ";
                                 }else{echo "Ni hera tyt net :(";}
                             }
Конструкция типа:
PHP:
... if(isset($rocc)){...
была вставлена после некоторого поиска по сети :)

Далее думала, что нет подключения к базе но это так же неверно.
Так как запрос:
PHP:
$quecc = mysqli_query($link, "SELECT * FROM bcomm WHERE idcomm='{$bid}'");
возвращает все необходимые данные. Как проверила? очень просто:
Добавила в код:
PHP:
print_r($rocc);
Результатом стало:
PHP:
Array ( [0] => 28 [1] => 56 [2] => mato [3] => Ага, у нас так же ! [4] => 2013-06-08 21:36:08 )
(1-ая строка из таблицы - bcomm)

Ребятушки выручайте пазязя, вся злая. Не знаю, что делать. Все есть и таблица с данными, и поля выбираются. Но почему такая ошибка не понимаю.
p.s. причем ошибка такая со всеми выбираемыми данными.
PHP:
$cauthor = $rocc['cauthor'];
$cmess = $rocc['cmess'];
$cdate = $rocc['cdate'];
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Книжки почитай. У тебя в массиве нет ключа cauthor
 

antson

Новичок
Партнер клуба
У тебя mysqli_fetch_array, прочитай про второй вариант функции - получить ассоциированный массив.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@antson, там же стоит MYSQLI_ASSOC. И не ассоциированный, а ассоциативный
 

Mato

Новичок
Как это у меня нету cauthor?
Невнимательно читаете:
PHP:
Array ( [0] => 28 [1] => 56 [2] => mato [3] => Ага, у нас так же ! [4] => 2013-06-08 21:36:08 )
где собственно mato - и есть cauthor

PHP:
MYSQLI_ASSOC
Данную конструкцию добавила, увидив, тоже, где то в сети :rolleyes:
Единственная от него полезная вещь - приводит массив array к читаемому виду. :)
 

Mato

Новичок
Боюсь надо пояснить
PHP:
$сid = $rocc['id'];                  <-->28 [1]  - это ключевое поле в таблице
$did = $rocc['idcomm'];        <--> 56 [2] - id привязка к сообщению
$cauthor = $rocc['cauthor']; <--> mato [3] - собственно автор текста
$cmess = $rocc['cmess'];    <--> Ага, у нас так же ! [4] - собственно текст
$cdate = $rocc['cdate'];       <--> 2013-06-08 21:36:08 - дата
 

WMix

герр M:)ller
Партнер клуба
PHP:
while($rocc = mysqli_fetch_array($quecc, MYSQLI_ASSOC)){
Добавила в код:
PHP:
print_r($rocc);
Результатом стало:
PHP:
Array ( [0] => 28 [1] => 56 [2] => mato [3] => Ага, у нас так же ! [4] => 2013-06-08 21:36:08 )
вот странно это
яб ожидал бы по мин 'idcomm' => $bid
 

AnrDaemon

Продвинутый новичок
@Mato, найдите десять отличий между строкой 'cauthor' и числом "2"…
А потом идите учить другие варианты mysqli_fetch_* …
 

antson

Новичок
Партнер клуба
Второй опциональный аргумент result_type в функции mysql_fetch_array() -- константа и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Эта возможность добавлена в PHP 3.0.7. Значением по умолчанию является: MYSQL_BOTH.

у топик стартера там буковка I затесалась. А я предпочитаю писать в лоб fetch_assoc вместо опционного параметра , валидация синтекса ручается как то надежнее в этом случае
 

Mato

Новичок
@Mato, найдите десять отличий между строкой 'cauthor' и числом "2"…
А потом идите учить другие варианты mysqli_fetch_* …
Не понимаю вашей иронии.
Вы не знаете как массивы работают? может почитать нет?
При замене mysqli_fetch_ На любые других "собратьев", даже на:
PHP:
mysqli_fetch_assoc
Ошибка остается.
Результат:
PHP:
Array ( [id] => 28 [idcomm] => 56 [сauthor] => mato [сmess] => Ага, у нас так же ! [сdate] => 2013-06-08 21:36:08 )
p.s. c mysqli_fetch_array -раньше подобных проблем не было.

p.s.s. не стоит искать ошибок там где их нет.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Mato, сравни плиз свои результаты запроса
Array ( [0] => 28 [1] => 56 [2] => mato [3] => Ага, у нас так же ! [4] => 2013-06-08 21:36:08 )
и
Array ( [id] => 28 [idcomm] => 56 [сauthor] => mato [сmess] => Ага, нас так же ! [сdate] => 2013-06-08 21:36:08 )
Есть разница?

И давай ка ты пойдешь дебажить код сам? А не мы будем за тебя разбирать ошибки, которые возникают из-за невнимательности.
 

Mato

Новичок
может и пойду самА - спасибо за совет.
Причем тут разница? Результат выше написан. Опять же не внимательны здесь вы, а не я

p.s Если не можешь оказать помощь, я бы попросила тебя покинуть тему.
p.s.s. выделила красным.
 

antson

Новичок
Партнер клуба
cauthor сauthor найди разницу в имени поля в субд и пхп . Она там точно есть
 
  • Like
Реакции: Mato

Mato

Новичок
cauthor сauthor найди разницу в имени поля в субд и пхп . Она там точно есть
Как всегда простой ответ.
Спасибо, что не искал ошибок там, где их быть и не могло.
Ты искал истинную причину и я тебе очень благодарна.;):oops::oops:
А я дуреха :p :oops:
Проблема решена.
 
Сверху