MySql PHP результаты

0

Привет, я работаю над некоторым кодом с mysql и должен отображать результаты mysql с помощью php..

MySQL
select distinct(year(Cataloged_Date)) from records;

+------------------------+
| (year(Cataloged_Date)) |
+------------------------+
|                   2009 |
+------------------------+
1 row in set (0.00 sec)


PHP

foreach($query->result() as $show){
                $data[$i] = $show->Cataloged_Date;
                $i++;
            }

Я использую codeigniter для php. Использование $show- > Cataloged_Date не вернет noting. Я думаю, что его $show- > что-то покажет результаты... Просто не получишь это прямо сейчас...

Теги:
codeigniter

3 ответа

2

Вам нужно указать явное имя или псевдоним для вашего поля в запросе mysql - когда вы применяете функции к столбцу, тогда неясно, каким будет имя столбца.

1

Попробуйте следующее:

//on MySQL
select distinct(year(Cataloged_Date)) as "Cat_Date" from records;

<?php
  foreach($query->result() as $show){ 
    $data[$i] = $show->Cat_Date; 
    $i++; 
  }
?>

Вы можете применить псевдоним к любому "значению" в своем выборе, будь то имя столбца или результат функции.
Просто сделайте

SELECT something AS YourAlias ...

Чтобы дать вам ясный пример:

mysql> select 1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)

#A simple value can be given an alias
mysql> select 1 as "Number";
+--------+
| Number |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)

mysql> select max(val) from my_values;
+----------+
| max(val) |
+----------+
|        4 |
+----------+
1 row in set (0.00 sec)

#A function
mysql> select max(val) as "max_val" from my_values;
+---------+
| max_val |
+---------+
|       4 |
+---------+
1 row in set (0.00 sec)

#or even a plain column
mysql> select val as "lav" from my_values;
+------+
| lav  |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)
  • 0
    Это абсолютно сработало ... Спасибо мельница ....
  • 0
    Пожалуйста! Просто убедитесь, что вы даете голосование за те ответы, которые помогли вам, а также выберите один из них в качестве своего «принятого ответа».
-1

Да, это нормально, но я использую фреймворк Codeigniter. Я работал с

$query->first_row() as $show

Затем просто echo $show и результаты будут отображаться без необходимости знать имя строки..

  • 1
    Ну, это не имеет ничего общего с платформой CodeIgniter - мы можем легко избежать имен столбцов в vanilla php. Однако, учитывая ваш пример кода $ show-> Cataloged_Date, я привел правильную причину.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню