Mysql adtok tömbökbe írása és egyesítése

Mysql adtok tömbökbe írása és egyesítése
2013-03-10T10:23:39+01:00
2013-03-10T11:46:13+01:00
2022-11-28T12:00:39+01:00
sandor71
Hi!

A problémám a következő:
Van egy mysql adattáblában 2 oszlop 'megtellik1' és 'megtellik2' ezek képletek által kiszámított adatokat tartalmaznat 'éééé-hh' formátumban mivel az oszlopok tartalma különböző, ezért nem lehet rendezni csak az egyik szerint majd a másik szerint. Persze csoportosítottam php-ben az egyiket és tömbbe raktam:

$sql = mysql_query("SELECT * FROM `amem` ORDER BY amem.megtellik1 ASC");

$db = 0;
$rows = array();
while($r = mysql_fetch_assoc($sql))
{

$ev = substr($r["megtellik1"], 0, 4);
if(($ev != $_SESSION["ev"]) and ($db <> 0))
{
$temp = array();
$temp = array('c' => (string) $_SESSION['ev'], 'v' => (int) $db);
//print(json_encode($temp)."<br />");
$rows[] = $temp;
$db=0;
}
$db++;
$_SESSION["ev"] = substr($r["megtellik1"], 0, 4);
}

Mivel szeretném grafikonon megjeleníteni. De mind a kettő oszlop tartalmát. A tömböket nem tudom úgy összeadni, hogy dupla bar chart-on megjelenjen. Vagy az egyik vagy a másik jelenik meg. Amikor az array_merge-et használom akkor csak egymás után jelennek meg a grafikon oszlopai, de nekem párosan kellene. A tömbnek valahogy így kellene kinézni:
[{
c: 2013,
v: 1,
c1: 2014,
v1: 2
}, {
c: 2014,
v: 12,
c1: 2015,
v1: 22
}, {
c: 2015,
v: 30,
c1: 2016,
v1: 23
}]

Van valami ötlet a megoldásra?
Köszönöm.
Mutasd a teljes hozzászólást!
És itt a megoldás:

$sorok = array();
while ( count( $rows ) )
{
$ertek = array_shift( $rows );
$ertek1 = array_shift( $rows1 );
$sor = array_merge($ertek,$ertek1);
$sorok = array_merge($sorok,array($sor));
//print("sor: ".json_encode($sorok)."<br />");
}

Ráment egy napom, de így működik.
Mutasd a teljes hozzászólást!

  • Ezt már sikerült előállítani:

    [{
    c: 2013,
    v: 1,
    }, {
    c: 2014,
    v: 12,
    }, {
    c: 2015,
    v: 30,
    }]

    és ezt is:
    [{
    c1: 2014,
    v1: 5,
    }, {
    c1: 2015,
    v1: 23,
    }, {
    c1: 2016,
    v1: 42,
    }]

    ezeket kellene valahogy összefűzni, hogy a fentire hasonlítson.
    Üdv.
    Mutasd a teljes hozzászólást!
  • És itt a megoldás:

    $sorok = array();
    while ( count( $rows ) )
    {
    $ertek = array_shift( $rows );
    $ertek1 = array_shift( $rows1 );
    $sor = array_merge($ertek,$ertek1);
    $sorok = array_merge($sorok,array($sor));
    //print("sor: ".json_encode($sorok)."<br />");
    }

    Ráment egy napom, de így működik.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd