PHP循环包括

时间:2017-05-19 11:28:54

标签: php

我有一个运行并收集一些数据的php页面。这很好用,每次重新加载页面时都会收集新数据。

我正在尝试设置第二个包含第一页多次的php页面。这将节省我不得不重新加载第一页。

以下是将include放入for循环的一些代码。

<?php


$x=0;

while($x <= 2) {
    include('marker.php');
    echo $x;
    $x++;
} 

?>

运行此循环时,第一页marker.php仅被调用一次? marker.php页面成功运行并将值输出到页面。

也不输出$x变量。 $x变量仅显示我在没有包含的情况下运行循环。

以下是marker.php

的代码
include('dbconn2.php');

$date='2017-05-13';
$insert_date = mysqli_query($link, "INSERT INTO `marker_test` (`date`, `value`) VALUES ('$date', '1') ON DUPLICATE KEY UPDATE `date` = VALUES(`date`) ");

$select_date = mysqli_query($link, "SELECT * from `marker_test` WHERE `date`='$date' ");

$select_marker = mysqli_query($link, "SELECT * from `marker_test` WHERE `date`='$date' ");
while ($rowGetMarker = mysqli_fetch_array($select_marker)){
          $marker_test=$rowGetMarker['value'];
}

$select_location = mysqli_query($link, "SELECT * from `locations` WHERE `locationID`='$marker_test' ");
while ($rowGetLocation = mysqli_fetch_array($select_location)){
          $location=$rowGetLocation['location'];
           $url=$rowGetLocation['url'];
}

echo '<BR>'; 

$marker_update=$marker_test+1;

$update_value = mysqli_query($link, " UPDATE `marker_test` SET  `value` = '$marker_update' WHERE `date`= '$date' ");

                      include('curl.php');

                      $dom = new DOMDocument;

                      //Get date from scraped page.
                      $dom->loadHTML($output);
                      foreach ($dom->getElementsByTagName('h2') as $node) {
                          $date =substr($node->nodeValue,-10);
                          $year=substr($node->nodeValue,-4);
                          $month=substr($node->nodeValue,-7,2);
                          $day=substr($node->nodeValue,-10,2);
                          $date=$year.$month.$day;
                          $date=ltrim ($date);       
                          $date=rtrim ($date);
                      }

                      $check_location=mysqli_query($link,"SELECT COUNT(`location`) FROM `Events_08052017_test` WHERE `location`='$location' AND `date`='$date'");
                      $row = mysqli_fetch_row($check_location);
                      $check_value=$row[0];
                      if($check_value!=0){echo '<br>'; echo $location; echo ' already exists on '; echo $date;}
                      else{
                            $total=101;
                            $space=12;

                            $array_data=array();
                            $array_barcode=array();
                            $array_runner=array();
                            $array_time=array();
                            $array_gender=array();
                            $array_gender_pos=array();
                            $array_score=array();
                            $array_date=array();
                            $array_club=array();
                            $array_age=array();


                            $dom->loadHTML($output);
                                  foreach ($dom->getElementsByTagName('td') as $node) {
                                        if($node->nodeValue=='Unknown') {$array_data[]='Unknown';}
                                        else {
                                             foreach ($node->getElementsByTagName('a') as $node) {
                                                if ($node->getAttribute('target') === '_top') {
                                                   $array_data[ ] = substr($node->getAttribute( 'href' ),29);
                                                }
                                              }
                                          }
                                      $array_data[ ] = $node->nodeValue;
                                  }

                                  echo '<BR><BR><BR><BR><BR>';
                                  echo $location;
                                  echo '<BR><BR>';
                                  print_r($array_data);

                          for($i=1;$i<count($array_data);$i=$i+$space){
                          $array_barcode[]=$array_data[$i];
                          }

                          for($i=8;$i<count($array_data);$i=$i+$space){
                          $array_club[]=htmlspecialchars($array_data[$i], ENT_QUOTES, 'UTF-8');
                          }

                          for($i=2;$i<count($array_data);$i=$i+$space){
                                $array_runner[]=htmlspecialchars($array_data[$i], ENT_QUOTES, 'UTF-8');
                          }
                          $array_runner=array_splice($array_runner,0,-3);

                          for($i=3;$i<count($array_data);$i=$i+$space){
                          $array_time[]=$array_data[$i];
                          }

                          for($i=4;$i<count($array_data);$i=$i+$space){
                          $array_age[]=$array_data[$i];
                          }

                           for($i=6;$i<count($array_data);$i=$i+$space){
                                $array_gender[]=$array_data[$i];
                                }

                          for($i=7;$i<count($array_data);$i=$i+$space){
                          $array_gender_pos[]=$array_data[$i];
                          }

                           for($i=0;$i<count($array_runner);$i++){
                                   if($array_gender[$i]=="M"){
                                       $score=$total - $array_gender_pos[$i];
                                       if($score<1){$score=1;}
                                       $array_score[ ] = $score;
                                    }

                                  if($array_gender[$i]=="F"){
                                      $score=$total - $array_gender_pos[$i];
                                      if($score<1){$score=1;}
                                      $array_score[ ] = $score;
                                  }
                                  if($array_gender[$i]==""){
                                      $score=' ';
                                      $array_score[ ] = $score;
                                  }
                            }

  // prepare and bind
                            $stmt = $link->prepare("INSERT INTO `Events_08052017_test` (`eventID`,`location`,`date`,`barcode`,`runner`,`time`,`Run Points`,`Volunteer Points`,`Gender`, `Gender pos`,`club`,`age_cat`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)");
                            $stmt->bind_param("isssssiisiss", $eventID,$location,$date,$barcode,$runner,$time,$runpoints,$volpoints,$gender,$genderpos,$club,$age);

                            // set parameters and execute
                            for( $x=0; $x < count($array_runner); $x++ ){
                                $eventID=null;
                                $barcode=$array_barcode[$x];
                                $runner=$array_runner[$x];
                                $time=$array_time[$x];
                                $runpoints=$array_score[$x];
                                $volpoints=' ';
                                $gender=$array_gender[$x];
                                $genderpos=$array_gender_pos[$x];
                                $club=$array_club[$x];
                                $age=$array_age[$x];

$stmt->execute();
}

}

我已经测试了marker.php而没有将值插入$stmt数据库表的数据库Events_08052017_test部分。

为什么控制页面在数据未输入数据库时​​多次成功运行marker.php页面,但在要求将数据插入数据库时​​不起作用?

0 个答案:

没有答案