0

私は次のようにプレゼンテーションを行うphp配列を持っています:-

<?php 
  $ads = array(); 
  $ads [] = array( 
  'name' => 'Apple', 
  'duration' => '3', 
  'price' => "$5"
  ); 

  $ads [] = array( 
  'name' => 'Orange', 
  'duration' => '2', 
  'price' => "$10"
  ); 

  $ads [] = array( 
  'name' => 'Banana', 
  'duration' => '5', 
  'price' => "$6"
  ); 

次に、静的データをデータベースの動的データに置き換えたいと思います。-

$sql = "SELECT * from tb_fruit order by fruit_id ASC";
$result = mysql_query($sql_approve, $conn_fruit);

while($record = mysql_fetch_array($result))
{
$fruit_id = $record['fruit_id'];
$fruit_name = $record['fruit_name '];
$fruit_price= $record['fruit_price'];
$fruit_duration= $record_approve['fruit_duration']; 
}

実際、2つのプレゼンテーションをどのように組み合わせるのですか?ありがとう!

4

4 に答える 4

1

結果に対する反復を変更できます(必要な属性のみがクエリでフェッチされる場合)

$fruit = array();    
while($record = mysql_fetch_array($result))
    {
           $fruit[] = $record;
    }

array_mergeを使用できるかもしれません

$result = array();

$result = array_merge($ads,$fruit);
于 2012-04-20T04:57:21.430 に答える
1

最初の例と同様の構造を取得する場合は、2番目の例を変更して新しい配列を作成し、それを既存の$ads配列に追加できます。

$sql = "SELECT * from tb_fruit order by fruit_id ASC";
$result = mysql_query($sql_approve, $conn_fruit);

$ads = array();
while($record = mysql_fetch_array($result))
{
    $ads[] = array(
              'name' => $record['fruit_name'],
              'price' => $record['fruit_price'],
              'duration' => $record['fruit_duration']);
}
于 2012-04-20T04:58:07.483 に答える
0

もしも

  1. 初期配列は単なる例ではなく、dbデータで上書きする可能性のあるデフォルトデータ、および

  2. 果物の名前は一意です(ある種の主キー)

次に、メイン配列の配列キーをフルーツ名の配列キーに設定する必要があります。これにより、dbの値が異なる場合、dbは自動的に上書きされますが、それ以外の場合はそのままになります。そのようです:

  $ads ['Apple'] = array( 
  'duration' => '3', 
  'price' => "$5"
  ); 

  $ads ['Orange'] = array( 
  'duration' => '2', 
  'price' => "$10"
  ); 

  $ads ['Banana'] = array( 
  'duration' => '5', 
  'price' => "$6"
  ); 


$sql = "SELECT * from tb_fruit order by fruit_id ASC";
$result = mysql_query($sql_approve, $conn_fruit);

$ads = array();
while($record = mysql_fetch_array($result))
{
    $ads[$record['fruit_name']]['price']    = $record['fruit_price'];
    $ads[$record['fruit_name']]['duration'] = $record['fruit_duration'];
}

これで、「Apple」がデータベースにある場合、価格と期間は上書きされますが、それ以外の場合は、クエリの前に設定した場所にとどまります。

さらに一歩進んで、クエリによって返される価格と期間の両方で空の値(Null、 ""、0)をチェックし、空でない場合にのみ値を設定することができます。ビジネスロジックの決定。

于 2012-04-20T05:14:29.547 に答える
0

「ads」配列にデータベースからの情報を入力しますか? mysql_fetch_array がすでに完全に適切な連想配列を返しているのを見ると、かなり直感に反するように見えますが、次のようになります。

$sql = "SELECT * from tb_fruit order by fruit_id ASC";
$result = mysql_query($sql_approve, $conn_fruit);
$ads = array();

while($record = mysql_fetch_array($result))
{
    $ads[] = array (
                       'name' => $record['fruit_name'],
                       'price' => $record['fruit_price'],
                       'duration' => $record['fruit_duration']
                   );
}
于 2012-04-20T05:00:35.390 に答える