2016-09-12 2 views
0

Я хочу проверить, присутствует ли оно в столбце col и запустить mysqli_num_rows. До сих пор его работы со следующим кодом:Сократить код без подготовленного заявления

//$conn = connection to mysql. 

$row1sql = "SELECT * from chktable where col='1'"; 
$row2sql = "SELECT * from chktable where col='2'"; 
$row3sql = "SELECT * from chktable where col='3'"; 
$row4sql = "SELECT * from chktable where col='4'"; 

$query1sql = $conn->query($row1sql); 
$query2sql = $conn->query($row2sql); 
$query3sql = $conn->query($row3sql); 
$query4sql = $conn->query($row4sql); 

$num1 = mysqli_num_rows($query1sql);  
$num2 = mysqli_num_rows($query2sql);  
$num3 = mysqli_num_rows($query3sql);  
$num4 = mysqli_num_rows($query4sql);  

отредактировать другой код, основанный на $num.

Как я могу сократить этот код? Могу ли я использовать заявление for? Как его использовать, если это применимо? Или любой другой способ сократить этот код?

Спасибо.

+1

как о вас нет, всего 1 запрос, некоторое время и обрабатывайте их. [Проблема XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – Drew

+0

Я предлагаю использовать подготовленный оператор и выполнять его с различными значениями. См. [Подготовленные заявления @ php.net] (http://php.net/manual/en/pdo.prepared-statements.php). – showdev

+0

@showdev У меня нет опыта работы с prepd stmts. Я ищу что-то с raw php. – Somename

ответ

2

Это позволит получить значение Col и количество строк этого, только для цв значения 1,2,3,4

$query = $conn->query("SELECT col, count(*) as num FROM chktable GROUP BY col WHERE col IN (1,2,3,4);"); 
while($row = $query->fetch_object()) 
    echo "Col: ".$row->col.", Num:".$row->num; 

вы можете делать все, что чек вы хотите внутри цикла в то время как

+0

Im получение: 'Fatal error: вызов функции-члена fetch_object() в boolean in ...'. Я добавил '{}' после цикла while и пробовал без этого. Проверка wht im отсутствует. оцените любую помощь, пожалуйста, – Somename

+0

'SELECT col, count (*) как num FROM chktable WHERE col IN (1,2,3,4) GROUP BY col' это сработало. Но как узнать значение столбцов. Извините, если им что-то не хватает. Как я могу найти значение $ num1 или $ num2? – Somename

+0

Я понял. Спасибо, тон! – Somename

Смежные вопросы