0

PHPで生成されたサイトマップがあり、実際には以下のようにテーブル小売業者のみを呼び出しています:

$query = "select * from retailers WHERE status='active' ORDER BY added DESC";

次のように構築します。

while ($row = mysql_fetch_array($result))
{  
    $i_url = SITE_URL.'loja/'.$row['slug_title'];
    $year = substr($row['added'],0,4);
    $month  = substr($row['added'],5,2);
    $day  = substr($row['added'],8,2);
    $i_date = ''.$year.'-'.$month.'-'.$day.'';

    // you can assign whatever changefreq and priority you like
    // changefreg - optional
    // priority - optional
    echo  
    '
    <url>
    <loc>'.$i_url.'</loc>
    <lastmod>'.$i_date.'</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    </url>
    ';
}

問題は、小売業者だけが来ていることです。さらに 3 つのテーブルを取得する必要がありますが、その中にさらに多くのものを呼び出して構築する方法が思い浮かびません。おそらく PHP の状態ですか?

お時間をいただきありがとうございました!

4

2 に答える 2

0

必要なクエリまたはサブクエリを処理する関数を作成することをお勧めします

メインコードのように

while ($row = mysql_fetch_array($result))
{  
    $i_url = SITE_URL.'loja/'.$row['slug_title'];
    $year = substr($row['added'],0,4);
    $month  = substr($row['added'],5,2);
    $day  = substr($row['added'],8,2);
    $i_date = ''.$year.'-'.$month.'-'.$day.'';

    $data = subquery('what i need here', 'another param');

    echo  
    '
    <url>
    <loc>'.$i_url.'</loc>
    <lastmod>'.$i_date.'</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    </url>
    ';
}

function subquery($firstparam, $secondparam)
{
  $myquery = "SELECT * FROM ".$firstparam;
  //more code

  $result = 'my query result';

  return $result;
}

これにより、メインクエリに基づいてサブクエリを呼び出すことができ、より多くの関数を作成したり、1 つの関数でさまざまなクエリを実行できるさまざまなタイプの関数を 1 つだけ作成したりできます。

于 2013-10-10T18:21:11.627 に答える