PHP - Как я могу получить только 1 значение из базы данных? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть таблица product со столбцами id, name, price, desc.Но мне нужно только отобразить price искомого продукта.

Например, когда пользователь вводит 0001, запрос должен быть выполнен и вернуть значение $price в размере 5,00 долл. *

$sqlprice = $DB->Prepare("SELECT price FROM product WHERE id = '0001'");
$sqlprice -> Execute();
$result = $sqlprice->get_result();
$price = $result->fetch_assoc();

Однако переменная $price не имеет каких-либоценность в этом.Что я сделал не так в своем коде?Я искал во многих темах, но, похоже, нет ответа на мою проблему.

Ответы [ 6 ]

0 голосов
/ 02 июля 2018

Я предполагаю, что 0001 - это идентификатор продукта в вашей таблице product.Если это так, то вы можете попробовать этот запрос:

$this->db->select('price');
$this->db->where('id','id_entered_by_user');
$query = $this->db->get('product');

Ваш результат будет сохранен в $query, и вы можете проверить его, напечатав print_r($query->result());

Дайте мне знать, что этозапрос работал у вас или нет.

0 голосов
/ 31 мая 2018

Я не знаю, почему ... но это работает для меня после многих попыток.

$sqlprice= "SELECT price FROM product WHERE id='0001'";
        $rs = $DB -> Execute($sqlprice);
        while ($row = $rs -> FetchRow()) {
          $price= $row["price"];
        }
0 голосов
/ 30 мая 2018

$result->fetch_assoc() возвращает массив assoc , к которому вы можете получить доступ, например $array["name"].

Если запрос верен, вы должны получить цену, открыв $price["price"].Но если в $ price нет значения (=== null), значит, что-то не так с выполнением вашего запроса / в БД просто нет значения.

Вы также можете попробоватьследующий (при условии, что вы используете PDO) и посмотрите, работает ли это:

$sql = 'SELECT price FROM product WHERE id = "0001"';
foreach ($conn->query($sql) as $row) {
    echo $row['price'];
}

Для mysqli:

$sql = 'SELECT price FROM product WHERE id = "0001"';
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
    echo $row['price'];
}
0 голосов
/ 30 мая 2018

Доступ к вашей цене с $price[0] или $price['price'].Если $ price должен быть пустым, ваш запрос SQL не был успешным.Вы должны соответственно обработать этот случай.

Я советую вам ознакомиться с методами var_dump() и print_r() для целей отладки:)

0 голосов
/ 30 мая 2018

Вы можете проверить шаг за шагом, где проблема

if ($sqlprice = $DB->Prepare("SELECT price FROM product WHERE id = '0001'")) {
    if($sqlprice->execute()) {
        $result = $sqlprice->get_result();
        $price = $result->fetch_assoc();
    } else {
        die($sqlprice->error)
    }
} else {
    die($DB->error);
}
0 голосов
/ 30 мая 2018

при условии, что $sqlprice является экземпляром mysqli, я рекомендую использовать $sqlprice->fetchAll(PDO::FETCH_ASSOC)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...