Запрос одного значения в нескольких таблицах MSSQL последовательно в PHP - PullRequest
0 голосов
/ 25 мая 2011

У меня есть 2 таблицы, которые мне нужно запросить для одного результата, но если он найден в $ table0, мне нужно прекратить поиск и использовать значения в этой строке. Примерно так:

$p1_sql = "SELECT TOP 1 * FROM '$table0' WHERE phone1 = '$cidnumber'";
$p2_sql = "SELECT TOP 1 * FROM '$table0' WHERE phone2 = '$cidnumber'";
$c1_sql = "SELECT TOP 1 * FROM '$table1' WHERE contactphone = '$cidnumber'";
$c2_sql = "SELECT TOP 1 * FROM '$table1' WHERE contactphone2 = '$cidnumber'";
$c3_sql = "SELECT TOP 1 * FROM '$table1' WHERE contactphone3 = '$cidnumber'";
$c4_sql = "SELECT TOP 1 * FROM '$table1' WHERE contactphone4 = '$cidnumber'";

$p1_res = mssql_query($p1_sql);
$p1_row = mssql_num_rows($p1_res);

$p2_res = mssql_query($p2_sql);
$p2_row = mssql_num_rows($p2_row);

$c1_res = mssql_query($c1_sql);
$c1_row = mssql_num_rows($c1_res);

$c2_res = mssql_query($c2_sql);
$c2_row = mssql_num_rows($c2_res);

$c3_res = mssql_query($c3_sql);
$c3_row = mssql_num_rows($c3_res);

$c4_res = mssql_query($c4_sql);
$c4_row = mssql_num_rows($c4_res);

if ($p1_row = 1){
    $p1_res = $newres;
    goto okres;
} elseif ($p2_row = 1) {
    $p2_res = $newres;
    goto okres;
} elseif ($c1_row = 1) {
    $c1_res = $newres;
    goto okres;
} elseif ($c2_row = 1) {
    $c2_res = $newres;
    goto okres;
} elseif ($c3_row = 1) {
    $c3_res = $newres;
    goto okres;
} elseif ($c4_row = 1) {
    $c4_res = $newres;
    goto okres;
} else {
    $newres = "na";
    goto nares;
}

okres:
$cid_sel = mssql_query("SELECT TOP 1 * FROM '$table0' WHERE phone1 = '$cidnumber'");

Это, однако, безобразно и не работает. Я пытался использовать «для каждого ...» или «пока (что-то)», но не мог понять, как это будет работать. Я даже не знаю, так ли это. Какой лучший способ пойти по этому поводу? Это мой первый опыт, и я благодарен за любую помощь.

Ответы [ 2 ]

2 голосов
/ 25 мая 2011

Нет необходимости делать так много отдельных запросов. Вы знакомы с базовым SQL, насколько JOINS и UNIONs? Если нет, то вы должны прочитать о них - то, что вы хотите здесь, кажется достижимым с помощью одного запроса.

0 голосов
/ 25 мая 2011

Я бы добавил различные запросы в массив и зациклил (используя foreach) этот массив для последующего запроса к базе данных. Как только вы найдете то, что ищете, вы выходите из цикла, используя разрыв; команда.

Использование соединений в чистом sql также может быть решением, но я не совсем уверен, чего вы хотите достичь.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...