@Anna_Moj

Как написать запрос mysqli php?

Здравствуйте. Совсем уже голову сломала.
как написать запрос mysqli php
есть таблица
строка a1 столбцы (id, relid), relid в таком формате num1,num2,num3
строка a2 столбцы (newid, relidnumber) relidnumber всего 1 значение, которое соотвествует одному из relid
Нужно пройтись по всем записям a1, в каждой взять массив relid, пройтись по всем значениям, сопоставить c relidnumber в a2, собрать обратно с новыми данными и вставить обратно в relid.
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
gogowq
@gogowq
Ozh domosh acha ozh
<?php
// Подключение к базе данных
$mysqli = new mysqli("хост", "пользователь", "пароль", "имя_базы_данных");

// Проверка соединения на ошибки
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: " . $mysqli->connect_error;
    exit;
}

// Получение всех записей из таблицы a1
$query = "SELECT id, relid FROM a1";
$result = $mysqli->query($query);

if ($result) {
    // Проходимся по каждой записи в a1
    while ($row = $result->fetch_assoc()) {
        $id = $row['id'];
        $relid = $row['relid'];

        // Разбиваем строку relid на массив значений
        $relidArray = explode(",", $relid);

        // Создаем пустой массив для новых значений relid
        $newRelidArray = array();

        // Проходимся по каждому значению relid
        foreach ($relidArray as $value) {
            // Ищем соответствующую запись в таблице a2 по relidnumber
            $query = "SELECT relidnumber FROM a2 WHERE relidnumber = '$value'";
            $a2Result = $mysqli->query($query);

            // Если найдена соответствующая запись, добавляем значение в новый массив
            if ($a2Result && $a2Result->num_rows > 0) {
                $newRelidArray[] = $value;
            }
        }

        // Собираем новое значение relid, объединяя элементы массива через запятую
        $newRelid = implode(",", $newRelidArray);

        // Обновляем запись в таблице a1 с новым значением relid
        $query = "UPDATE a1 SET relid = '$newRelid' WHERE id = $id";
        $mysqli->query($query);
    }

    // Освобождаем результирующий набор
    $result->free();
} else {
    echo "Ошибка выполнения запроса: " . $mysqli->error;
}

// Закрываем соединение с базой данных
$mysqli->close();
?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 20:22
20000 руб./за проект
27 апр. 2024, в 19:58
2500 руб./в час
27 апр. 2024, в 19:48
10000 руб./за проект