0

私はまだ PhP に非常に慣れていませんが、ここに次のステートメントがあります。

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'GROUP_CONCAT(CASE WHEN `Date` = ''',
      `Date`,
      ''' THEN hours ELSE NULL END) AS `',
      `Date`, '`'
    )
  ) INTO @sql
FROM Days;

SET @sql = CONCAT('SELECT Name, ', @sql,'
                     FROM Days
                    GROUP BY Name
                  ');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

私はPhpでそれを実行しようとしているので、このフィドルのような同じhtmlテーブルがあります:

http://sqlfiddle.com/#!2/37156/8

4

1 に答える 1

0

このような準備ステートメントを使用するfetchAllと、SQL が含まれる関数から戻ります。これにより、すべてのデータの配列が返されます。

次に、適切と思われる HTML ページで次のように書式設定できます。

$data = nameOfYourFunctionThatReturnsFetchAll;

<?php echo '<li>' . $data['nameOfFieldFromDatabase'] . </li> ?>

などなど

編集:

<?php 

function getData(){

sql here
try{
execute sql here
}catch PDOException($e){
$e->getMessage();
}
return fetchAll();
}

それから

$data = getData();

次に、HTMLで

<?php echo '<li>' . $data['name'] . </li> ?>

$data['name'] 内の値がデータベース内のフィールドの名前を参照していることを知っておく必要があるため、それらが一致していることを確認してください

于 2013-07-25T13:01:05.053 に答える