У меня есть отдельные таблицы, полные данных, и мне нужны одни и те же данные из каждой таблицы. Например, первая таблица, которую я выбираю, имеет значение 3623, а вторая таблица имеет значение 3852.
Я пытаюсь получить оба эти значения в массив, который затем будет нанесен на график позже по линии. Код, который я использую, можно увидеть ниже, проблема в том, что значение из первого цикла foreach добавляется, а не второе. поэтому я заканчиваю тем, что только 3623, а не 3852, и это проблема.
$datay1 = array(); $yes = "not-set"; $sql = "SELECT * FROM `0530-0605` WHERE SearchTerm = :yes"; $stmt = $conn->prepare($sql); $stmt->bindParam(":yes", $yes); $stmt->execute(); foreach($stmt as $row) { $datay1[] = $row['Clicks']; } $sql = "SELECT * FROM `0606-0612` WHERE SearchTerm = :yes"; $stmt = $conn->prepare($sql); $stmt->bindParam(":yes", $yes); $stmt->execute(); foreach($stmt as $row) { $datay1[] = $row['Clicks']; } print_r($datay1);
Вы можете использовать UNION ALL
для объединения результата двух запросов как
$sql = "SELECT * FROM `0530-0605` WHERE SearchTerm = :yes UNION ALL SELECT * FROM `0606-0612` WHERE SearchTerm = :yes1"; $stmt = $conn->prepare($sql); $stmt->bindParam(":yes", $yes); $stmt->bindParam(":yes1", $yes); $stmt->execute(); foreach($stmt as $row) { $datay1[] = $row['Clicks']; }