2016-10-01 2 views
0

Итак, у меня есть цикл for, который отображает книги и связанную с ними информацию о продажах ... У меня есть отображение правильно. У меня есть цикл for, который проходит через массив и отображает Информация. То, что я хотел бы сделать, это заставить цикл for отображать только информацию о книге в твердом переплете или книге в мягкой обложке, если их значения больше, чем 0; Я пытался ставить для цикла в эхо заявление, но это дает мне ошибку .. У меня есть ощущение, что это связано с тем, как я concatinating в values..anyway вот мой циклКак использовать оператор if внутри echo php

function displayData($array){ 

    // create a form 

echo ' <form action="order_summary.php" method="post">'; 

// for loop to go through data 

    for($row = 0; $row < sizeof($array);$row++){ 

echo '<div class="book-details"><img src="images/' . 
    $array[$row]['isbn'].'.jpg" alt="'.$array[$row]['title'] .'" >'. 
    '<br/>'.$array[$row]['title'].'<br/>by '.$array[$row]['author']. 
    '<br/><input type="radio" name="orders['.$array[$row]['title']. 
    ']" value="hardcover" >Hardcover: $'.$array[$row]['hardcover']. 
    '<br/><input type="radio" name="orders['.$array[$row]['title']. 
    ']" value="softcover" >Softcover: $'.$array[$row]['softcover']. 
    '<br/><input type="radio" name="orders['.$array[$row]['title']. 
    ']" value="e-book" >E-Book: $'.$array[$row]['e-book']."</div>"; 

}; 

echo '<div class = "cart"><input type="submit" value="Add Selected Items to Cart"></div>'; 

echo '</form>'; 

    }// end of function 

Я хотел бы включить что-то вроде этого

if (!$array[$row]['hc-quantity']== 0) { 
// display hardcover price 
} 
else { 
    go to the next book and repeat check for softcover 
}; 

пожалуйста, вы можете помочь мне решить эту проблему ...

+0

А что это проблема? Вы хотите добавить свой код 'if' в свой код? –

+0

У меня есть, но когда я это делаю, это дает мне ошибку –

+0

Кстати, 'if (! $ Array [$ row] ['hc-quantity'] == 0) {...' должно быть 'if ($ array [$ row] ['hc-quantity']! = 0) {... ' –

ответ

1

вы могли бы улучшить свой код, используя синтаксис foreach. Предполагаемое вами условие if близко, но оператор ! фактически действует на элемент массива, а не на уравнение.

Я также предложил бы закрыть тег PHP для генерации HTML, вместо использования echo. Затем используйте <?= ... ?> для ввода значений PHP внутри HTML. А для условий if вы можете вставить несколько блоков <?php ... ?>.

Вот адаптированный код (for петля только):

<?php 
// ... other code ... 

foreach ($array as $item){ 
?> 
<div class="book-details"> 
    <img src="images/<?=$item['isbn']?>.jpg" alt="<?=$item['title']?>"><br> 
    <?=$item['title']?><br> 
    by <?=$item['author']?><br> 
<?php 
if ($item['hc-quantity'] > 0) { 
?> 
    <input type="radio" name="orders[<?=$item['title']?>]" value="hardcover"> 
     Hardcover: $<?=$item['hardcover']?><br> 
<?php 
} 
if ($item['sc-quantity'] > 0) { 
?> 
    <input type="radio" name="orders[<?=$item['title']?>]" value="softcover"> 
     Softcover: $<?=$item['softcover']?><br> 
<?php 
} 
?> 
    <input type="radio" name="orders[<?=$item['title']?>]" value="e-book"> 
     E-Book: $<?=$item['e-book']?> 
</div> 
<?php 
} 

// ... more code 
// 
?> 
+0

работал для меня .. спасибо –

+0

Добро пожаловать ;-) – trincot

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