MySQL fetch_assoc() показывает на 1 результат меньше

#mysql #select #while-loop #fetch

#mysql #выберите #во время цикла #выборка

Вопрос:

у меня есть таблица, подобная приведенной ниже:

 hub dep
A B
A C
B D
B E
B F
E G
  

я использую mysql select для получения запроса, и мой код выглядит следующим образом:

 $sql         = "SELECT dep FROM handd WHERE hub='B'";
        $result      = $conn->query( $sql );
        $row         = $result->fetch_assoc();

        while($row = $result->fetch_assoc()) {
    echo "id: " . $row["dep"]."<br>";
}
  

но это просто дает мне результат, как показано ниже:

 id: E
id: F
  

и мне интересно, где D?

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

1. Как вы думаете, что делает строка перед while ?

2. вообще ничего 🙂

3. @SinaNouri Не пустая строка, строка с $row = $result->fetch_assoc(); .

Ответ №1:

  $row         = $result->fetch_assoc();
  

В этой строке хранится результат ‘B D’. На самом деле это должно быть:

     $sql         = "SELECT dep FROM handd WHERE hub='B'";
    $result      = $conn->query( $sql );

    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["dep"]."<br>";
    }