Как я могу очистить две разные вещи одновременно и сохранить их в базе данных MySQL - PullRequest
0 голосов
/ 01 июля 2018

Здесь я пытаюсь получить дату и название события. Например, 08/08/2018 происходит событие FA Community Shield, поэтому я хочу получить имя события "FA Community Shield" и дату одновременно и сохранить его в базе данных по адресу id! date! event_name Я могу получить дату и сохранить ее в базе данных, однако не могу сохранить ее вместе. This is the database Sturtuce

$curl = curl_init();

$url = "https://www.brent.gov.uk/events-and-whats-on-calendar/?eventCat=Wembley+Stadium+events";

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$result_site = curl_exec($curl);
libxml_use_internal_errors(true);

$domd=@DOMDocument::loadHTML($result_site);
      // New Version // $domd = new DOMDocument();
    // New Version   // $domd->loadHTML( $result );

$dateElements=$domd->getElementsByTagName("article")->item(0)->getElementsByTagName("h3");
foreach($dateElements as $ele){
    $data = (date("Y-m-d",strtotime($ele->textContent)));


// echo "<br>".$data;
    $sql_1 = "SELECT * FROM event_table WHERE date = '$data'";
    $result_site = $conn->query($sql_1);
//var_dump($result_site);
if ($result_site->num_rows > 0) {

    // output data of each row
    while($row = $result_site->fetch_assoc()) {
        //var_dump($row);
    }
}  
else {
            $results_1 = mysqli_query($conn, "INSERT INTO event_table (id, date, event_name) VALUES ('', '$data', '')");
    }
}

$valueElements=$domd->getElementsByTagName("article")->item(0)->getElementsByTagName("a");
foreach($valueElements as $lel){
    $name = $lel->textContent;


echo "<br>".$name;
    $sql_2 = "SELECT * FROM event_table WHERE event_name = '$name'";
    $result_site = $conn->query($sql_2);
//var_dump($result_site);
if ($result_site->num_rows > 0) {

    // output data of each row
    while($row = $result_site->fetch_assoc()) {
        //var_dump($row);
    }
}  
else {
            $results_1 = mysqli_query($conn, "INSERT INTO event_table (id, date, event_name) VALUES ('', '', '$name')");
    }
}
   $conn->close();
?>

1 Ответ

0 голосов
/ 02 июля 2018

Измените ваши 2 foreach() циклов на одну for() функцию, подобную этой:

$dateElements = $domd->getElementsByTagName('article')->item(0)->getElementsByTagName('h3');
$valueElements = $domd->getElementsByTagName('article')->item(0)->getElementsByTagName('a');
$count = $dateElements->length;
for($i = 0; $i < $count; $i++) {
    $dataNode = $dateElements->item($i);
    $nameNode = $valueElements->item($i);

    $data = date('Y-m-d', strtotime($dataNode->textContent));
    $name = $nameNode->textContent;

    //do what you want with $data and $name

}
...