Я настроил базу данных MySQL и пишу код PHP, чтобы прочитать содержимое таблицы и вывести ее в виде таблицы HTML. Я хочу чередовать цвета строк, но я изо всех сил стараюсь это сделать. Я искал темы здесь и перепробовал все, что нашел, но он не работает. Вот мой код
<?php
{ // Secure Connection Script
include('../htconfig/dbConfig.php');
$dbSuccess = false;
$dbConnected = mysql_connect($db['hostname'],$db['username'],$db['password']);
if ($dbConnected) {
$dbSelected = mysql_select_db($db['database'],$dbConnected);
if ($dbSelected) {
$dbSuccess = true;
}
}
// END Secure Connection Script
}
if ($dbSuccess) {
$query = "SELECT * FROM tvdbase";
$result = mysql_query($query);
echo "<table>";
echo "<table border='1'>";
echo "<tr>";
echo "<td>Date</td>";
echo "<td>Course</td>";
echo "<td>Room</td>";
echo "</tr>";
$indx = 0;
while($row = mysql_fetch_array($result)){
$indx = $row['ID'];if ($indx % 2 == 0) {
$bgColor = ' style="background-color:#CCFFFF;" ';
} else {
$bgColor = ' style="background-color:#FFFF99;" ';
}
echo "<tr>
<td bgColor>" . $row['tvDate'] . "</td>
<td bgColor>" . $row['tvCourse'] . "</td>
<td bgColor>" . $row['tvRoom'] . "</td>
</tr>";
$indx++;
}
echo "</table>";
mysql_close();
}?>
Он показывает мою таблицу с 3 колонками (Date-Course-Room), но не с цветами.
Любая помощь, пожалуйста?
Что вам нужно сделать, это не забыть использовать $
перед переменной.
Также можно использовать $
внутри строки в двойных кавычках, но не в одинарных.
Примеры:
$ping = 'pong';
echo "Ping = $ping";
/* pong */
$ping = 'pong';
echo 'Ping = $ping';
/* $ping */
$ping = 'pong';
echo 'Ping = ' . $ping;
/* pong */
Так что в вашем случае ваш код будет:
<?php
include('../htconfig/dbConfig.php'); // Get config document
$mysqli = new mysqli($db['hostname'], $db['username'], $db['password'], $db['database']); // Connecting to SQL Server
// Checking if connection was successfull
if( $mysqli->connect_errno ){
echo 'There was an error connection to the SQL Server<br>';
echo '(' . $mysqli->connect_errno . ') ' . $mysqli->connect_error;
exit; // FAIL
}
// Preparing a statement
$stmt = $mysqli->prepare('SELECT * FROM tvdbase');
// Checking if php prepared the statement successfully
if(!$stmt){
echo 'There was an error preparing the statement!';
exit;
}
// Execute the statement
if( !$stmt->execute() ){
echo 'There was an error executing the statement!';
exit;
}
// Catching data
$result = $stmt->get_result();
// Starting to create a string
$str = '<table style="border:1px black solid;" >';
$str .= '<tr>';
$str .= ' <td style="border-bottom: 1px black solid;" >Date</td>';
$str .= ' <td style="border-bottom: 1px black solid;" >Course</td>';
$str .= ' <td style="border-bottom: 1px black solid;" >Room</td>';
$str .= '</tr>';
// Display data
while($row = $result->fetch_array(MYSQLI_ASSOC)){
$indx = $row['ID'];
if ($indx % 2 == 0) {
$bgColor = '#CCFFFF';
} else {
$bgColor = '#FFFF99';
}
$str .= '<tr>';
$str .= ' <td style="background: ' . $bgColor . ';">' . $row['tvDate'] . '</td>';
$str .= ' <td style="background: ' . $bgColor . ';">' . $row['tvCourse'] . '</td>';
$str .= ' <td style="background: ' . $bgColor . ';">' . $row['tvRoom'] . '</td>';
$str .= '</tr>';
}
// Print the string
echo $str;
?>
Вы забыли поставить знак $ перед переменной bgColor
echo "<tr>
<td ".$bgColor .">" . $row['tvDate'] . "</td>
<td ".$bgColor .">" . $row['tvCourse'] . "</td>
<td ".$bgColor .">" . $row['tvRoom'] . "</td>
</tr>";
но лучше использовать CSS для этого материала