2016-12-10 12 views
-1

私がしようとしているのは次のとおりです。 私はStationsというテーブルがあり、それには100個のカラムがあります。私は駅からすべてのレコードを選択し、1レコードをランダムに選択し、ランダムレコードをエコーし​​ます。ここでPHPを使用したmysqlクエリのエコー

は、私がこれまで持っているものです:

<?PHP 

$connect = mysql_connect("***", "****", "****") or die("Connection Failed"); 
mysql_select_db("***"); 
$query = mysql_query("SELECT * FROM Stations ORDER BY RAND() LIMIT 1"); 

WHILE($rows = mysql_fetch_array($query)): 

$Station = $rows['Station1'];///seems it will only show Station1 Column I have Station1 to Station100 was not sure how to add rest of Stations 

endwhile; 
?> 
+0

今、あなたの質問は何ですか? PDOに移動し、** mysql_ *を使用して停止します。廃止され、安全ではありません!** –

答えて

1

あなただけの1行に結果セットを制限しているので、あなたはwhile()ループを必要としません。ただ、結果セットから行をフェッチし、このように、後でそれを使用する:

$rows = mysql_fetch_array($query); 

今すぐあなたの質問、

に来る...それが唯一のSTATION1列が表示されます私はStation100にSTATION1を持っていましたすべての百列の値を表示するにはステーション

の残りの部分を追加する方法がわからない、それは

、このような forループを使用することをお勧めします

更新:あなたのコメントから

...私はそれがランダムにすべて100列のうちの1つの値を選択し、その値をエコーする必要がありますしてください

後結果セットから行を取得するには、array_rand()関数を使用して配列からランダムなキーを取得し、そのキーを使用して列の値を表示します(

)。
$randKey = array_rand($rows); 
echo $rows[$randKey]; 

追記:mysql_*機能を使用しないでください、彼らは、PHP 5.5で廃止されており、PHP 7.0で完全に削除されます。代わりにmysqliまたはPDOの拡張子を使用してください。また、why shouldn't I use mysql_* functions in PHP?を読んでください。

+0

Everyonesのおかげでありがとう、Rajdeep私は上記のコードを使用して、それはすべての私の列のデータを示しています。私が必要とするのは、すべての列に名前が1行あります。私はそれがランダムにすべて100列のうちの1つの値を選択して、私は私の答えを更新しました – user3015877

+0

user3015877 @その値をしてくださいエコーする必要があり、私の答えの**更新**セクションを参照してください。 –

+0

Rajdeep、助けてくれてありがとう、そのトリックをした、非常に感謝します。 – user3015877

0

mysql_query - この拡張機能はPHP 5.5.0では廃止され、PHP 7.0.0では削除されました。

今後は困難に遭遇する可能性があるため、可能な限り避けてください。

$Station = $rows['Station1'];///seems it will only show Station1 Column I have Station1 to Station100 was not sure how to add rest of Stations 

私はちょうどあなたがこのようになる理由を追加したいと思います。

$rows['Station1'];を常に選択しています。つまり、データベースから列Station1のみを選択しています。他の列を取得するには、別のインデックスが必要です。たとえば、2番目の列を取得するには、$rows['Station2'];と記述する必要があります。手作業で書かずにすべての列を取得する方法は、Rajdeep Paulによって既に提供されています。

関連する問題