Вот как я сейчас рассчитываю строки mysql в PHP:
//GET total # of results and build $start and $end for main SQL statement $sql= 'SELECT COUNT(*) FROM savedsearches WHERE user_id=\''.mysql_real_escape_string($user_id).'\''; $initial_query = mysql_query($sql) or die("SQL error"); $num_sql = mysql_fetch_array($initial_query); $numrows = $num_sql[0]; mysql_free_result($initial_query);
Есть ли более эффективный способ сделать это?
Нет. Если вы хотите подсчет, вы запускаете запрос, который вы уже используете.
Если вам нужна более эффективная работа, убедитесь, что в столбце user_id есть индекс
//GET total # of results and build $start and $end for main SQL statement $sql= 'SELECT * FROM savedsearches WHERE user_id=\''.mysql_real_escape_string($user_id).'\''; $initial_query = mysql_query($sql) or die("SQL error"); $numrows = mysql_num_rows($initial_query)
Как вы можете видеть, вы можете запустить mysql_num_rows () перед mysql_fetch_array. Это очень полезно для меня, так как это позволяет мне знать перед рукой, погоду или нет. У меня есть количество строк, в которых я нуждаюсь. Если вы хотите узнать больше об этой функции: PHP Manual: mysql_num_rows ()
Вы имеете в виду, делаете это в меньшем количестве строк кода? Вы могли бы поместить эту функциональность в пользовательскую функцию, а затем вызвать функцию вместо использования этого кода, но кроме этого, она не получит ужасный многосторонний.