とても、読みやすいソースですね。
もしかして、帰国子女、または業界人?
もしくは、どっかからの引用でしょうか?
ちほとしのぶとちづるを見なきゃならないんで、動作確認していません。
頭の中だけで組み立てたので、このままで動けば奇跡です。
適当に、直してください。
ロジック的におかしな所があれば、教えてもらえると嬉しいな!
※全角スペース使用してるんで、タブなどに変換してください。
表示部分は、テンプレ使用しないの久しぶりだったので、見にくくなりました。
ぁあああ、ドラマはじまってる・・・
<?php require_once('Connections/link.php'); ?>
<?php
$maxRows_Recordset = 15;
$pageNum_Recordset = 0;
if (isset($_GET['pageNum_Recordset'])) {
$pageNum_Recordset = $_GET['pageNum_Recordset'];
}
$startRow_Recordset = $pageNum_Recordset * $maxRows_Recordset;
mysql_select_db($database_link, $link);
$query_Recordset = "SELECT * FROM `link`";
$query_limit_Recordset = sprintf("%s LIMIT %d, %d", $query_Recordset, $startRow_Recordset, $maxRows_Recordset);
$Recordset = mysql_query($query_limit_Recordset, $link) or die(mysql_error());
// 表示処理が一覧のみしかない場合は、ここで取得されてはどうでしょうか?
// 他の処理とかち合わない様に、変数名ちょこっと変更
//$row_Recordset = mysql_fetch_assoc($Recordset);
for ( $i=0; $row = mysql_fetch_assoc($Recordset); $i++ ) {
$_tempFetchBuffer[$i] = $row;
}
// 取得されたデータがない場合、テーブル表示をせず、それなりの処理を施してください。
if ( ($nums_Request = $i) != 0 ) { // 取得数
$rows_Request = $_tempFetchBuffer; // 取得データ
} else {
/* データがない場合にでも・・・ */
}
if (isset($_GET['totalRows_Recordset'])) {
$totalRows_Recordset = $_GET['totalRows_Recordset'];
} else {
$all_Recordset = mysql_query($query_Recordset);
$totalRows_Recordset = mysql_num_rows($all_Recordset);
}
// 対処の必要は無いと思いますが、$maxRows_Recordset=1の場合、求める値と違う場合があります。
$totalPages_Recordset = ceil($totalRows_Recordset/$maxRows_Recordset)-1;
?>
<?php // fetch data
function _fetchRequest($num) {
global $rows_Request, $nums_Request;
if ( $num >= $nums_Request) {
return array_pad($_temp, 3, false);
}
$url = $rows_Request[$i]['url'];
$bn = $rows_Request[$i]['bn' ];
$hptytle = $rows_Request[$i]['hptytle']; // hptytle's miss-typo, means hp-title ?
$comment = $rows_Request[$i]['comment'];
$link = "<a href=\"{$url}\"><img src=\"{$bn}\" alt=\"{$hptytle}\"></a>";
return array($link, $hptytle, $comment);
}
?>
/* php comment
* 表示部は、SMA*SMAテンプレートをと言いたいところですが・・・
* 原本の方法ですると、ちょっと複雑になります。ヒァドキュ使ったほうが見やすいかも
* 同じような処理は、一つにまとめられる方が好きな方もいますが、
* 表示処理は、無理に一つにまとめるとソースがわかり辛く、メンテが大変だと思います
* また、3段、4段組みとされたくなった場合を考慮して、
* 段組数により、表示処理を分けられる事をお勧めします
* 分岐処理は、適当にしてください。
*/
// 段組なしの場合 この段階で1つ以上データがある事を保障しておく
<table width="100%" border="0" cellpadding="5">
<?php
for ( $i; $i < $nums_Request; $i++ ) :
list($link, $hptytle, $comment) = _fetchRequest($i);
// if ( $url === false ) break; // まぁ、いいかな
?>
<tr><td rowspan="2"><?php echo $link; ?></td>
<td><?php echo $hptytle; ?></td>
</tr>
<tr><td><?php echo $comment; ?></td></tr>
<tr><td colspan="2"><hr></td></tr>
<?php
endfor;
?>
</table>
// 二段組の場合 この段階で1つ以上データがある事を保障しておく
<table width="100%" border="0" cellpadding="5">
<?php
for ( $i; $i < $nums_Request; $i+=2 ) :
list($url_1, $bn_1, $hptytle_1, $comment_1, $link_1) = _fetchRequest($i);
list($url_2, $bn_2, $hptytle_2, $comment_2, $link_2) = _fetchRequest($i+1);
?>
<?php if ( $url !== false ) : // valid 2 column ?>
<tr><td rowspan="2"><?php echo $link_1; ?></td>
<td><?php echo $hptytle_1; ?></td>
<td rowspan="2"><?php echo $link_2; ?></td>
<td><?php echo $hptytle_2; ?></td>
</tr>
<tr><td><?php echo $comment_1; ?></td><td><?php echo $comment_2; ?></td></tr>
<?php else : // valid only one ?>
<tr><td rowspan="2"><?php echo $link_1; ?></td>
<td><?php echo $hptytle_1; ?></td>
<td colspan="2" rowspan="2"><br></td>
</tr>
<tr><td><?php echo $comment_1; ?></td></tr>
<tr><td colspan="4"><hr></td></tr>
<?php endif; ?>
<?php endfor; ?>
</table>
お礼
本当ーーーにどうもありがとうございました! 2列にするのって、てっきり、どこか1~2行ちょろちょろっと直せばできるのか と思い込んでいたのですが、 大変な解説をとても丁寧にして頂き、本当に感謝しております。 しかもドラマそっちのけで書いて頂いたようで・・・。 >しのぶが可哀想・・・と思ってたら、こっちのソースも可哀想 これにはウケまくってしまいましたが。 私が書いたコードとかは、本とDreamweaverの言いなりになっていたらできたものなので >もしかして、帰国子女、または業界人? を見た時、慌てちゃいました。title のスペルも間違えてたくらいですし( ´・ω・`) 教えて頂いた内容を夕方からずっと本と格闘しながら解読していたのですが 先程ようやくだいたい理解できたところです・・・。 本を読んでもなかなか理解できなかった部分がわかってすっごく嬉しかったです。 本当はきちんと出来てから「出来ました!」と書きたかったのですが 今日はここまででヘトヘトな感じなので、とりあえず先にお礼をと思いまして・・・。 本当にご丁寧に教えて頂きましてどうもありがとうございました。