Поскольку mysql_num_rows возвращает false, если нет возвращенных строк, было бы лучше:
$query = mysql_query("SELECT id FROM table WHERE something = 'this'"); $result = mysql_num_rows($query); if ($result) { }
Или мне нужно:
if ($result >= 1) { }
Правильный
$result = mysql_query("SELECT id FROM table WHERE something = 'this'"); if (mysql_num_rows($result)){ //there are results }
однако вы можете сделать это проще, без проверки
$result = mysql_query("SELECT id FROM table WHERE something = 'this'"); while($row = mysql_fetch_assoc($result)) //there are results }
Пожалуйста. Дайте именам ваших переменных
Правильный способ будет использовать PDO вместо древних функций mysql_*
:
$stmt = $dbh->prepare('SELECT item_id FROM Items WHERE name = :param'); $stmt->bindParam( ':param', $some_name, PDO::PARAM_STR, 127 ); if ( $stmt->execute() ) { echo $stmt->rowCount(); var_dump( $stmt->fetchAll( PDO::FETCH_ASSOC )); }
Он не возвращает false
если строки не возвращаются, и возвращает ошибку в случае ошибки. Это можно сделать так:
if ($result === false) { /* An error occurred - do something */ } else { /* $result is set to some number >= 0 */ }
Я считаю честно, что
$query = mysql_query("SELECT id FROM table WHERE something = 'this'"); if (mysql_num_rows($query)!==FALSE){ //there are results }
является более подходящим.
Count вернет значение, и вы не можете подсчитать, а затем вызвать mysql_num_rows. Это либо один из другого.
Вы могли бы сделать
$isExist = mysql_query("Select count(id) from ..."); $r = mysql_fetch_array($isExist); if($r['COUNT(id)'] > 0){ //item exists }else{ //item doesnt exist }
Если вы также можете выполнить запрос как:
$isexist = mysql_query("select * from wcddl_filehosts where downloadid = '".$download[id]."'"); if(mysql_num_rows($isExists)>0){ //we have items }else{ //we dont have items }