2011-10-29 3 views
0

mysql_num_rows()に基づいて画像をエコーするスクリプトを作成したいと思います。関数。PHP - mysql_num_rowsに基づく写真のエコー量

同様に、私は3列に並んでいます。次に、私は作成します:

$images = mysql_num_rows($count); 

私は3つの画像をエコーし​​たいと思います。

これは可能ですか? ご質問がない場合や書き直したい場合は、教えてください。

+0

あなたは結果セット$ Countの行数に基づいて、それらの多くの数の画像を表示したいと考えていますか?例えば。 $ countに5つのレコードが含まれている場合、5つの画像を表示したいのですか? – Amn

+0

私は1から5までの数字で与えられた星を連続して格納し、行の量に基づいて星のイメージをエコーすることを考えていた小さな評価スクリプトにこれを使用する必要があります。 – skolind

+0

mysql_num_rowsはSELECT結果の行数を返します。したがって、2行戻った場合、2つの画像が出力されます。これは「通常の」評価スクリプトの仕組みではありません。むしろ、単一のテーブル行からレーティングを読み込み、それに基づいて星を出力します。あるいは、いくつかは行の数に平均をとり、浮動の結果に基づいていくつかの星を印刷します。 – halfer

答えて

1

あなたがしなければならないことは、データベースからレーティング(つまり番号)を取り出し、その番号を直接使用して星の数を表示することだけです。 Coz mysql_rows_countは、複数の列の選択クエリの結果として返される結果セット内のレコードの総数を返しますが、あなたの場合は、評価を含む1つの列と、おそらく評価を関連付けるためのユーザーIDまたは何らかの種類のキーが含まれています。結果セットは、連想配列としてフェッチすることができ、インデックスによって使用して右の列をフェッチすることができます。これを見てください:PHP-mysql_fetch_array()

EDIT:ちょうど(実際の構文ではない)総括する:

$array = mysql_fetch_array(<your select query fetching only the needed columns>); 

$images = $array[0] // assuming the rating number is at the 0th index 

//image display code, do your stuff 
+0

私は今、これを行う方法のアイデアを持っていると思う、おい、おい:o) – skolind

+0

あなたは歓迎のメイトです!嬉しいことがあります – Amn

+0

私はこの質問への私の答えに書いたように私はfor()ループを使用しました。非常に簡単:o) – skolind

0

だからここは私がやったことです:

私はと呼ばれる行の私のデータベースに1-5からの番号を持っていました'評価'。今私がデータベースからこれを選んだとき、私は数字(1-5)を '$ starRating'という変数に詰め込んだ。

for($i=1;$i<=$starRating;$i++){ 
echo "<span class='star'><span class='starText'>$i</span></span>"; 
} 

は、その後、私は星とstarTextというクラスを作成しました:

.star{ 
width:18px; 
height:18px; 
background:url('../images/design/smallImg/star.png') no-repeat; 
text-align:center; 
float:right; 
margin-top:2px; 
} 

/* star content */ 
.starText{ 
    display:none; 
} 

.starTextがため()ループからきたでしょうテキストを隠すために行われます。 *別の方法でテキストを避けることができるかわかりません。*

これは私にとって完璧に機能します。 私は、これを簡単に解決する方法を探している人を支援するためにこれを書いています。

関連する問題