2017-01-28 8 views
0

これは私に問題を与えているとは思えませんが、ここにあります。クエリとコードの例は次のとおりです。ポストグル前の行からのエコーキー値PHP whileループ

$sql = "SELECT 
     o.order_id, o.order_number, o.broker_id, o.agent_id 
     FROM orders o"; 

$sql_res = safe_query($sql); 

/* I want to echo broker_id and angent_id only once here, 
    before the while loop, because the values are all the same */ 

while ($row = pg_fetch_array($sql_res)){ 

    echo $order_number; 

} 

ブローカとエージェントのID番号は、すべての行で同じと仮定します。私はループのたびにそれらをエコーし​​たくありません。ループの前に一度エコーしたいだけです。それらは同じなので、どの行がエコーされても問題ありません。

+0

私が質問を理解したら、おそらくフロントに 'DISTINCT'を追加するか、最後に' LIMIT 1'を使用することができます。(postgresqlの構文がmysqlのものと同じかどうかわかりませんが、同様の構文になります)*。このようにすると、ループは1行しか生成しません。 – Rasclatt

+0

私は、スケルトン版のクエリを提供しました。基本的には、私はクエリを変更することはできません。私の必要性は、ループの前にブローカーとエージェントIDをエコーすることです。 – Roberto

答えて

1

私は終わりの手段のために別の方法を考え出しました。それはうまくいく。

$sql = "SELECT 
    o.order_id, o.order_number, o.broker_id, o.agent_id 
    FROM orders o"; 

$sql_res = safe_query($sql); 

$count = 0;  

while ($row = pg_fetch_array($sql_res)){ 

if ($count == 0) { 

    echo $broker_id; 
    echo $agent_id; 

} 

echo $order_number; 

$count += 1; 

} 

私は、whileループ内でブローカーとエージェントIDをエコーてる実感が、それは通じ初回のみのエコーだ、と私は一番上にそれらを表示することができます。そして、すべてのユニークな順序がエコーされます。視覚的には、エンドユーザーにとって必要なものを達成しました。

関連する問題