質問します。
DBにID,NAME,IMGと言うカラム名があります。
例
ID NAME IMG
0001 PHP1 PHP1
0002 PHP2 PHP2
0003 PHP3 PHP3
データを取得し、ブラウザにて横に表示するように
したいのですが、うまくいきません…。
ブラウザーイメージ
0001 0002 0003
PHP1 PHP2 PHP3
画像 画像 画像
以下がサンプルです。
<?php
//DB接続
if((!$db = mysql_connect("","",""))){
die;
}
//DB選択
if((!mysql_select_db(""))){
die;
}
if(!mysql_query('set names sjis')){
echo "sjis 設定エラー";
die;
}
$SQL = "SELECT * FROM video_data";
if(!($rs = mysql_query($SQL))){
print mysql_error();
die;
}
?>
<table border="0">
<TR>
<?php
$count = 0;
while($item = mysql_fetch_array($rs)){
//ID表示
print "<TD>".$item['ID']."</TD>";
//名前表示
print "<TD>".$item['NAME']."</TD>";
//改行
if($count == 4){
print "</TR>";
$count = 0;
}
//IMG表示
print "<TD><img src='./test/".$item['ID'].".jpg'/></TD>";
$count++;
}
print "<TR>";
//コネクションクローズ
mysql_close();
?>
</TABLE>
どこを修正したらいいのかわかりません…
色々やっているんですが…。
わかる方が居たらヒントでもいいので
教えて下さい。よろしくお願いします。
No.4ベストアンサー
- 回答日時:
最初に回答させていただいたものは、CSS部分がきもになります。
CSSを書き換えれば、データ量が大きくても意図したものになると思います。
またテーブルの入れ子の方法に関しましては以下。
<table border="1">
<?php
$i=0;
$max = 4;
foreach($data as $datum):
$i++;
?>
<?php if($i == 1):?>
<tr>
<?php endif;?>
<td>
<table border="2">
<tr>
<td><?php echo $datum['ID']?></td>
</tr>
<tr>
<td><?php echo $datum['NAME']?></td>
</tr>
<tr>
<td><img src="./test/<?php echo $datum['ID']?>.jpg" /></td>
</tr>
</table>
</td>
<?php if($i == $max):?>
</tr>
<?php $i=0; ?><?php endif;?>
<?php endforeach;?>
</table>
フラグを立てて、4回に一回、<tr>が出現するようにすれば良いと思います。
ただ、昨今テーブルを入れ子にするHTML構造はあまり良くないのでオススメしません。
また、画像で示されたサイトなんですが、こちらのソースを見てみたら、何かヒントが得られませんか?
メッセージありがとうございます。
何度も教えて頂き、本当申し訳ないです…。
テーブルの入れ子に関しては、あまり良くないって言うのは
ネットで見たんですが、画像のサイトや、似たようなサイトも
TABLEタグを使っていたので、いいのかなぁ…なんて疑問を
思っていたりしました。
質問する前は、ソースを見て
解読していたのですが、今はソースを参考に
PHPEclipseで実行し、どのように動作するのか
確認しています。
ソースを確認する事はやっていましたが、ソースを実行する
事までは考えになかったです…。
教えて頂いたCSS,TABLEタグ
両方を作って見ようと思います。
何度も教えて頂き、ありがとうございました。
No.3
- 回答日時:
foreachの部分を、whileに読み替えていただければ良いかと思います。
<?php while($data = mysql_fetch_array($rs)):?>
//HTML部分
<?php endwhile;?>
メッセージありがとうございます。
質問する前に教えていただいたコードも試したのですが
どうやらDBに登録するデータによって表示がおかしく
なっていたようで、データを変更すれば
私がやりたかった事が出来そうです。
何度も申し訳ないのですが、もう一つ質問があります。
教えていただいた案の一つに
<TABLE>タグを入れ子にすると書かれていたのですが
ループでデータを取得する場合、
IDに対して一つのループ、NAMEに対して
一つのループと、一つのループに対してID,NAMEを取得
する事は出来るのでしょうか?
<TABLE border="1">
<?php while($data = mysql_fetch_array($rs)):?>
<TABLE border="2">
<TR><TD>$data['ID']</TD></TR>
<TR><TD>$data['NAME']</TD></TR>
</TABLE>
<?php endwhile; ?>
</TABLE>
上記のようなコードでは横並びにて
表示する事は出来ないですよね?
もしよろしければアドバイスお願い致します。
No.1
- 回答日時:
tableタグを一つでどうにかするのが困難と思いますので、
tableを入れ子にするか、ulタグやdlタグなどで、データ一覧を作ってみてはいかがでしょうか。
後はCSSで「float:left;」とかしてやれば、ある程度上手く行くと思います。
--例-----------------------------------------------
<?php
$data = array(
array(
'ID' => '0001',
'NAME'=> 'PHP1',
),
array(
'ID' => '0002',
'NAME'=> 'PHP2',
),
array(
'ID' => '0003',
'NAME'=> 'PHP3',
),
array(
'ID' => '0004',
'NAME'=> 'PHP4',
),
array(
'ID' => '0005',
'NAME'=> 'PHP5',
),
array(
'ID' => '0006',
'NAME'=> 'PHP6',
),
);
?><html>
<head>
<title>商品一覧</title>
<style>
#info{
width:802px;
border:1px solid black;
}
#info dl{
margin:0;
padding:0;
float:left;
width:200px;
}
#info dl dt{
margin:0;
padding:0;
background-color:#CCCCCC;
}
#info dl dd{
margin:0;
padding:0;
}
</style>
</head>
<body>
<div id="info">
<?php foreach($data as $datum):?>
<dl>
<dt><?php echo $datum['ID']?></dt>
<dd><?php echo $datum['NAME']?></dd>
<dd><img src="./test/<?php echo $datum['NAME']?>.jpg" /></dd>
</dl>
<?php endforeach;?>
</div>
</body>
</html>
メッセージありがとうございます。
教えていただいたサンプルで
出来たのですが、質問があります。
while文で取得した値をarray配列を使って
$data配列に設定する事は出来ないのでしょうか?
表示する際に正しく表示されないので…。
-----------------
//配列にセット
while($item = mysql_fetch_array($rs)){
$data = array('ID' >= $item['ID'],
'NAME'>= $item['NAME']);
}
<div id="info">
//$datum変数にセット
<?php foreach($data as $datum):?>
<dl>
<dt><?php echo $datum['ID']?></dt>
<dd><?php echo $datum['NAME']?></dd>
<dd><img src="./test/<?php echo $datum['ID']?>.jpg" /></dd>
</dl>
<?php endforeach;?>
</div>
自分でもやってみますが、もしよろしければ
アドバイスよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP PHP ページング データベース 1 2022/06/16 10:30
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのタイムアウトについて
-
php で C言語のdefineマクロの...
-
RSSデータの読み込み方を教えて...
-
こちらはただの直列処理ですか?
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
form actionで二つ送信先を指定...
-
シェルスクリプトからphpファイ...
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
存在しないメールアドレスかど...
-
.htaccessにphp_valueが使用できな
-
PHP8を使うと、大量のWarningが...
-
PHPでfatal errorが出ても無視...
-
アップロード画像数でCSSを分け...
-
Apacheでhttp://localhost/が表...
-
別ファイルの変数を呼び出した...
-
FORMで送信ボタンと戻るボタン...
-
sqlで日付が一番古いデータの月...
-
php5のrename()は日本語をリネ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php で C言語のdefineマクロの...
-
PHP MySql ページング
-
BASIC認証のユーザー名をPHPで...
-
特定の値をPOST送信で他のサー...
-
cakephpのサブタイトルはどこで...
-
PHPのタイムアウトについて
-
simplexml_load_file で呼び出...
-
phpのエラーについて
-
同一ディレクトリの連番ファイ...
-
「include()」関数の使い方につ...
-
DBから取得した内容を横表示
-
PHPでxmlファイルへのデータの...
-
home_urlとbloginfo('url')
-
PHPとHTMLをまとめてコメントア...
-
Nowdocの機能をphp5.2で使いたい
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
index.phpに入るには、どうすれ...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
おすすめ情報