查询始终返回1

时间:2017-05-24 06:23:05

标签: mysql sql codeigniter grocery-crud

查询始终返回1而不是我需要的id。我想要id的' intervaloshorarios'桌子有自己的“cita”#39;例如,(上午8:00至9:00)日期:1988年8月27日。我需要(上午8:00到9:00)身份证。我使用print_r($ expression)返回查询。如何获得我需要的id

数据库

Database

模型功能

public function get_idintervalo($idCitas) {

     $query = $this->db->query('SELECT intervaloshorarios.idIntervaloHorario FROM intervaloshorarios INNER JOIN citas '
             . 'ON intervaloshorarios.idIntervaloHorario = citas.idIntervaloHorario '
             . 'WHERE citas.idCitas = ' . $idCitas . ';');


        return print_r($query);
    }

控制器(尝试将ID转入隐藏字段)

 $query = $this->Intervalos_Model->get_idintervalo($idCitas);

  $crud->change_field_type('idIntervaloHorario', 'hidden', $query);

错误(Sihas回答)

Localhost say: error while adding

Print_r($ query)(Sihas回答 )

1CI_DB_mysqli_result对象([conn_id] => mysqli对象([affected_rows] => 1 [client_info] => mysqlnd 5.0.11-dev - 20120503 - $ Id:76b08b24596e12d4553bd41fc93cccd5bac2fe7a $ [client_version] => 50011 [ connect_errno] => 0 [connect_error] => [errno] => 0 [错误] => [error_list] =>数组()[field_count] => 1 [host_info] => localhost通过TCP / IP [info] => [insert_id] => 0 [server_info] => 5.5.5-10.1.21-MariaDB [server_version] => 50505 [stat] =>正常运行时间:1043645主题:1个问题:58810慢查询:0打开:257刷新表:1打开表:203每秒查询平均值:0.056 [sqlstate] => 00000 [protocol_version] => 10 [thread_id] => 3645 [warning_count] => 0)[result_id] => mysqli_result对象([current_field] => 0 [field_count] => 1 [length] => [num_rows] => 1 [type] => 0)[result_array] = > Array()[result_object] => Array()[custom_result_object] => Array()[current_row] => 0 [n um_rows] => [row_data] => )

3 个答案:

答案 0 :(得分:0)

查找这些功能的一些手册页

会很好

print_r输出变量(它回显它)并返回TRUE,因此以这种方式返回将始终返回true(如果您打印该结果,则可以将其解释为'1') 。因此,通过实际返回结果返回结果,而不是将其回显到输出!

然后你应该看看你的query。您没有说明您使用的是什么,但假设您使用PDO,请查看manual of pdo's query

  

返回值
  PDO :: query()返回PDOStatement对象,失败时返回FALSE。

你不会得到你的结果,你会得到PDOStatement。如果您愿意,可以对此语句进行迭代,但它本身不是字符串。例如,你可以做的是这样的事情:

$stmt = $pdo->query('SELECT name FROM users');
while ($row = $stmt->fetch())
{
    echo $row['name'] . "\n";
}

我已从以下页面中了解到这一点:phpdelusions,请看一下(不是附属的,只是一个随机的谷歌点击:) :)

编辑:您似乎正在使用mysqli。同样的事情适用:查看手册!

这两个链接可以帮助您入门 http://php.net/manual/en/mysqli.query.phphttp://php.net/manual/en/mysqli.examples-basic.php

例如,你可以这样做:

 $result = $this->db->query($q);
 $array = $result->fetch_assoc();
 //now $array is an array with your results. var_dump it to inspect

答案 1 :(得分:0)

试试这段代码:

public function get_idintervalo($idCitas)
{
    $this->db->select('intervaloshorarios.idIntervaloHorario');
    $this->db->from('intervaloshorarios');
    $this->db->join('citas','intervaloshorarios.idIntervaloHorario = citas.idIntervaloHorario');
    $this->db->where('citas.idCitas',$idCitas);
    $query = $this->db->get();
    $result =  $query->row('intervaloshorarios.idIntervaloHorario');

    echo $result; exit();
}

答案 2 :(得分:-1)

您只需创建表的别名并使用Mysql In获取多个Id并传递Id

的数组
public function get_idintervalo($idCitas = array) 
{
    $query = SELECT in.idIntervaloHorario FROM intervaloshorarios in INNER JOIN citas ct ON in.idIntervaloHorario = ct.idIntervaloHorario WHERE citas.idCitas IN ( $idCitas );

$result = $this->db->query($query);
}