0

次の問題があります。csv ファイルからデータをインポートする関数を作成しようとしています。このファイルの価格列に「<>」などの記号がある場合、価格が米ドルであり、換算する必要があることを意味します。この変数が数字で表されていることを理解しています。どのように文字列に変換できますか? または、ステートメントがまったく機能しないのはなぜですか?いつものようにソースコードです。

$str='<>';
    if( $variant['price'] ==$variant['price'].$str)
    {
    $sql = mysql_query("SELECT rate_to FROM s_currencies WHERE id=1 LIMIT 0, 30 ");
  $course= mysql_fetch_row($sql);
//$rate=$course[0];
  $variant_price = $item['price']*$course[0];
  $variant['price']=$variant_price;
        }

助けてください!

4

3 に答える 3

3

あなたが投稿したコードはif条件に入りません。コードで確認してください。

For eg. if $variant['price'] = '1';

if ('1' == '1<>')
{
}

上記の条件はif文に入りません。

于 2013-07-30T12:52:24.700 に答える
1
    $str='<>';
   if( stristr($variant['price'],$str){
        $sql  ="SELECT rate_to FROM s_currencies WHERE id=1 LIMIT 0, 30 ";
         $qry = mysql_query($sql);
         if ($qry && mysql_num_rows($qry)>0){
            $variant['price'] = (str_replace($str,'',$variant['price'])*mysql_result($qry,0,0));
        } else {
            echo 'error while converting:' . mysql_error();
        }
   } 
于 2013-07-30T12:52:21.860 に答える
1

現在の IF ステートメントを使用する代わりに、その文字列が存在するかどうかを確認する必要があります。strposはあなたに必要なものを与えます

if(strpos($variant['price'],$str) !== false)  // <> is present
{
    // run your sql code
} 

また、非推奨になっている mysql_* 関数から離れることをお勧めします。バインドされたパラメーターを使用して、PDO または mysqli クエリを調べます。

于 2013-07-30T12:49:50.210 に答える