2015-04-15 6 views
-3

У меня есть две таблицы, одна из которых является переменной, а другая фиксирована.Я хочу сделать соединение между двумя таблицами

$ Вкладка структуры

id int(11) autoincrement 
cod  text   
den_material text   
furnizor varchar(255)   
cant_reper varchar(255)   
lg varchar(255) No  
cod_furnizor varchar(255)   
obs  tinytext   
data date  

и номенклатурной структура таблицы

nid  int(11) autoincrement  
sap  text    
denumire  text    
grupa varchar(255)    
unitate 

Я хочу присоединиться к ним, чтобы сгенерировать одну единственную таблицу в $ вкладки со следующей структурой

id int(11) autoincrement 
cod  text  --> to get datas from nomenclator table sap as column 
den_material text -> to get datas from nomenclator table denumire as column  
furnizor varchar(255)   
cant_reper varchar(255)   
lg varchar(255) No  
cod_furnizor varchar(255)   
obs  tinytext   
data date 

Полный исходный код

session_start(); 

// preserve selection for ajax call 
if (!empty($_POST["tables"])) 
{ 
    $_SESSION["tab"] = $_POST["tables"]; 
    $tab = $_SESSION["tab"]; 
} 

// update on ajax call 
if (!empty($_GET["grid_id"])) 
    $tab = $_SESSION["tab"]; 

if (!empty($tab)) 
{ 
    $g = new jqgrid(); 

    // set few params 
    $grid["caption"] = "Comanda : '$tab'"; 
    $grid["autowidth"] = true; 
    $grid["multiselect"] = false; // allow you to multi-select through checkboxes 
$grid["form"]["position"] = "center"; 
$grid["view_options"] = array("width"=>"500"); 



    $g->select_command = "SELECT t.* FROM `$tab` AS t, `nomenclator` AS n 
WHERE n.`sap` = t.`cod` OR n.`denumire` = t.`den_material`;"; 



    $g->set_options($grid); 

    $g->set_actions(array( 
         "add"=>true, // allow/disallow add 
         "edit"=>true, // allow/disallow edit 
         "delete"=>true, // allow/disallow delete 
         "view"=>true, // allow/disallow delete 
         "rowactions"=>true, // show/hide row wise edit/del/save option 
         "search" => "advance", // show single/multi field search condition (e.g. simple or advance) 
         "showhidecolumns" => false 
        ) 
       ); 




    // set database table for CRUD operations 

    $g->table = $tab; 


    $col = array(); 
$col["title"] = "sap"; 
$col["name"] = "sap"; 
$col["width"] = "10"; 
$col["editable"] = true; 
$col["hidden"] = true; 
$cols[] = $col; 



$col = array(); 
    $col["index"] = "furnizor"; 
    $col["title"] = "Comerciale asigurate de: "; 
    $col["editable"] = true; 
    $col["edittype"] = "select"; // render as checkbo 
$col["editoptions"] = array("value"=>'Ramira:Ramira;Beneficiar:Beneficiar', "multiple" => true); 
    $cols[] = $col; 

     $col = array(); 
$col["index"] = "den_material"; 
$col["title"] = "Denumire Material"; 
$col["name"] = "denumire"; 
$col["editable"] = true; 
$col["width"] = "80"; 
$col["searchoptions"] = array("value" => $str, "separator" => ":", "delimiter" => ";"); 
$col["search"] = true; 
$col["formatter"] = "autocomplete"; // autocomplete 
$col["formatoptions"] = array( "sql"=>"SELECT t.* 
FROM `$tab` AS t, `nomenclator` AS n 
WHERE n.`sap` = t.`cod` OR n.`denumire` = t.`den_material`;", 
           "search_on"=>"name", 
           "update_field" => "sap"); 
$cols[] = $col; 
+0

Вы хотите сказать, что хотите присоединиться к переменной php в таблицу в базе данных? – roullie

+3

Вы говорите: «Это поможет [вам] получить повышение», поэтому я порекомендую вам изучить работу, которую люди вам платят. – MaoTseTongue

+0

Что сказал @MaoTseTongue. То, что вы делаете, в основном крадет деньги, получая деньги за то, о чем вы не знаете. Изучите технологию, не просите о фрагментах кода. Если вы не можете научиться этому, найдите работу, соответствующую вашим навыкам. –

ответ

1

Ниже запроса получит строки, которые имеют как данные в $ вкладке, как же, как и в номенклатурный.

SELECT t.* 
FROM `$tab` AS t, `nomenclator` AS n 
WHERE n.`sap` = t.`cod` AND n.`denumire` = t.`den_material`; 

Ниже запрос получите строки, которые имеют какие-либо данные в $ вкладке, как же, как и в номенклатурный.

SELECT t.* 
FROM `$tab` AS t, `nomenclator` AS n 
WHERE n.`sap` = t.`cod` OR n.`denumire` = t.`den_material`; 

Попробуйте выше запросов. Если вы не получите желаемый результирующий набор, ответьте здесь

+0

Не удалось выполнить запрос. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с «LIMIT 1 OFFSET 0» в строке 1 - SELECT t. * FROM 'test123' AS t,' nomenclator' AS n WHERE n.'sap' = t.'cod' ИЛИ n.'denumire' = t.'den_material'; LIMIT 1 OFFSET 0 –

+0

Я разместил здесь полный исходный код –

+1

, вы должны удалить ';' после 't.den_material' –