За последние 24 часа нас посетили 17694 программиста и 1645 роботов. Сейчас ищут 1023 программиста ...

A Database Error Occurred, Error Number: 1054

Тема в разделе "PHP и базы данных", создана пользователем annonim, 19 июл 2017.

Метки:
  1. annonim

    annonim Новичок

    С нами с:
    19 июл 2017
    Сообщения:
    6
    Симпатии:
    0
    Привет всем!!!

    Ошибка такая....
    ________________________
    Error Number: 1054

    Unknown column 'id_relation' in 'where clause'

    SELECT id, title FROM 2d_categories WHERE id_relation = 0

    Filename: models/AutoloadModel.php

    Line Number: 8
    _________________________

    Сам файл AutoloadModel.php ....
    _________________________
    PHP:
    1. <?php
    2.  
    3. class AutoloadModel extends CI_Model
    4. {
    5.     public function getCategories()
    6.     {
    7.         $sql = "SELECT id, title FROM 2d_categories WHERE id_relation = ?";
    8.         $query = $this->db->query($sql, 0);
    9.         $getCategories = '';
    10.         foreach ($query->result() as $row) {
    11.             $sql = "SELECT title, url FROM 2d_categories WHERE id_relation = ? ORDER BY title";
    12.             $query1 = $this->db->query($sql, $row->id);
    13.             $getSubCategories = '';
    14.             foreach ($query1->result() as $row1) {
    15.                 $getSubCategories .= '<li><a href="'.site_url('category/'.$row1->url.'/').'">'.$row1->title.'</a></li>';
    16.             }
    17.             $getCategories .= '<li class="dropdown">
    18.                                    <a href="#" class="dropdown-toggle waves-effect waves-light" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">'.$row->title.' <span class="caret"></span></a>
    19.                                    <ul class="dropdown-menu">
    20.                                        '.$getSubCategories.'
    21.                                    </ul>
    22.                                </li>';
    23.         }
    24.         return $getCategories;
    25.     }
    26.  
    27.     public function getFooter()
    28.     {
    29.         $sql = "SELECT title, url FROM 2d_pages WHERE display_footer = 1 ORDER BY title";
    30.         $query = $this->db->query($sql);
    31.         $getFooter = '';
    32.         foreach ($query->result() as $row) {
    33.             $getFooter .= '<li><a href="'.site_url('page/'.$row->url.'/').'">'.$row->title.'</a></li>';
    34.         }
    35.         return $getFooter;
    36.     }
    37. }
    ________________________________

    Ну и в принципе сам вопрос - В какую сторону копать и что менять?
    Заранее примного благодарен!!!)))
     
  2. annonim

    annonim Новичок

    С нами с:
    19 июл 2017
    Сообщения:
    6
    Симпатии:
    0
    Ребят, столбец я добавляю в базу "ALTER TABLE 2d_categories ADD id_relation;". но вылазит ошибка -
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
     
  3. xaker01

    xaker01 Активный пользователь

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Ошибка в синтаксисе запроса к базе.
    тут нужно понять в каком именно.
    $sql="SELECT id, title FROM 2d_categories WHERE id_relation = ?";
    или
    $sql="SELECT title, url FROM 2d_categories WHERE id_relation = ? ORDER BY title";

    обычно как я помню название столбцов надо обворачивать в одинарные кавычки.
    Для начала скажи в какой именно функции возникла ошибка
    в getCategories() ?
     
  4. annonim

    annonim Новичок

    С нами с:
    19 июл 2017
    Сообщения:
    6
    Симпатии:
    0
    ----------------------------------------------------
    А какой мне нужно сделать запрос чтобы узнать?
     
  5. xaker01

    xaker01 Активный пользователь

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    черт только дошло что не в коде дело а в mysql ты запутался,
    через phpmyadmin врнучную просто добавь столбец и все.
    заходишь в таблицу 2d_categories
    и там создать столбец(поле) в самом низу
     
    annonim нравится это.
  6. annonim

    annonim Новичок

    С нами с:
    19 июл 2017
    Сообщения:
    6
    Симпатии:
    0
    ----------------------------------------
    Может через phpmyadmin на крайний случай оставим?) Не хочу его устанавливать, считаю что нужно все познавать и изучать только через терминал)))
    Мои действия...
    sudo mysql -u root -p - вхожу в бд,
    USE моя_база_данных; - подключаюсь к ней,
    ALTER TABLE 2d_categories ADD id_relation; - и соответственно пытаюсь добавить столбец, после которого вылетает ошибка про одинарные кавычки.
     
  7. xaker01

    xaker01 Активный пользователь

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    ALTER TABLE 2d_categories ADD id_relation (парамерт вид столбаца);
    например
    ALTER TABLE 2d_categories ADD id_relation TEXT;
     
    annonim нравится это.
  8. annonim

    annonim Новичок

    С нами с:
    19 июл 2017
    Сообщения:
    6
    Симпатии:
    0
    _______________________________________________________
    Все огромное спасибо, вопрос решен строкой > ALTER TABLE 2d_categories ADD id_relation TEXT;