@sergey1989

Как добавить данные в MySQL из двух циклов?

Доброго времени суток. Написал парсер, но при добавление данных в БД возникла проблема в том, что сначала записываются данные из первого цикла, а потом из второго в результате получается сдвиг по ID. Как можно данные из двух циклов записать в один прием?

function mysql_insert($table, $field, $insert) {
	$send_data = mysql_query("INSERT INTO $table ($field) VALUES ('$insert')");
	// return $send_data;
	if ($send_data) {
		echo "OK";
	} else {
		echo "NOT";
	}
}


foreach ($domResultmore as $valuesec) {
	foreach ($valuesec->find('.entry-header h1') as $value_title) {

		echo $p++;
		echo $value_title->innertext . '<br>';
		mysql_insert(wp_posts, post_title, $value_title->innertext);

	}
	foreach ($valuesec->find('.entry-meta') as $meta) {
		echo $s++;
		echo $meta->innertext . '<br>';

		mysql_insert(wp_posts, post_content, $meta->innertext);
	}
	foreach ($valuesec->find('.entry-content a img') as $valuemeta) {
		$src = $valuemeta->src;
		$arr = explode("/", $src);
		$name = end($arr);
		file_put_contents("data/$name", file_get_contents($valuemeta->src));

		
	
	}
}
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 1
@entermix
А можно уточнить, что значит сдвиг по ID?

UPD: В циклах создаем новый массив, куда собираем результаты, после чего проходимся по нему и добавляем в БД, или же добавляем в первом цикле, а в остальных обновляем уже созданные строки (но это было бы глупо)

$i = 0;
$results = [];

foreach ($domResultmore as $valuesec) {
    
    foreach ($valuesec->find('.entry-header h1') as $value_title) {
        $results[$i]['post_title'] = $value_title->innertext;
    }
    foreach ($valuesec->find('.entry-meta') as $meta) {
        $results[$i]['post_content'] = $meta->innertext;
    }
    foreach ($valuesec->find('.entry-content a img') as $valuemeta) {
        $name = end(explode("/", $valuemeta->src));

        $results[$i]['src']['name'] = $meta->innertext;
        $results[$i]['src']['data'] = file_get_contents($valuemeta->src);
    }
}

foreach ($results as $result) {
    echo '<pre>';
    print_r($result);
    echo '</pre>';
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы