Количество запросов и функция не работают должным образом

#php #mysql #sql

#php #mysql #sql

Вопрос:

Я использую приведенный ниже код для выбора элементов и использую переменную $result для подсчета. если их меньше 1, будет указано добавить больше, а если их больше 5, будет указано просмотреть все. Это работает менее чем для 1, но не более чем для 5. Я все делаю правильно?

//Запрос

 $sql = "SELECT id, name, why, date_time 
          FROM tabs 
         WHERE p_id = '$pid'
      ORDER BY id 
         LIMIT 0, 5";

$result = mysql_query($sql);
$query = mysql_query($sql) or die ("Error: ".mysql_error());

if ($result == "") {
  echo "";
}

echo "";

$rows = mysql_num_rows($result);

if($rows == 0) {
  print("");
} elseif($rows > 0) {
  while($row = mysql_fetch_array($query)) {
    $name = $row['name'];
    $w = nl2br($row['why']);
    $y = $row['date_time'];

    print("echoing contents here");
  }
}

if(mysql_num_rows($result) > 5) {
  echo "view all";
}

if(mysql_num_rows($result) < 1) {
  echo "add one";
} ?>
  

Комментарии:

1. Что выводится для стандартного примера?

Ответ №1:

  if(mysql_num_rows($result) > 5) {
  echo "view all";
  }

 if(mysql_num_rows($result) < 1) {
   echo "add one";
  } 
  

Должно быть

  if($rows > 5) {
  echo "view all";
  }

 if($rows < 1) {
   echo "add one";
  }
  

Поскольку вы исчерпали результирующий набор в предыдущем mysql_fetch_array() цикле