現在PHP+MySQLにて検索アプリを作成中です。
そこで、検索結果一覧から各アイテムの先頭フィールドに「checkbox」を設置して、
ユーザーにアイテムを複数選択させ、別画面にてアイテムの詳細を表示して比較するというプログラムを考えています。
実は、先日も「checkbox」の件でこちらにお世話になったのですが、。
素晴らしい回答者様に出会い、チェック後のアイテム表示を実現させることができました。
っで、今回実現させたいのは、フィールド(各項目)を横に設定するのではなく、
縦に設定したいのです。チェックしたアイテムを比較するために横に表示されるようにしたいのです。自分なりに考えて試してみたのですが、やはり解決に至りませんでした。
実現したいことは、
ECナビ
http://kakaku.ecnavi.jp/item_compare/?check=2012 …
このような感じです。
スキル不足でお恥ずかしいのですが、
ご教授、何卒宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
ざっとかきなおしました。
基本的には一度$rowsに抽出データを受ける。
その後$colsに縦横を入れ替えて配置する。
最後に表示する・・・という流れです。
仮に、テーブル内のフィールド名を以下のとおりと
しました。
ID=`id`,飛び先=`url`,写真画像=`image`,商品名=`name`,価格=`price`
<?php
$link=mysql_connect(ホスト,ユーザー,パスワード);
mysql_select_db('table',$link);
$id = $_GET['item'];
$allid="";
foreach($id as $val){
$allid.=($allid==""?"(":" OR ")."(`id`='$val')";
}
$allid.=")";
$sql = "SELECT `id`,`url`,`image`,`name`,`price` FROM `table` where $allid" ;
//print $sql;
$res=mysql_query($sql,$link);
while($row= mysql_fetch_array($res,MYSQL_ASSOC)){
$rows[]=$row;
}
foreach($rows as $key1=>$val1){
foreach($val1 as $key2=>$val2){
$cols[$key2][$key1]=$val2;
}
}
$body .= <<<eof
<TABLE width="100%" border="1" cellspacing="0" cellpadding="3">
eof;
$body.="<TR>";
$body.="<TD>写真</TD>";
foreach($cols['image'] as $key=>$val){
$body.="<TD><a href=\"".$cols['url'][$key]."\"><img src=\"".$val."\"></a></TD>\n";
}
$body.="</TR>";
$body.="<TR>";
$body.="<TD>商品名</TD>";
foreach($cols['name'] as $key=>$val){
$body.="<TD><a href=\"".$cols['url'][$key]."\">".$val."</a></TD>\n";
}
$body.="</TR>";
$body.="<TR>";
$body.="<TD>価格</TD>";
foreach($cols['price'] as $key=>$val){
$body.="<TD>".number_format($val)."円</TD>\n";
}
$body.="</TR>";
$body.="</TABLE>";
print $body;
?>
yambejp様、どうもです。
おかげさまで表示することができました。
有難うございました。
ただ、ソースを理解するところまではいっていない、スキル不足の自分がもどかしいのですが...(汗っ)
この度は最後までご教授いただきまして、本当に有難うございました。
No.1
- 回答日時:
たとえばこんな感じでわかります?
<?PHP
$rows[]=Array(id=>"001",name=>"りんご",color=>"赤",price=>200);
$rows[]=Array(id=>"002",name=>"みかん",color=>"橙色",price=>50);
$rows[]=Array(id=>"003",name=>"レモン",color=>"黄色",price=>100);
print "<table border>";
foreach ($rows[0] as $key=>$val1) {
print "<tr>";
foreach ($rows as $val2) {
print "<td>".$val2[$key]."</td>";
}
print "</tr>";
}
print "</table>";
?>
yambejp様、ご回答ありがとうございます。
大変申し訳ございません、恥ずかしながら理解することができませんでした。
ご足労ですが、今一度ご教授おねがいいたします。
下記のようにして、チェックしたアイテムを縦に表示することは出来ました。
<?php
中略
$db = "test";
$id = $_GET['item']; //checkboxの変数の値
if (count($_GET['item'] > 0)) {
foreach ($_GET['item'] as $id) {
$sql = "SELECT *
FROM nucleus_plug_znitemfieldex_table_table_item_b28 where id =". $id ;
$rs = mysql_db_query($db,$sql);
$rows[] = mysql_num_rows($rs);
$body .= "
<TABLE width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\">
<TR>
<TD>写真</TD>
<TD>商品名</TD>
<TD>販売価格</TD>
<TR>\n";
while($row = mysql_fetch_array($rs)) {
$body .= "<TR>\n";
$body .= "<TD width=\"40\" height=\"40\"><div align=\"center\"><a href=\"" .$row[6]. "\" ><img src=\" " .$row[7]. "\" width=\"30\" height=\"30\" border=\"0\"></a></div></TD>\n";
$body .= "<TD><a href=\"" .$row[6]. "\" >". $row[11]. "</a></TD>\n";
$body .= "<TD>" . number_format($row[4]) . "円</TD>\n";
$body .= "</TR>\n";
}
$body .= "</TABLE>\n";
}
}
?>
大変恐縮ですが上記をどのように変更すれば、アイテムを横に並べることが出来るのでしょうか?宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELピボットテーブル(複数アイテム) 1 2023/04/27 12:15
- Chrome(クローム) Chromeでgooglemap検索等結果が他国になってしまう 1 2022/10/05 12:18
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- 統計学 新製品が売れているかの統計解析 3 2023/04/27 21:46
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Google Drive googleドライブ 共有フォルダ 表示 されない 2 2023/07/06 10:37
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- 家具・インテリア 昭和時代に実家あった、現代では多分激レアアイテム茶の間用くつろぎ枕を探しています 2 2022/07/03 21:49
- フリーソフト libreoffice drawのツールバーのチェックが外れてしまう 1 2022/10/04 22:02
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダウンロードしたApacheがstart...
-
php でqiitaのサイトにあったフ...
-
PHPで今日の日付から3日後を表...
-
アップロード画像数でCSSを分け...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
プログラミング言語で、使える...
-
index.phpに入るには、どうすれ...
-
PHP8を使うと、大量のWarningが...
-
phpでcookieがうまく保存されない
-
「基礎からのMySQL 第3版 Kindl...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
phpのheader("Location:#pos")...
-
PHPからCSVをアップロード後、m...
-
[php初心者]サイトを見てデータ...
-
phpに関わる所での、form actio...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pdfファイルの複数添付 引数の型
-
HTML文書内の相対URLを絶対URL...
-
マッチング処理(1:N)
-
ラジオボタンをランダムに表示...
-
VB.NET で 二次元のハッシュは...
-
PHPで変数名にハイフンを使うに...
-
foreachで上限回数指定方法また...
-
多次元配列のスマートな書き方
-
リストボックス複数選択抽出方法
-
ftokが動かない?
-
元号の表示
-
配列データのグループ別け
-
配列Xの平均値を求める関数副プ...
-
phpでforeachの中にforeachがあ...
-
Smartyでインクリメント
-
意味を教えてください。
-
smartyでtplファイルでの2次元配列
-
添え字が全て文字列のPHPの多次...
-
smartyのforeachの使い方
-
foreachの間にテーブルの<TR>を...
おすすめ情報