2013-06-19 5 views
0

У меня есть таблица в базе данных. Когда я ввожу .../array.php?id=1 в URL-адрес, он выделит эту строку. Если я ставлю id=2 в, то он будет выделить строке 2Использование URL для выделения строки таблицы

Это мой код до сих пор:

<?php 
function connect(){ 
    // Make a MySQL Connection 
    $link = mysqli_connect("localhost", "root", "", "school") or die(mysqli_error()); 
    return $link; 
} 

if ($_GET) 
{ 
    if(isset($_GET["id"])) $id = $_GET["id"]; 
} 


// select query 
$query = "SELECT * FROM graden" ; 

if (isset($id)) { $query.= " WHERE id = $id "; } 

$result = mysqli_query(connect(),$query); 

// table making 
$table = "<table border='1'>"; 
$table .= "<tr> 
      <th> ID </th> 
      <th>Graden Celcius</th> 
      <th>Aanduiding</th> 
      <th>Image</th> 
     </tr>"; 

// keeps getting the next row until there are no more to get 
while($row = mysqli_fetch_assoc($result)) { 
    // Print out the contents of each row into a table 
    foreach ($row as $key => $value) { 
     if ($key == "Image") { 
      $table .="<td><img src='$value' /></td>"; 
     } elseif ($key == "temp") { 
      $table .="<td><a href='array.php?id=$value'>$value</a></td>"; 
     } else { 
      $table .="<td>$value</td>";   
     } 

    } 
    $table .= "</tr>"; 
} 

$table .="</table>"; 

echo $table; 
?> 
+0

Существует проблема, которая должна быть исправлена, прежде чем вы можете реализовать функциональные возможности, описанные: вы не создаете строки таблицы ('' ) для строк. Вам нужно будет создать новый '' внутри цикла 'foreach()'. Затем добавьте подсветку, поддерживайте счетчик, и если счетчик соответствует значению '$ _GET ['id']' добавьте в строку соответствующий класс CSS. –

+0

В чем вопрос? – pamphlet

+0

Я тоже не вижу вопроса. –

ответ

0

То, что вы ищете, вероятно, что-то похожее на это

while($row = mysqli_fetch_assoc($result)) { 
    // Print out the contents of each row into a table 
    $table .="<tr ".($_GET["id"] == $row["id"]?" style='background-color:yellow'":"").">"; 
    foreach ($row as $key => $value) 
    { 
     if ($key == "Image") 
     { 
      $table .="<td><img src='$value' /></td>"; 
     } 
     elseif ($key == "temp") 
     { 
      $table .="<td><a href='array.php?id=$value'>$value</a></td>"; 
     } 
     else 
     { 
      $table .="<td>$value</td>";   
     } 
    } 
    $table .= "</tr>"; 
} 

Это использует тройную, если условно установить атрибут стиля для таблицы на основе того, соответствует ли идентификатор строки указанному параметру запроса.

+0

, когда я попытаюсь использовать это, я получаю ошибку на этой строке $ table. = ' '; –

+0

Извините, отсутствует цитата ... Ответ был обновлен. – Orangepill

+0

o да, я вижу его, спасибо. Затем я получаю Уведомление: Неопределенный index: id в C: \ xampp \ htdocs \ portfolio \ periode4 \ graden \ array.php в строке 39 –

0

Если добавить критерии ID в запросе с

if (isset($id)) $query.= " WHERE id = $id "; 

тогда вы будете иметь только то, что одна строка в таблице. Поэтому, если вы не хотите фильтровать, а скорее выделяете эту строку, я рекомендую не помещать идентификатор в запрос, а проверять его соответствие внутри цикла, в котором вы печатаете строки таблицы, и если строка имеет соответствующий идентификатор , покрасьте его, например. Кроме того, вы пропустили теги TR из строк. Ваш подсветка кода может быть что-то вроде этого:

while($row = mysqli_fetch_assoc($result)) { 
    $table .= '<tr'; 
    if ($row['id'] === $id) 
     $table .= 'style="background-color: #ff4444;"'; 
    $table .= '>'; 
    // rest of your code .... 
} 
Смежные вопросы