2017-01-09 3 views
0

Вот как показан мой стол.Как вывести различные типы данных в php?

enter image description here

Код для создания и возвращения таблицы: я хотел бы проверить значение величины спорта ID. если это 1, верните футбол. если это 2 возвращения Теннис и если это 3 возвращения плавание. И если удаленный столбец TRUE, я хочу, чтобы он выводил Away, иначе выведите HOME.

$sql = "CREATE TABLE fixtureDetails 
(
fixtureID INT(5) NOT NULL AUTO INCREMENT, 
opponent VARCHARD(30) NOT NULL, 
date DATE 
away BOOLEAN, 
sportID INT 
refereeID INT, 
PRIMARY KEY (fixtureID), 
FOREIGN KEY (sportID) REFERENCES sport(sportID), 
FOREIGN KEY (refereeID) REFERENCES referee(refereeID) 
)"; 

$sql1 = "SELECT * FROM fixtureDetails"; 
if ($result = mysqli_query($link, $sql)){ 
    if(mysqli_num_rows($result)>0){ 
     echo "<table>"; 
      echo "<tr>"; 
       echo "<th>fixtureID</th>"; 
       echo "<th>opponent</th>"; 
       echo "<th>date</th>"; 
       echo "<th>away</th>"; 
       echo "<th>sportID</th>"; 
       echo "<th>refereeID</th>"; 
      echo"</tr>"; 
     while($row = mysqli_fetch_array($result)){ 
      echo "<tr>"; 
       echo "<td>" . $row['fixtureID'] . "</td>"; 
       echo "<td>" . $row['opponent'] . "</td>"; 
       echo "<td>" . $row['date'] . "</td>"; 
       echo "<td>" . $row['away'] . "</td>"; 
       echo "<td>" . $row['sportID'] . "</td>"; 
       echo "<td>" . $row['refereeID'] . "</td>"; 
      echo "</tr>"; 
     } 
     echo "</table>"; 
     mysqli_free_result($result); 
    } else { 
     echo "No records matching your query found."; 
    } 
} else { 
    echo "ERROR: could not execute $sql1. " . mysqli_error($link); 
} 
+3

Вы должны думать о добавлении таблицы содержат '1 = football.2 = теннис и 3 = плавание – RiggsFolly

+0

и еще, чтобы сделать то же самое для' дома и Away' – RiggsFolly

+0

I у них есть та таблица. это называется спорт со столбцами sportID и имя –

ответ

0
echo "<td>" . $row['fixtureID'] . "</td>"; 
echo "<td>" . $row['opponent'] . "</td>"; 
echo "<td>" . $row['date'] . "</td>"; 
if($row['away']) 
    echo "<td>Away</td>"; 
else 
    echo "<td>Home</td>"; 

switch($row['sportID']){ 
    case 1: echo "<td>Football</td>"; 
     break; 
    case 2: echo "<td>Tennis</td>"; 
     break; 
    case 3: echo "<td>Swimming</td>"; 
     break; 
    default: echo "Error!"; 
} 
echo "<td>" . $row['refereeID'] . "</td>"; 
+0

где бы этот код ехал> –

+0

@FaayoBedrudin - я только что обновил его –

+0

спасибо, что вы спасатель! SM Iftakhairul –

0

Пожалуйста, проверьте его:

echo "<td>" . (isset($row['away']) && $row['away']) ? 'AWAY' : 'HOME' . "</td>"; 
+0

Вот только половина ответа ... – Andy

1

Вы не показывают структуру Sport таблицы, поэтому я предполагаю, что есть столбец в этой таблице под названием Name. Вы можете изменить эту часть, чтобы отразить фактическую таблицу.

я бы не использовать PHP, чтобы получить эти значения, если они уже в базе данных (как намекают следующее в вашем CREATE заявлении):

FOREIGN KEY (sportID) REFERENCES sport(sportID), 

Вместо SELECT * FROM fixtureDetails; запроса вы используете Я хотел бы использовать следующий запрос вместо:

Select F.FixtureId, 
     F.Opponent, 
     F.Date, 
     Case When F.Away = 1 Then 'Away' Else 'Home' End As Away, 
     S.Name As Sport, -- Change S.Name to the actual column in Sport. 
     F.RefereeId 
From FixtureDetails F 
Join Sport   S On S.SportId = F.SportId 
+0

Это спасает меня от написания – RiggsFolly

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