2015-10-28 6 views
2

Im созданием tablerows на основе количества цветов массива:Различать между элементами и последним элементом массива

$query = mysql_query("SELECT * FROM things); 
$num = mysql_num_rows($query); 
$colours = array(); 

if($num) 
{ 
    for ($i = 0; ($row = mysql_fetch_assoc($query)); ++$i) 
    { 
     $colours[$i] = $row["colours"]; 
    } 
} 


$arrlength = count($colours); 
for ($i = 0; ($i < ($arrlength)); ++$i){    
    echo " 
     <tr class='border_bottom'><td>".$colours[$i]."</td></tr> 
    "; 
} 

Так, если цвет есть, позволяет сказать, равное 8, 8 строк таблицы с классом border_bottom создаются.

border_bottom используется CSS, чтобы добавить границу к нижней части каждого tablerow.

Мне нужна помощь в PHP: мне нужен код, который проверяет цвета массива. Последний элемент массива должен идти с пустым идентификатором, так как я не хочу, чтобы нижний край был добавлен к последнему tablerow. Все остальные вкладки должны идти с классом border_bottom, tho. Я думал о запуске подобный код:

echo" 
<tr class=' 
"; 
-->PHP code goes here<-- 
echo" 
'> 
<td>".$colours[$i]."</td></tr> 
+0

Вы правы, мои плохие. Любое предложение о том, как устранить проблему с помощью класса? –

+0

это недопустимый html. 'id' ** MUST ** быть уникальным во всем документе. –

+0

Это пример кода. –

ответ

0

Попробуйте это:

<?php 
$query = mysql_query("SELECT * FROM things"); 
$num = mysql_num_rows($query); 
$colours = array(); 

if($num) 
{ 
    while($row = mysql_fetch_assoc($query)) 
    { 
     $colours[] = $row["colours"]; 
    } 
} 

$arrlength = count($colours); 
for ($i = 0; $i < $arrlength; ++$i){ 
    if($i < $arrlength - 1){ 
     echo "<tr class='border_bottom'><td>{$colours[$i]}</td></tr>"; 
    }else{ 
     echo "<tr><td>{$someColor}</td></tr>"; 
    }   
} 
+0

Это прекрасно работает! –

0

Попробуйте следующий код в вашей строке таблицы эхо

echo "<tr" 
    .($i < $arrlength - 1 ? " class='border_bottom'" : "") 
    .">" 
    ."<td>{$colours[$i]}</td></tr>"; 
0

Вы действительно можете сделать это в то время выборка строк без необходимости подсчитывать, сколько их есть, прочитав вперед одну строку.

$previous_row = mysql_fetch_array(); // fetch the first row (if there is one) 
while ($previous_row) { 
    if ($row = mysql_fetch_array()) { 
     // if another row is fetched, then the previous row was NOT the last row 
     echo '<tr class="border_bottom"><td>' . $previous_row['colours'] . '</td></tr>'; 
    } else { 
     // otherwise, the previous row WAS the last row, and does not get the class 
     echo '<tr><td>' . $previous_row['colours'] . '</td></tr>'; 
    } 
    $previous_row = $row; // Set the previous row to the current row 
} 
+0

интересный способ взглянуть на него –

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