Мой запрос не выводит столбец, который я хочу, даже когда выбран - PullRequest
1 голос
/ 04 октября 2019

Не знаю, как я получаю неопределенную ошибку индекса, когда мой SELECT уже получает нужный мне столбец.

У меня есть три таблицы:

clinics_branch.add.php

<?php
  session_start();
  require_once('clinics_branch_list.vc.php');
?>

<?php echo $lstBranch['usrmerchant']; ?>

неопределенный индекс находится в эхо usrmerchant

clinics_branch_list.vc.php

require_once($routePath . "_mc/Merchant.mc.php");
  $mcMerchant = new Merchant_MC();

$lstBranch = $mcMerchant->SelectMainBranch_ByMerchantBranch($db, $merchantid);

Merchant. mc.php

Class Merchant_MC {

  public function SelectMainBranch_ByMerchantBranch($db, $merchantid) {
  $stmt = $db->prepare(
    " SELECT  mb.merchantid, m.usrmerchant
      FROM `merchant_branch` mb
      LEFT JOIN `merchant` m ON mb.merchantid = m.merchantid
      WHERE mb.merchantid = $merchantid "
  );

  $stmt->bindValue(':merchantid', $merchantid, PDO::PARAM_INT);
  $stmt->execute();
  $row = $stmt->fetchAll(PDO::FETCH_ASSOC);

  return $row;
  }
}

Вот вывод моего выбора, как вы можете видеть, что есть контент, поэтому SQL работает

1

любая помощь приветствуется, полная ошибка:

Notice: Undefined index: usrmerchant in clinics_branch_add.php

ОБНОВЛЕНИЕ:

изменение строки SQL на WHERE mb.merchantid = :merchantid по-прежнему показывает то же самоеошибка.

ОБНОВЛЕНИЕ:

переключение на innjer join также не работает

SELECT mb.merchantid, m.usrmerchant FROM merchant_branch mb INNER JOIN merchantm ON mb.merchantid = m.merchantid ГДЕ mb.merchantid =: merchantid

Ответы [ 2 ]

2 голосов
/ 04 октября 2019

Вы делаете fetchAll, поэтому $lstBranch на самом деле будет массивом строк, выглядящим примерно так:

array(0 => array('merchantid' => 30, 'usrmerchant' => 'dermadent'))

, и вам нужно будет получить доступ кusrmerchant значение как

$lstBranch[0]['usrmerchant'];
0 голосов
/ 04 октября 2019

Изменить

SELECT  mb.merchantid, m.usrmerchant
      FROM `merchant_branch` mb
      LEFT JOIN `merchant` m ON mb.merchantid = m.merchantid
      WHERE mb.merchantid = $merchantid "

На

SELECT mb.merchantid, m.usrmerchant 
   FROM merchant_branch mb 
INNER JOIN marchant m 
   ON mb.merchantid = m.merchantid 
WHERE mb.merchantid = :merchantid
...