-3

2つの条件でifesleステートメントを作成することは可能ですか?、

私はこのコードを持っています...

 if ($current_page == 1)

しかし、私はそれを書くことができたので、それはこのようなものでした

 if ($total_pages ==1 $current_page < $total_pages)

これを自分でいくつかの方法で書こうとしましたが、うまく機能しないようです。

任意のアイデアをいただければ幸いです、

コード

 echo "$current_page"; echo "$total_pages";

     if ($current_page >= 1 && ($current_page < $total_pages)) { echo "next button should be here"; } else {echo "Nothing"; }

以下のリンクを参照してください。4ページ中の1ページ目で、何もないセクションに移動していることがわかります。ここに次のボタンが表示されるタイミング。

http://www.qrrw.net/k

PHPコード

 $pageNum = $_GET['page'];
  $engine = $_GET['engine'];
  $manid = $_GET['manid'];
  $mgid = $_GET['mgid'];
  $file = 'http://mywebsite.com/page.xml?apikey=****&vid=****&limit=10&mgid='. $mgid.'&engine='. $engine.'&manid='.$manid.'&page=' . $pageNum;

  if(!$xml = simplexml_load_file($file))
   exit('Failed to open '.$file);

  $total_pages = $xml->results->attributes()->totalPages;
  $current_page = $xml->results->attributes()->currentPage;
  $total_results = $xml->results->attributes()->totalResults;

  $count = 0;
  $max = 2;
  foreach($xml->year as $year){ 

  $count++;
  echo '<td class="manu">'. "<a href='exact.php?manid=".$manid."&engine=".$engine."&mgid=".$mgid."&year=".$year['name']."'>".$year['name']."</a>";'   </td>';

 if($count >= $max){

 $count = 0;

 echo '</tr><tr>';
 }
 }
 $pageNum = $current_page = $xml->results->attributes()->currentPage;

 if ($current_page == 1) { } else {
    echo "<a href='years.php?page=".($pageNum - 1)."&engine=".($engine)."&manid=".($manid)."&mgid=".($mgid)."'><img src='../images/previous.fw.png' width='130' height='92' /></a>";
    }

    echo "$current_page"; echo "$total_pages";

    if ($current_page >= 1 && ($current_page < $total_pages)) { 
    echo "next button should be here"; 
    } else {
    echo "Nothing";  
4

4 に答える 4

5

ここでどのロジックを実行しようとしているのか正確にはわかりませんが、次の2つの条件をテストできます。

 // if total pages are equal to 1 or 1 is less than total pages     
 if (($total_pages == 1) || (1 < $total_pages))

php論理演算子を参照してください。

現在のページが合計ページ数より少なく、現在のページが編集ごとに1より大きいことを比較したい場合は、次のようにすることができます。

if ($current_page > 1 && ($current_page < $total_pages))

または、total_pagesが1以上であることを確認したい場合は、次のようにします。

if ($total_pages >= 1)
于 2012-11-09T15:22:51.887 に答える
4

実際には、必要な数の比較演算子を論理演算で区切ることができます。

<?php 
    if(($value [Comparison Operator] $value) [Logical Operator] ($value [Comparison Operator] $value)){
      //do something
    }
?>

比較演算子

$a == $b     Equal
$a === $b  Identical
$a != $b     Not equal
$a <> $b     Not equal.
$a !== $b  Not identical
$a < $b      Less than
$a > $b      Greater than
$a <= $b     Less than or equal to
$a >= $b     Greater than or equal to

論理演算子

$a and $b  And 
$a or $b     Or
$a xor $b  Xor
! $a       Not
$a && $b   And 
$a || $b   Or
于 2012-11-09T15:27:29.383 に答える
2

ifステートメントが失敗する理由は、とが両方とも整数であることを期待しているためですが、そうで$current_page$total_pagesありません。

投稿した結果からわかるようにvar_dump、これらの変数には両方とも、暗黙的に整数に変換できないほど複雑なオブジェクトが含まれています。

ifステートメントの前に次のコードを追加してみてください。

$current_page = (int)$current_page[0];
$total_pages = (int)$total_pages[0];

この時点で、あなたの質問はあなたが最初に尋ねたものとは実際には何の関係もありません...

于 2012-11-09T16:49:50.227 に答える
1

両方の条件を満たしたい場合は、AND&&を使用します

if(($b > $a) && ($d > $f) 

それらのいずれかが一致する場合は、OR||を使用します。

if(($b > $a) || ($d > $f) 

完全なリファレンスについては、http://php.net/manual/en/language.operators.comparison.phpを参照してください。

于 2012-11-09T15:59:41.967 に答える