Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 не выполняется sql запрос  [new]
noTpyJI
Member

Откуда:
Сообщений: 112
есть функция getOrders() которая должна вернуть многомерный массив

+
  function getOrders()
  {
    global $link;
    if(!is_file(ORDERS_LOG))
      return false;
    $orders = file(ORDERS_LOG);
    $allorders = array();
    
    foreach($orders as $order)
    {
      list($name, $email, $phone, $address, $dt, $orderid) = explode('|', $order);
     
      $orderinfo = array();
      
      $orderinfo['name']    = $name;
      $orderinfo['email']   = $email;
      $orderinfo['phone']   = $phone;
      $orderinfo['address'] = $address;
      $orderinfo['dt']      = $dt;
      $orderinfo['orderid'] = $orderid;
      
      $sql = "
        SELECT 
          title, author, pubyear, price, quantity
        FROM orders 
        WHERE orderid ='$orderid'";
      
      if(!$result = mysqli_query($link, $sql))
        return false;
      
      $items = mysqli_fetch_all($result, MYSQLI_ASSOC);
      mysqli_free_result($result);
      $orderinfo['goods'] = $items;
      $allorders[] = $orderinfo;
    }
    
    return $allorders;
  }

во вложенный массив ['goods'] должен вернутся результат sql запроса.
пробовал заменить "WHERE orderid ='$orderid'" на "WHERE 1=1" функция отработала как нужно,
в переменной $orderid есть данные которые записываются в $orderinfo['orderid'], но в sql косяк
поле 'orderid' имеет тип varchar(..)

База MySQL
25 мар 14, 00:56    [15780883]     Ответить | Цитировать Сообщить модератору
 Re: не выполняется sql запрос  [new]
vkle
Member

Откуда: Самара
Сообщений: 13478
noTpyJI,

Покажите echo $sql и проверьте, нет ли ошибки после выполнения запроса.
25 мар 14, 01:09    [15780910]     Ответить | Цитировать Сообщить модератору
 Re: не выполняется sql запрос  [new]
noTpyJI
Member

Откуда:
Сообщений: 112
vkle,

в sql закрался пробел в конце строки
SELECT title, author, pubyear, price, quantity FROM orders WHERE orderid = '5330803cf1d0b '


if($result = mysqli_query($link, $sql))
  return printf("Ошибка: %s\n", mysqli_error($link));

вернуло Ошибка: 15
25 мар 14, 01:25    [15780931]     Ответить | Цитировать Сообщить модератору
 Re: не выполняется sql запрос  [new]
FatalPHPError
Guest
Обычно ошибку выводят, если запрос НЕ выполнился, а у вас наоборот
25 мар 14, 07:35    [15781158]     Ответить | Цитировать Сообщить модератору
 Re: не выполняется sql запрос  [new]
noTpyJI
Member

Откуда:
Сообщений: 112
кажется понял, в sql вот такая кака

SELECT title, author, pubyear, price, quantity FROM orders WHERE orderid = '5330803cf1d0b\r\n 
'


попробовал regexp пока не получилось
25 мар 14, 08:18    [15781233]     Ответить | Цитировать Сообщить модератору
 Re: не выполняется sql запрос  [new]
FatalPHPError
Guest
php.net/trim
25 мар 14, 08:25    [15781254]     Ответить | Цитировать Сообщить модератору
 Re: не выполняется sql запрос  [new]
noTpyJI
Member

Откуда:
Сообщений: 112
FatalPHPError,

когда увидел пробел, первое что пришло в голову это trim
25 мар 14, 08:43    [15781302]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: не выполняется sql запрос  [new]
Masta_RU
Member

Откуда:
Сообщений: 2
Такая же проблема. Кто-нибудь нашел решение?
4 сен 17, 01:17    [20768704]     Ответить | Цитировать Сообщить модератору
 Re: не выполняется sql запрос  [new]
Masta_RU
Member

Откуда:
Сообщений: 2
А все разобрался.
$orderid = trim($orderid);
Помогло.
4 сен 17, 01:42    [20768709]     Ответить | Цитировать Сообщить модератору
Все форумы / PHP, Perl, Python Ответить