0

Ok。私はサイト全体を見渡しましたが、近づいてきましたが、葉巻はありませんでした...クエリに使用されている列...イベントの日付情報をPHPカレンダーに返すDBがあります... DBがセットアップされ、カレンダーがセットアップされ、クエリがうまくいきます...しかし指定された日にイベントが 1 つしかない場合のみ... DB にその日付のイベントが 2 つある場合、クエリは最初のイベントのみを返します...クエリの方法を知る必要があります。

SELECT * FROM CraftShows WHERE Date = $date

...そして(そのクエリから返された2行があるとします...)簡単にアクセスできるように、返された2行を別の配列内のSEPARATE変数に入れます...

できれば:最初の行が入り$show[0]、2番目の行が$show[1]...に入ります

その後、カレンダーPHPファイルにwhileループを記述して、配列を反復処理し、行を<TD>要素にエコーすることができます...

私が持っていたものの断片があればよかったのですが、私はそれをすべてごちゃ混ぜにして、完全に台無しにしました。再試行中にこれを投稿し、2 回目の試行でこの投稿を更新します...これが十分に明確であることを願っています...事前に助けてくれてありがとう. 乾杯!

-アンドリュー

補遺:

$showdate動作するコードは次のとおりですが、DBに一致するイベントが複数ある場合は最初のイベントのみを返します...

while ( $day_num <= $days_in_month ) {

$showdate = $year . "-" . $month . "-" . $day_num;

$showdata = mysql_query("SELECT * FROM CraftShows WHERE Date = '$showdate'");

$row = mysql_fetch_array($showdata);

echo "<td id = 'caldata' height=240px width=120px valign = 'top'> $day_num <br> $row[0]

<br> $row[1] <br> $row[3] </td>";

$day_num++;

$day_count++;

if ($day_count > 7) { echo "</tr><tr>"; $day_count = 1; }

}

4

1 に答える 1

-1

PHP を使用している場合は、次のようなものが必要になる場合があります。

$dbh = Database::connect();
$query = "SELECT * FROM CraftShows WHERE Date = ?";
$sth = $dbh->prepare($query);
$sth->execute(array($date));    
for($i=0 ; $i<$sth->rowCount() ; $i++){
    $show[$i] = $sth->fetch();
}
return $show;

OBS:CraftShowsたとえば、テーブルに列abおよびがある場合、 のc各要素は$show3 つの要素 ( abおよびc) を持つ配列になります。たとえば、クエリでフェッチされた 3 番目の行$show[2]["b"]のフィールドが含まれます。b

OBS2:Databaseデータベースに接続する PHP クラスのはずです。何かのようなもの:

class Database {

    public static function connect() {
        $dsn = 'mysql:dbname=name_here;host=host_here';
        $user = 'username_here';
        $password = 'password_here';

        try {
        $dbh = new PDO($dsn, $user, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
        echo 'Connection Failed : ' . $e->getMessage();
        exit(0);
        }
        return $dbh;
    }
}

更新: コードを更新すると、これを試してみることができます:

   $return = array();
   $i=0;
   while($row=mysql_fetch_array($showdata)) {
       $return[$i] = $row;
       $i++;
   }

結果は$return

于 2013-07-29T23:20:25.370 に答える