Выбор определенной ячейки SQL

160
13 октября 2017, 16:42

Здравствуйте. Идея такова- есть таблица MySQL, допустим, с 2мя столбцами. Столбец id, который Primary Key Not NULL AUTO INKREMENT и столбец с числовым значением(цена или номер, неважно). Как выгрузить все значения понял, а как выгружать значения второго столбца в зависимости от id, пока нет. Все вызывается через PHP. Спасибо всем ответившим! Дополнил вопрос тем что удалось сделать самостоятельно. Знаний PHP не хватает.

<?php 
	ini_set('display_errors','On'); 
	error_reporting('E_ALL');//показ ошибок 
 
	$host = 'localhost'; // имя хоста 
	$database = 'test_sql'; // имя базы данных 
	$user = 'root'; // имя пользователя 
	$pswd = ''; //  пароль 
	  
	$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");//соединение с бд 
	mysql_select_db($database) or die("Не могу подключиться к базе."); 
	$query = "SELECT * FROM `oc_product`";//выгрузка из таблицы 
	$res = mysql_query($query); 
	$row = mysql_fetch_array($res);//вызов массива 
 
	while($row = mysql_fetch_array($res)){ 
	echo "ID: ".$row['product_id']."<br>";//вывод всех id 
	echo "Цена: ".$row['price']."<br>";//вывод всех цен 
	} 
?> 

Answer 1
<?php
$product_id = NULL;
if(array_key_exists('product_id',$_GET)){
    $product_id = (int)$_GET['product_id'];
}
$host = 'localhost'; // имя хоста
$port = 3306;
$database = 'test_sql'; // имя базы данных
$user = 'root'; // имя пользователя
$password = ''; //  пароль
$db = new \PDO('mysql:host='.$host.';port='.$port.';dbname='.$database, $user, $password);
echo 'Соединение успешно установлено';
if($product_id !== NULL){
    $query = sprintf(
        'SELECT product_id, price FROM oc_product WHERE id=%s',
        mysql_real_escape_string($product_id)
    );
    $statement = $db->prepare($query); 
    $result = $statement->execute();
    if(is_bool($result)) {
        die('Не могу выполнить запрос.');
    }
    $result->setFetchMode(\PDO::FETCH_ASSOC);
    if($row = $result->fetch()) {
        echo 'Товар: '.$row['product_id'].'. Цена: '.$row['price'].'<br/>';
    }else{
        echo 'Товар не найден.';
    }
}else{
    $query = 'SELECT product_id, price FROM oc_product'
    $statement = $db->prepare($query); 
    $result = $statement->execute();
    if(is_bool($result)) {
        die('Не могу выполнить запрос.');
    }
    $result->setFetchMode(\PDO::FETCH_ASSOC);
    while($row = $result->fetch()) {
        echo '<a href="/index.php?id='.$row['product_id'].'"> Товар: '.$row['product_id'].'</a>. Цена: '.$row['price'].'<br/>';
    }
}
$db = null;

При переходе по ссылке http://my_site/index.php получите список товаров, а при нажатии на товар, запрос SQL выполниться только по нему.

READ ALSO
Как передать метод в rules Yii2

Как передать метод в rules Yii2

У меня есть контроллер из которого нужно достать число и проверить в rules, то есть price нужно передать так:

212
Абстрактный синглтон

Абстрактный синглтон

Есть около тысячи объектов, по каждому из которых необходимо сделать по три запроса в БД, обработать результат и наполнить data class'ы

141
На сайте пропал футер и часть header&#39;а (OpenCart) [требует правки]

На сайте пропал футер и часть header'а (OpenCart) [требует правки]

С чем может быть связана проблема? На сайте пропала часть футера и весь хеадер, файлы перезаливал, не помогло

257
Вывод символа стоимости товара Virtuemart Joomla

Вывод символа стоимости товара Virtuemart Joomla

Использую Virtuemart на Joomla в качестве ознакомления с продукцией, без использования корзиныНужно выводить цены в двух валютах, но без дублирования,...

260