tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

fetchAssoc() duplicita pri navratu

před 8 lety

motycka01
Člen | 1

Ahoj,
prosim o radu se ziskanim dat z databaze:
kod:

<?php
  $result = dibi::query("SELECT DISTINCT
         [node],[hw_type],[vs],[d_vs.max_dynamic_macs],[egress_isid],[d_port.port],[d_hw_port.max_dynamic_macs],[d_vlan.vlan],[d_tp_name.name],[d_tp_mode.mode],[cir],
         [description],[max_frame_size],[tp_global],[forward_unlearned],[d_tp_port.enable],[d_node.backup_time]
        FROM [d_node]
        LEFT JOIN [d_vs]   ON [idd_node] = [d_vs.d_node_idd_node]
        LEFT JOIN [d_vc]   ON [idd_vs] = [d_vs_idd_vs]
        LEFT JOIN [d_port] ON [idd_vs] = [d_port.d_vs_idd_vs]
        LEFT JOIN [d_vlan] ON [d_port.idd_port] = [d_vlan.d_port_idd_port]

        LEFT JOIN [d_tp_port]  ON ([d_node.idd_node] = [d_tp_port.d_node_idd_node] and [d_tp_port.port] = [d_port.port])
        LEFT JOIN [d_tp_name]  ON ([d_tp_port.idd_tp_port] = [d_tp_port_idd_tp_port] and  [d_vlan.vlan] = [d_tp_name.vlan])

        LEFT JOIN [d_tp_mode]  ON [d_tp_port.idd_tp_port] = [d_tp_mode.d_tp_port_idd_tp_port]

        LEFT JOIN [d_hw_port]  ON ([idd_node] = [d_hw_port.d_node_idd_node]
                             AND [d_hw_port.port] = [d_port.port] )
        WHERE [vs] LIKE %s", $search_str);

   $assoc = $result->fetchAssoc('node');
   unset($result);
   $smarty->assign('stack', $assoc);
?>

Problem je v tom ze ruzne tabulky maji stejne jmeno pole v mem priklade [max_dynamic_macs], tim padem
se mi ve vysledku objevi jen jednou protoze ztraci vazbu na tabulku. Jak se tento problem resi ?

PHP Version 5.1.6

Dekuji

před 8 lety

HosipLan
Moderator | 4693

co takhle?

$result = $smarty->assign('stack[]', $assoc);
var_dump($result);

před 8 lety

Milo
Nette Core | 1119

Aliasuj je

$sql = 'SELECT t1.id AS id1, t2.id AS id2, t3.id AS id3 ...';