четверг, 15 июля 2010 г.

Единственное значение из mysql на php в 2 строки

Бывает нужно получить единственное значение из MySQL и огород из запроса и получения строки из результата, а потом использования значения полученного массива кажется явно лишним.

Т.е. стандартное (академическое) решение выглядит так:


$sql = mysqli_query("SELECT COUNT(*) FROM `table` WHERE `col`='value';"); // получаем данные
$row = mysqli_fetch_assoc($sql); // получаем строку в массив
echo $row['COUNT(*)']; // используем значение массива
// неудобная переменная, нужно одно значение, а используем массив

// можно присвоить значение новой переменной
$count = $row['COUNT(*)'];

// либо переопределить массив в переменную
$row = $row['COUNT(*)'];

// но это либо дополнительная переменная,
// либо не логичное название переменной,
// либо с самого начала нужно было использовать правильное название...

В принципе предлагаемый вариант немного удобнее для последующего использования:


$sql = mysqli_query("SELECT COUNT(*) FROM `table` WHERE `col`='value';"); // получаем данные
list($count) = mysqli_fetch_array($sql); // получаем строку в массив и 
// первое значение сразу присваиваем переменной
echo $count; // используем переменную

ООП вариант сообразите по аналогии...