我有一个运行并收集一些数据的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
页面,但在要求将数据插入数据库时不起作用?