2016-03-30 3 views
2

Я пытаюсь определить, является ли команда либо домашней, либо далекой. В моем коде команда с «home» = 1 - это домашняя команда, а 0 - далеко. Как вы можете видеть ниже, код выберет две команды из каждой игры (дома и вдали); однако он изо всех сил пытается выяснить, кто дома, а кто нет! Он отлично справился с поиском дома и команды гостей, пока я не достиг 6-й игры, в которой она перепуталась дома и прочь. Есть какие нибудь идеи как это починить!Выбор списков данных и определение их места

игра Таблица:

enter image description here

Gamelink Таблица:

gameLink Table

SQL-запрос:

$gameQuery = "SELECT * FROM game, gameLink, teams WHERE gameLink.gameid = game.gameid AND gameLink.teamid = teams.teamid ORDER BY game.gameid"; 
     $stmt = $conn->prepare($gameQuery); 
     $stmt->execute(); 

     $gameList = array(); 
     $count = 0;   


     while($gD = $stmt->fetch(PDO::FETCH_ASSOC)) { 
      $gameList[$count] = $gD; 
      $count++; 
     } 

Печать команд в таблице: (таблица теги находятся вне PHP)

for($index = 0; $index < count($gameList); $index+=2) { 
    echo "<tr> 
     <td>{$gameList[$index]['gameid']}</td> 
     <td>{$gameList[$index]['name']}</td> 
     <td>{$gameList[$index+1]['name']}</td> 
     <td><a href='games.php?editid={$gameList[$index]['gameid']}'<button class='btn btn-warning'><i class='fa fa-pencil'></i></button></a> <a href='games.php?deleteid={$gameList[$index]['gameid']}'<button class='btn btn-danger'><i class='fa fa-remove'></i></button></a></td> 
    </tr>"; 
} 

Пожалуйста, обратите внимание: если я пропускаю любые биты полезной информации, пожалуйста, дайте мне знать, как я действительно хочу понять, почему это не работает, и надеемся исправить это!

Также, если есть лучшие способы приблизиться к этому, я очень открыт для него и буду очень рад конструктивной критике, где это возможно!

ответ

2

Если вы заказываете инструкцию SQL от game_id ASC и дома DESC, вы всегда должны получить правильный порядок.

$gameQuery = "SELECT * FROM game, gameLink, teams WHERE gameLink.gameid = game.gameid AND gameLink.teamid = teams.teamid ORDER BY game.gameid ASC, gameLink.home DESC"; 
+0

Кажется, что это работает как шарм! Не могли бы вы объяснить, почему это работает? Я все еще немного смущен! Благодаря! :) – Lachie

+1

Вы выбираете 2 записи игрыLink для каждой игры. без заказа вы не можете быть уверены в заказе дома и в гости. Сортируя по game_id по возрастанию и по убыванию, вы получите их в правильном порядке. –

+0

Отлично, оцените вашу помощь! Я приму свой ответ, когда система позволит мне :) – Lachie

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