Incorrect syntax near ')'

SergoVL

Новичок
PHP:
//Получаем от клиента
$BS2 = $_POST['r']; //строка 10
$ar = $_POST['u'];
function multi_form($n)
{
    return "'{$n}'";
}
if(is_array($ar))   {
   $c2 = array_map ( 'multi_form', $ar);
$arr2 = implode (',', $c2);
}
if(is_array($BS2))   {
   $c = array_map ( 'multi_form', $BS2);
$arr1 = implode (',', $c);
}
/** Открываем подключение */
require_once('C:/inetpub/auth/conn.php');
$sql3 = "SELECT NODS FROM db_or.bo.hac_nods WHERE R_US IN ($arr1)"; // строка 36  $arr1 будет содержать 'первый','второй','третий'
$sql44=iconv('UTF-8','CP1251',$sql3);
$result3 = odbc_exec($conn, $sql44)or die("<p>".odbc_errormsg()); //строка 39
while ($row = odbc_fetch_array($result3)) {
    $NOD = $row['NODS'];
    $nod = iconv('CP1251','UTF-8',$NOD);
echo "<option value='$nod'>$nod</option>";
}
Уважаемые люди, приветствую!
Помогите разобраться с ошибками. По Notice эти значение необходимо как то определить? Подскажите, не совсем понятно.
По Warning предпологаю, что ошибка с кавычками в 36 строке, но честно не могу понять.

Notice: Undefined index: r in C:\inetpub\opr\SG\forma_hwac_opr\form2_2.php on line 10
Notice: Undefined variable: arr1 in C:\inetpub\opr\SG\forma_hwac_opr\form2_2.php on line 36
Warning: odbc_exec(): SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ')'., SQL state 37000 in SQLExecDirect in C:\inetb\op\S\forma_hc_or\form2_2.php on line 39
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ')'.
 

SergoVL

Новичок
Мне понятно что r отсутствует , поэтому и ошибка, но он принимается чз POST , не понятно как его определить.
 

SergoVL

Новичок
запросить этот скрипт с помощью формы, отправляемой методом POST
Запрашиваю, или думаю, что - так

$('#reg').change(function(){
var r = $("#regi").val();

$.post("form2_2.php",
{ r:r }, keys );
function keys(data2){
// Здесь мы получаем данные, отправленные сервером и выводим их на экран.
$('#pro').html(data2);
}
 

Фанат

oncle terrible
Команда форума
а просто форму отправить без этих вытребенек с яваскриптом - никак?
 

SergoVL

Новичок
PHP:
if (isset($_POST['r'])){
      $BSC2= $_POST['r'];
    }
if (isset($_POST['u'])){
      $ar= $_POST['u'];
    }
Указал
и
На сервере отображается все отлично, но с клиента если смотреть чз консоль приходит ошибка


Warning: odbc_exec(): SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ')'., SQL state 37000 in SQLExecDirect in C:\inetpub\opr\SG\forma_hwac_opr\form2_2.php on line 46
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ')'.

PHP:
 /** Открываем подключение */

require_once('C:/inetpub/auth/conn.php');

$sql3 ="SELECT NODS FROM db_or.bo.hac_nods WHERE R_US IN ($arr1)";
$sql44=iconv('UTF-8','CP1251',$sql3);
$result3 = odbc_exec($conn, $sql44)or die("<p>".odbc_errormsg()); //строка 46
 
Последнее редактирование:

SergoVL

Новичок
Спасибо всем. Разобрался. На сервере все распечатывалось как надо, но со сторны клиента в запросе в скобках было пусто , проверка $result3 = odbc_exec($conn, $sql44)or die("<p>".odbc_errormsg()); на пустоту в скобках и выдавала ошибку.

PHP:
$BS2 = array();

function multi_form($n)
{
    return "'{$n}'";
}

if (isset($_POST['r'])){
      $BS2= $_POST['r']; 
if(is_array($BS2))   {
   $c = array_map ( 'multi_form', $BS2);
$arr1 = implode (',', $c);
//print_r($arr1);

 /** Открываем подключение */

require_once('C:/inetpub/auth/conn.php');

$sql3 = "SELECT NODS FROM db_or.bo.hac_nods WHERE R_US IN ($arr1)";


$sql44=iconv('UTF-8','CP1251',$sql3);
$result3 = odbc_exec($conn, $sql44)or die("<p>".odbc_errormsg());

while ($row = odbc_fetch_array($result3)) {
    $NOD = $row['NODS'];
    $nod = iconv('CP1251','UTF-8',$NOD);
echo "<option value='$nod'>$nod</option>";
}

}
}
 
Сверху