2014-11-24 4 views
-1

Я хочу проверить равенство «$ v» и «$ formats2». Но это дает и сообщение об ошибкеКак сравнить равенство двух строк в php?

Предупреждение: зЬгстр() ожидает параметр 2 будет строка, массив приведен в C: \ XAMPP \ HTDOCS \ playit2 \ product.php на линии 312

Вот мой HTML-код.

$jsqla = mysql_query("select * from products where id='$product_id'") or die(mysql_error()); 

$jfeta = mysql_fetch_assoc($jsqla); 

$formats = explode(";", $jfeta['formats']); 

$jsqla2 = mysql_query("select formats from request_list where id='$product_id'") or die(mysql_error()); 

$jfeta2 = mysql_fetch_assoc($jsqla2); 

$formats2 = explode(";", $jfeta2['formats']); 

<div class=""> 
    <?php if($formats2 != "") { ?> 
     <?php foreach($formats as $v){ ?> 
      <label style="line-height: 1.25em;display: block;width: 100px;margin-right: 10px;float: left;">       
       <div id="format-id_<?php echo $v?>" <?php if (strcmp($v, $formats2) === 0) { ?> style="border: 1px solid;border-radius: 9px;text-align: center;padding-top: 10px;padding-bottom:10px;padding-left: 3px;padding-right: 3px;border-color: #cccccc;font-family: 'SSemibold'; font-size: 13px; color: #44b7da; background-color: #cccccc;" <?php } else { ?> style="border: 1px solid;border-radius: 9px;text-align: center;padding-top: 10px;padding-bottom:10px;padding-left: 3px;padding-right: 3px;border-color: #cccccc;font-family: 'SSemibold'; font-size: 13px; color: #44b7da;" <?php } ?>>         
        <input class="format_cheks" type="radio" value="<?php echo $v; ?>" name="abc" style="visibility:hidden;" id="<?php echo $v ?>" onClick="changeColour(this)"/> 
         <span style="margin:-17px auto auto 0px;display:block;"><?php echo $v; ?></span>        
       </div>      
      </label> 
     <?php } ?> 
    <?php } else { ?> 
     <?php foreach($formats as $v){ ?> 
      <label style="line-height: 1.25em;display: block;width: 100px;margin-right: 10px;float: left;">       
       <div id="format-id_<?php echo $v?>" style="border: 1px solid;border-radius: 9px;text-align: center;padding-top: 10px;padding-bottom:10px;padding-left: 3px;padding-right: 3px;border-color: #cccccc;font-family: 'SSemibold'; font-size: 13px; color: #44b7da;">         
        <input class="format_cheks" type="radio" value="<?php echo $v; ?>" name="abc" style="visibility:hidden;" id="<?php echo $v ?>" onClick="changeColour(this)"/> 
         <span style="margin:-17px auto auto 0px;display:block;"><?php echo $v; ?></span>        
       </div>      
      </label> 
     <?php } ?> 
    <?php } ?> 
</div> 
+3

Что это вы не понимаете об ошибке? Это довольно прямолинейно. – Daan

+0

Почему люди поднимают эти вопросы .. – Alternatex

+1

Было бы намного легче помочь вам, если бы вы описали то, что вы пытаетесь сделать. Основываясь на том, что я вижу, это не имеет большого смысла. – EternalHour

ответ

2
You also use 
if($val1 === $val2){ 
    //true part . this === strictly check 
} 
+0

Большое спасибо. Работает. – Sudda

+0

вы приветствуете ..... @sudda – Affan

3

Вы опечатались implode в explode. Последний берет строку и создает массив. Скорее всего, вы захотите наоборот. UPD: О, у вас уже есть строка. Затем просто используйте его как есть:

- $formats2 = explode(";", $jfeta2['formats']); 
+ $formats2 = $jfeta2['formats']; 

Надеюсь, это поможет.

+0

Я так не думаю, потому что это уже будет строка. – EternalHour

+0

@EternalHour О, да, спасибо. Обновлено. – mudasobwa

1

Вы должны передать key, как после explode, он будет содержать массив.

strcmp($v, $formats2[key]) 

explode()

Смежные вопросы