Autor Zpráva
jtfcobra
Profil
Ahoj dělám výpis pole ale nefunguje to mohli by jste mi poradit co delam spatne?

<?php // Odezvy
$data=mysql_query("SELECT MAC,JMENO FROM merenisystem.zarizeni",$db);
while ($zaznam = mysql_fetch_array($data)){
$zarizeniseznam[$zaznam["MAC"]] = $zaznam["JMENO"];
}  

$data=mysql_query("SELECT MAC,DATUM,CAS FROM merenisystem.quido ORDER BY ID DESC LIMIT 0,50",$db);
while ($zaznam = mysql_fetch_array($data)){
if ($zarizeniseznam[$zaznam["MAC"]] == $zaznam["MAC"]) { $zarizeniseznamodezva[$zaznam["MAC"]] = $zaznam["DATUM"].' '.$zaznam["CAS"];}
}

echo $zarizeniseznam['00204AF39358'].' odezva ' . $zarizeniseznamodezva['00204AF39358']; 
?>


Prvni dotaz nacte zarizeny a druhy dotaz zjisti kdy naposled se ulozily zaznamy
Alphard
Profil
Klíč 'jmeno' na 11. řádku nemůže existovat (tam již je samotná hodnota jména, viz řádek 4) a také nepovažuji za úplně moudré přepisovat si ve foreach původní pole (9. řádek), byť to funguje.
jtfcobra
Profil
Chtel bych vypsat vsechny pole

Ale nevim presne jak
napadlo mne :
foreach($zarizeniseznam as $zarizeniseznamodezva){
echo $zarizeniseznam.' odezva ' . $zarizeniseznamodezva'<br>';
}

Vysledek by mnel byt takto
Chalupa Quido 2 odezva 2016-12-29 11:23:32
Chalupa Quido 1 odezva 2016-12-29 11:23:32
Chalupa Quido 3 odezva 2016-12-29 11:23:32
Chalupa Quido 4 odezva 2016-12-29 11:23:32
atd
Tomášeek
Profil
jtfcobra:
... a výsledek přitom je Array odezva 2016-12-29 11:23:32, že?

$zarizeniseznam je pole (a že to je pole víš, protože jej procházíš foreachem), tak s ním nemůžeš v cyklu pracovat jako s řetězcem, přeci, ne?

Zkus trochu přemýšlet nad tím, co v jednotlivých proměnných je. Možná, kdybys je měl pojmenované nějak normálněji, bylo by ti jasnější, co v které je.
jtfcobra
Profil
Spolecne pojmenovani je MAC (mac adresa)
Taps
Profil
jtfcobra:
a nešlo by to jednoduššeji? viz níže.
<?
$zarizeniseznam = array();
$data = mysql_query("SELECT q.MAC AS MAC, q.DATUM AS DATUM, q.CAS AS CAS FROM merenisystem.zarizeni z 
INNER JOIN 
merenisystem.quido q 
ON z.MAC = q.MAC 
ORDER BY q.ID DESC LIMIT 0,50", $db);

while ($zaznam = mysql_fetch_array($data)){
    $zarizeniseznam[$zaznam["MAC"]] = ['DATUM' => $zaznam['DATUM'], 'CAS' => $zaznam['CAS'] ];    
}    
// kontrolní výpis pole
echo '<pre>';print_r($zarizeniseznam);'</pre>';
?>
jtfcobra
Profil
Taps:
Nefunguje radek

$zarizeniseznam[$zaznam["MAC"]] = array['DATUM' => $zaznam['DATUM'], 'CAS' => $zaznam['CAS'] ];

Parse error: syntax error, unexpected '[', expecting '
Taps
Profil
jtfcobra:
kod jsem upravil (vymazal slovo array)
jtfcobra
Profil
Funguje dekuji ale je divny ten vypis slo by to aby to vypsalo normalne pod sebe:

Jeste je to pomale je mozne ze by podle MAC naslo jen posledni odpoved v DB Quido? Abych to nemusel limitovat 0,50?

Array
(
    [00204AF33B77] => Array
        (
            [0] => TChalupaVentily: 2016-12-29 13:17:30
        )

    [0080A39CB88D] => Array
        (
            [0] => Melnik Bar: 2016-12-29 13:20:15
        )

    [0080A39D4784] => Array
        (
            [0] => BrandysPuda: 2016-12-29 13:17:28
        )

    [0080A39D5F25] => Array
        (
            [0] => BrandysVedleKB: 2016-12-29 13:17:22
        )

    [00204AF39358] => Array
        (
            [0] => Jenstejn: 2016-12-29 13:19:56
        )

    [0080A3A3EAC2] => Array
        (
            [0] => Chalupa: 2016-12-29 13:18:11
        )

    [0080A3A19799] => Array
        (
            [0] => Fontana 2: 2016-12-29 13:18:01
        )

    [0080A39D4788] => Array
        (
            [0] => BrandysRecepce: 2016-12-29 13:18:40
        )

    [0080A3A1A2AE] => Array
        (
            [0] => Topeni brandys: 2016-12-29 13:18:28
        )

    [0080A39D4782] => Array
        (
            [0] => BrandysKuchyne: 2016-12-29 13:18:00
        )

    [0080A3A24639] => Array
        (
            [0] => Fontana 1: 2016-12-29 13:22:12
        )

    [00204AE24ED7] => Array
        (
            [0] => Melnik Hlavni: 2016-12-29 13:20:41
        )

)
Array
 


<?
$zarizeniseznam = array();
$data = mysql_query("SELECT q.MAC AS MAC ,q.JMENO AS JMENO, q.DATUM AS DATUM, q.CAS AS CAS FROM merenisystem.zarizeni z 
INNER JOIN 
merenisystem.quido q 
ON z.MAC = q.MAC 
ORDER BY q.ID DESC LIMIT 0,50", $db);
 
while ($zaznam = mysql_fetch_array($data)){
    $zarizeniseznam[$zaznam["MAC"]] = [ $zaznam['JMENO'].': '.$zaznam['DATUM'].' '.$zaznam['CAS'] ];    
}    
// kontrolní výpis pole
echo '<pre>';print_r($zarizeniseznam);'</pre>';
echo $zarizeniseznam;
?>
Taps
Profil
jtfcobra:
zkus místo polozky NAZEV zadat JMENO ( tak jak jsi to zmínil ve svém prvním příspěvku).
Výpis pod sebe je možný, stačí když si pole projedeš pomocí foreach
<?
foreach($zarizeniseznam as $stanice){
 echo $stanice[0].'<br>';
}
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: