2016-04-16 6 views
0

ウェブページのPHPセクション内にあるfor loopに少し問題があり、入れ子のif文内に含まれています。私はなぜこのfor loopがエラーを投げ返すのか不明です。ページめくり時のPHP forループエラー

問題のfor loopは以下のとおりです。私は取得しています

for($i = $page_number-4; $i < $page_number; $i++) 
      { 
       if($i > 0){ 
        $pagination_controls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; '; 
       } 
      } 

、エラーが、私はこのエラーが発生していると、なぜのためのループが問題である理由としてわからないよ

(!) Parse error: syntax error, unexpected 'for' (T_FOR) in /home/40082562/public_html/Courses/SearchResultsPage.php on line 54

です。

ありがとうございます、ありがとうございます。

私のコードは以下の通りです。

<meta charset="UTF-8"> 
<?php 
    $mysqli = new mysqli('localhost', 'user', 'password','db'); 
    if ($mysqli->connect_errno) 
    { 
     die('Database connection failed'); 
    } 
    //$m->set_charset('utf8'); 
    $search_course = " 
    SELECT title, summary, id 
    FROM course 
    WHERE title LIKE '%".$_POST['searchBar']."%'"; 
    $result = $mysqli->query($search_course) or die($mysqli->error); 
    $search_result = $result->fetch_assoc(); 
    $row = mysql_fetch_row($result); 
    //total rows for search 
    $rows = $row[0]; 
    //number of results per page 
    $rows_per_page = 10; 
    //shows last page 
    $last_page = ceil($rows/$rows_per_page); 
    if($last_page < 1){ 
     $last_page = 1; 
    } 
    $page_number = 1; 
    if(isset($_GET['pn'])){ 
     $page_number = preg_replace('#[^0-9]#', '', $_GET['pn']); 
    } 
    //makes sure page number is between limits of $page_number 
    if($page_number < 1){ 
     $page_number = 1; 
    } else if($page_number > $last_page){ 
     $page_number = $last_page; 
    } 

    // sets the value of items to view 
    $limit = 'LIMIT ' .($page_number -1) * $rows_per_page .',' .$rows_per_page; 

    // query again only grabbing the set number of rows depending on page number 
    $search_course = " 
    SELECT title, summary, id 
    FROM course 
    WHERE title LIKE '%".$_POST['searchBar']."%' 
    ORDER BY title DESC $limit"; 
    $result = $mysqli->query($search_course) or die($mysqli->error); 
    $search_result = $result->fetch_assoc(); 
    //displays to the user the total number of results and the page numbers 
    $total_number_of_results = "Search Results (<b>$rows</b>)"; 
    $page_user_is_on = "Page <b>$page_number</b> of <b>$last_page</b>"; 
    //set up pagination 
    $pagination_controls = ''; 
    if($last_page != 1){ 
     if($page_number > 1){ 
      $previous = $page_number - 1; 
      $pagination_controls .='<a href="'.$_SERVER['PHP_SELF'].'?pn='.$previous.'">previous</a> &nbsp; &nbsp; ' 
      for($i = $page_number-4; $i < $page_number; $i++) 
      { 
       if($i > 0){ 
        $pagination_controls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; '; 
       } 
      } 
     } 
     $pagination_controls.=''.$page_number.' &nbsm; '; 
     //clickable links to the left 
     for($i = $page_number+1; $i <= $last_page; $i++) 
      { 
       $pagination_controls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; '; 
       if($i >= $page_number+4){ 
        break; 
       } 
      } 
      if($page_number != $last){ 
       $next = $page_number + 1; 
       $pagination_controls.='&nbsp; &nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Next</a>'; 
      } 
    } 
    $list = ''; 
    while($row = mysql_fetch_array($search_result, MYSQL_ASSOC)){ 
     $title = $row['title']; 
     $id = $row['id']; 
     $list.='<p><a href="SearchResultsPage.php?title='.$title.'">'.$summary.' </p>' 
    } 
    mysqli_close($mysqli); 
?> 
<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <link rel='stylesheet' href='courses.css'> 
</head> 
<body> 
    <div class="header"> 
     <h1>Search Results for - <?= $_POST['searchBar'] ?></h1> 
    </div> 
    <div> 
     <p><?php echo $list; ?></p> 
     <div id="pagnation_controls"><?php echo $pagnation_controls; ?> 
     </div> 
    </div> 
</body> 
</html> 

答えて

2

前の行の末尾に;セミコロンがありません。

これはエラーが発生した理由です。 PHPパーサーは、行を終了し、他の文字列や変数を追加しますが、同じ行内でforループを開始しないと予想します。

+0

素晴らしいです、ありがとうございました! – bdg