04
Окт
2022

Как правильно сделать цикл поиска по БД?

Подскажите, как правильно реализовать поиск по БД:

в таблице есть ID объекта, ownerID - в какой папке лежит этот файл/папка (это нужно для отображения) и nameDir - название папки

Делаю запрос на поиск, этим запросом получаю Id папки в которой лежит файл, затем проверяю на условие, и если nameDir не соотвествует условию (названию папки) то мне нужно искать дальше - т.е я беру ownerID папки подставляю его в ID и нужно опять проверить на условие nameDIR

Подскажите, как нужно правильно это сделать в циклe, т.к. while почему то у меня не отрабатывает:

<?php
include "db_dev.php";

function foo($stroka)
{
    include "db_dev.php";

    $b_sql = "SELECT ownerID, ID, dirName FROM [Projects].[dbo].[Z_contents] WHERE ID = '$stroka'";
    $b_query = sqlsrv_query($conndev, $b_sql); // выполяем запрос
    if ($b_query == false) {
        echo (sqlsrv_errors());
    }

    while ($b_row = sqlsrv_fetch_array($b_query, SQLSRV_FETCH_ASSOC)) {
        $str = $b_row['dirName'];
        $b_ownerID = $b_row['ownerID'];
        return [$str, $b_ownerID];
    }
}

$mask1 = 'изм';
$mask2 = 'рев';

$t_sql = " SELECT ownerID
          FROM [CurProjects].[dbo].[Z_files]
          WHERE fileDescr LIKE '20-000-А01%0.%' and fileDescr NOT LIKE '%pdf%'
          GROUP by ownerID";
$query = sqlsrv_query($conndev, $t_sql); // выпонляем запрос
if ($query == false) {
    echo (sqlsrv_errors());
}

while ($row_shifr = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) {
    $ownerID = $row_shifr['ownerID'];
    echo "<br> Ищем изм для :" . $ownerID;
    [$str, $b_ownerID] = foo($ownerID);
    if ($str != null) {
        //$pos2 = stripos($str, $mask2);
        while (stripos($str, $mask1) == true) // тут цикл, но он не работает
        {
            echo " Изм не найден, ищем в :" . $b_ownerID;
            foo($b_ownerID);
            [$str, $b_ownerID] = foo($ownerID);
        }

    }
}
sqlsrv_free_stmt($query);
sqlsrv_close($conndev);

Источник: https://ru.stackoverflow.com/questions/1453996/%D0%9A%D0%B0%D0%BA-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%86%D0%B8%D0%BA%D0%BB-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%91%D0%94

Тебе может это понравится...

Добавить комментарий