Расширение табличной функции PHP - поведение для определенных столбцов - PullRequest
0 голосов
/ 23 августа 2011
<?php 
function f__table ($table,$cols,$order,$desc) {

$comma=implode(",",$cols);
$query = 'select '.$comma.' from '.$table.' order by '. $order.' '. $desc; 
$result = mysql_query($query); 

if (!$result) { 
$message = 'ERROR:' . mysql_error(); 
return $message; 
} 

else    { 
    $i = 0; 
    echo '<table class="tablesorter" width="960px;"><thead><tr>'; 
    while ($i < mysql_num_fields($result))  { 
    $meta = mysql_fetch_field($result, $i);
    //take table title and remove the F_prefix
    $title=$meta->name;
    $title=str_replace('F_','',$title); 
$title=str_replace('_',' ',$title); 
    echo '<th>' . $title . '  &nbsp;&nbsp;</th>'; 
    $i = $i + 1; 
    } 

    echo '</tr></thead><tbody>'; 
    $i = 0; 
    while ($row = mysql_fetch_row($result)) 

    { 
    echo '<tr>'; 
    $count = count($row); 
    $y = 0; 
    while ($y < $count) 
            { 
            $c_row = current($row); 
            echo '<td>' . $c_row . '</td>'; 
            next($row); $y = $y + 1; 
            } 
echo '</tr>'; 
$i = $i + 1; 
} 

echo '</tbody></table>';
mysql_free_result($result); 
} 
// close connection
mysql_close();
// close function
}
?>

У меня есть эта табличная функция, которая хорошо работает для моих нужд в виде простого отображения, если данные из моей базы данных mysql выводятся на экран с использованием некоторого jQuery для добавления некоторой функциональности, например сортировки столбцов, стилизации строк зебры и т. Д.

Однако теперь я хочу явно расширить свою функцию, чтобы включить ссылку в разметку html, поэтому, например, в столбце 1 могут быть значения 1, 2, 3, 4. Я хочу иметь ссылку на www.something.com/page/ 1, / 2, / 3, / 4 и т. Д., Но в другом примере это может быть не столбец 1 в зависимости от моего sql.Я знаю, что в каждом случае на основе имени поля, которое должно быть ссылкой на другие страницы, таблица может иметь 15 столбцов, из которых 6 из них могут содержать ссылки в каждом элементе таблицы td на другую страницу в зависимости от значения,

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

У меня есть более 40 страниц с таблицами данных, диаграммами и графиками на моем веб-сайте, которые я кодировал вручную, и теперь я хочу улучшить их по мере развития моих навыков PHP

Я верю, что будунужны некоторые операторы if, основанные на ключе массива (имя поля) в качестве индикатора, и если ключ массива существует в другом массиве, извлеките значение из этого массива ... если это имеет смысл.

Если кто-то может предоставитьпример кода или какой-то логики и указатель в правильном направлении, что было бы очень полезно.

1 Ответ

0 голосов
/ 30 августа 2011

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

создать массив для имен полей, похожих на: (имя, ширина, выравнивание, поведение).

'F_DESCRIPTION' => array( 'Description', 210, 'left', '_function_display' ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...