2017-10-17 79 views
0

我想在某些情况下,分配一定的价值,请帮助我,我现有的代码是我如果条件不工作的PHP

while($local_data = mysqli_fetch_assoc($query)){ 
    $category = explode('->',$local_data['breadcrumbs']); 
    echo $category[2]; echo "<br />"; 
    if(strtolower(trim($category[2])) =='outdoor'){ 
     $cat_ID = 5; 
    } 
    if(strtolower(trim($category[2]))=='furniture'){ 
     $cat_ID = 20; 
    } 

    if(strtolower(trim($category[2]))=='Bathroom'){ 
     $cat_ID = 6; 
    } 
    if(strtolower(trim($category[2]))=='Furniture'){ 
     $cat_ID = 15; 
    } 
    if(strtolower(trim($category[2]))=='Office'){ 
     $cat_ID = 62; 
    } 
    if(strtolower(trim($category[2]))=='Contract'){ 
     $cat_ID = 81; 
    } 
    if(strtolower(trim($category[2]))=='Decor'){ 
     $cat_ID = 90; 
    } 
    if(strtolower(trim($category[2]))=='Construction'){ 
     $cat_ID = 108; 
    } 
    if(strtolower(trim($category[2]))=='Tech'){ 
     $cat_ID = 133; 
    } 

    echo $cat_ID; echo "<br />"; 

} 现在还不是如果条件

内部发出我已编辑的代码,

+0

请打印$类别并检查是否使用了空格,请使用修剪。 –

+0

trim($ category [2])并使用strtolower($ category [2]) –

+0

我已经使用if(strtolower(trim($ category [2]))=='outdoor'){..但仍然不工作。 。我很震惊,那里的问题是 –

回答

1

而不是写很多if's你最好在数组内创建一个类别的“映射”。这样你只需要一个如果测试是否发现一个类别

<?php 
     $categories = [ 
      'outdoor'   => 5, 
      'furniture'  => 20, 
      'bathroom'  => 6, 
      'furniture'  => 15, 
      'office'   => 62, 
      'contract'  => 81, 
      'decor'   => 90, 
      'construction' => 108, 
      'tech'   => 133, 
     ]; 

     while($local_data = mysqli_fetch_assoc($query)){ 
      $category = explode('->',$local_data['breadcrumbs']); 
      $category_id = isset($categories[trim(strtolower($category[2]))]) ? $categories[trim(strtolower($category[2]))] : null; 
      echo 'Category ID = '. ($category_id ?: 'Not found'); 
     } 
+0

非常感谢您的先生 –

0

你需要把状态像下面

if(strtolower(trim($category[2])) =='outdoor'){ 
    $cat_ID = 5; 
    exit(); 
} 
+0

我用过这个,但是我不知道为什么它不工作... :( –

+0

@DarkBee请检查一下,我现在已经加了完整的代码,可能是下一行的问题 –

+1

如果你将大写字母放在等式的右半部分,并在左边部分使用“strtolower”,那么它将无法工作... – DarkBee