2012-08-08 3 views
0

내가이 다음 코드 드루팔 모듈 MySQL의 오류 일부 사이트의 모듈에서

function q_cart_add($node) { 
    global $user; 
    //drupal_set_title('Добавление товара в корзину'); 
    drupal_set_title('Товар добавлен в корзину'); 
    if (!user_access('add to cart')) 
     return '<p>У вас не достаточно прав для добавления в корзину</p>'; 
    if ($node -> type != 'kartochka') 
     return '<p>В корзину можно положить только товар</p>'; 
    $added = false; 
    if ($user -> uid) { 
     $added = db_result(db_query('SELECT `added` FROM {q_cart} WHERE `uid` = %d, `nid` = %d', $user -> uid, $node -> nid)); 
     if (!$added) { 
      db_query('INSERT INTO {q_cart} (`uid`, `nid`, `added`) VALUES (%d, %d, %d)', $user -> uid, $node -> nid, time()); 
     } 
    } else { 
     foreach (isset($_COOKIE['q_cart']) && ($cart = json_decode($_COOKIE['q_cart'])) ? $cart : array() as $item) 
      if ($item -> nid == $node -> nid) { 
       $added = true; 
       break; 

하지만 난이 오류가 (6) 드루팔의 관리자 패널의 보고서에서

:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL 
server version for the right syntax to use near &#039; `nid` = 806&#039; at line 1 query: 
SELECT `added` FROM q_cart WHERE `uid` = 1, `nid` = 806 in file... 

무슨 잘못이 코드 ? 조건이 AND 또는 OR로 구분 될 필요가

WHERE `uid` = %d, `nid` = %d 

:

+0

'' '가 ... 문제이며, 그것은 부족 – Julien

+0

조건을 인용하면 '123'대신 '123'을 사용할 수 있습니까? (인용문) – Avdept

답변

0

문제는이 첫 번째 쿼리의 일부입니다

SELECT `added` FROM {q_cart} WHERE `uid` = %d AND `nid` = %d 
+0

내가 필요한 조건을 알려줄 수 있습니까? 나는 더 많은 코드에 접근 할 수 없다. 단지이 파일이지만, 나는 '또는'또는 'and'가 거기에 있어야한다고 말하고있다. – Avdept

+0

분명히 나는 ​​추측하고있을 뿐이지 만, "OR"는 그 맥락에서 의미가 있다고 생각하지 않는다. . 나는 노드 ID와 현재 사용자 ID를 기반으로 제품의 추가 시간 (또는 수량)을 얻으려고합니다. 그게 사실이라면 그것은'AND'이어야한다고 제안 할 것입니다. – Clive

+0

고맙습니다. 같은 생각이었고, 더 많은 버그를 피하기 위해서입니다. – Avdept

관련 문제