Výpis dat z Mysql
56 příspěvků · strana 1 z 3
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
vypisuji data takto: <? $spojeni=mysql_connect("localhost","jmeno","heslo"); $co="SELECT * FROM tab"; $navrat=mysql_db_query("db", $co, $spojeni); for ($i=1;$i<mysql_num_fields($navrat); $i++); while (list( $datum, $id ,$T1,) = mysql_fetch_row($navrat)){ echo(" $datum), $id, $T1 <br>"); } ?> ale to mi vypíše celý sloupec. Dá se nějak vypsat třeba jen posledníc 20 záznamů? Nebo třeba od řádku x do řádku x+20. díky
-
Na to se používá LIMIT. Bude nutné podle data udělat SORT DESC, vezmeš prvních 20 a znovu seřadíš, tentokrát vzestupně. Asi bude vhodné vytvořit k tabulce index podle zmíněného časového razítka.
-
napadlo mě toto: vypisovat data sestupně pomocí fce DESC a fce LIMIT zobrazit 20 záznamů. ale toto je asi špatně $co="SELECT * FROM sds ORDER BY $T1 DESC LIMIT 20,";
-
Chybička se vloudila. Předpokládám, že timestamp je označen jako sloupec T1: $co="SELECT * FROM sds ORDER BY T1 DESC LIMIT 20;";
-
nene $T1 je teploměr1. $datum je "datum" :-) $id je číslo řádku
-
Tak proč jsi to chtěl řadit podle teploty? $co="SELECT * FROM sds ORDER BY datum DESC LIMIT 20;";
-
už jsem si to zkusil. Seřadilo mi to podle teploty. :-)
-
Kite, když už jsi na příjmu poradíš mi s tímto? Jak to do toho skriptu výpisu z db dosadit? $fd=fopen('data.txt','a'); $data=date('r'); fwrite($fd,"$T1"); fclose($fd); díky
-
Nerozumím dotazu. Do souboru data.txt zapisuješ (přidáváš na konec) hodnotu z proměnné $T1. Co chceš odkud kam zapsat? A k čemu máš proměnnou $data, když ji nikde nepoužíváš?
-
do toho původního skriptu <? $spojeni=mysql_connect("localhost","jmeno","heslo"); $co="SELECT * FROM tab"; $navrat=mysql_db_query("db", $co, $spojeni); for ($i=1;$i<mysql_num_fields($navrat); $i++); while (list( $datum, $id ,$T1,) = mysql_fetch_row($navrat)){ echo(" $datum), $id, $T1 <br>"); } ?> nechci tam mít to echo(" $datum), $id, $T1 <br>"); ale napasovat tam to zapisování do souboru data.txt
-
Myslíš tohle? fwrite($fd,"$datum), $id, $T1 <br>");
-
<? $spojeni=mysql_connect("localhost","jmeno","heslo"); $co="SELECT * FROM tab"; $navrat=mysql_db_query("db", $co, $spojeni); for ($i=1;$i<mysql_num_fields($navrat); $i++); while (list( $datum, $id ,$T1,) = mysql_fetch_row($navrat)){ //echo(" $datum), $id, $T1 <br>"); $fd=fopen('data.txt','a'); $data=date('r'); fwrite($fd,"$datum), $id, $T1 <br>"); fclose($fd); } ?>
-
<? $spojeni=mysql_connect("localhost","jmeno","heslo"); $co="SELECT datum,id,T1 FROM tab"; $navrat=mysql_db_query("db", $co, $spojeni); $fd=fopen('data.txt','a'); for ($i=1;$i<mysql_num_fields($navrat); $i++); while (list( $datum, $id ,$T1) = mysql_fetch_row($navrat)){ fwrite($fd,"$datum), $id, $T1 <br>"); } fclose($fd); ?> Jenom mi stále není jasné, k čemu ti to bude. Postrádá to logiku.
-
http://www.highcharts.com/demo/line-labels u grafu máš view options. Místo hodnot které jsou psané přímo, dávám hodnoty z databáze. Ale ten skript který vyčítá z databáze tam nejde dát přímo. funguje mi toto [<?php echo file_get_contents('teplota.php'); ?>] v souboru teplota.php mám ten předchozí skript. Ale chci mít v jednom souboru skript který bude posílat do více souborů. uff
-
Ten skript, který to vyčítá z databáze, tam zcela jistě jde dát přímo. Napiš strukturu, kterou highcharts očekává a dáme to dohromady. Možná tam jen chybí správná hlavička MIME.
-
očekává toto: series: [{ name: 'Tokyo', data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6] }, { name: 'London', data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] }] a já mám toto: series: [{ name: 'Teplota1', data: [<?php echo file_get_contents('teplota1.php'); ?>] }, { name: 'Teplota2', data: [<?php echo file_get_contents('teplota2.php'); ?>] }] nevím proč, ale tohle mi tam nejde <? $spojeni=mysql_connect("localhost","jmeno","heslo"); $co="SELECT * FROM tab"; $navrat=mysql_db_query("db", $co, $spojeni); for ($i=1;$i<mysql_num_fields($navrat); $i++); while (list( $T1,) = mysql_fetch_row($navrat)){ echo(" $T1 <br>"); } ?>
-
Protože mu cpeš skript místo dat. Funkce file_get_contents() zkopíruje skript, ale neprovede ho.
-
Asi rozumím. Ale kam s tím.
-
Vytvořit v javaskriptu nějakou proměnnou a do té vložit skript a pak tu proměnnou vyčíst jako data?
-
Nejprimitivnější metodou by mohlo být prosté nahrazení funkce file_get_contents() funkcí include(). Je však zbytečné databázi otvírat 2x (velká režie), takže další úpravy budou víc než vhodné. Dá se to s přehledem nacpat do jednoho skriptu.
-
jak pro koho :-)
-
Určitě to jde napsat lépe, střílím od pasu: <? $spojeni=mysql_connect("localhost","jmeno","heslo"); $co="SELECT T1,T2 FROM tab ORDER BY datum DESC LIMIT 20;"; $navrat=mysql_db_query("db", $co, $spojeni); while (list( $T1,$T2) = mysql_fetch_row($navrat)){ $teploty1[]=$T1; $teploty2[]=$T2; } $T1=implode(',',array_reverse($teploty1)); $T2=implode(',',array_reverse($teploty2)); echo <<<EOT series: [{ name: 'Teplota1', data: [$T1] }, { name: 'Teplota2', data: [$T2] }] EOT; ?>
-
jojo to funguje. děkuji.
-
takto vypisuji z databáze datum: <? $spojeni=mysql_connect("localhost","jmeno","heslo"); $co="SELECT datum FROM data_1 ORDER BY datum DESC LIMIT 20;"; $navrat=mysql_db_query("energie", $co, $spojeni); while (list( $datum) = mysql_fetch_row($navrat)){ $datum1[]=$datum; } $datum1=implode("','",array_reverse($datum1)); echo <<<EOT xAxis: { categories: ['$datum1'], }, EOT; ?> vypíše se mi v tomto formátu: 2011-12-14 19:42:06 jde udělat aby se vypsal třeba jen rok, měsíc, nebo hodina a minuta? díky
-
Jistě. Mrkni se na http://www.tutorialspoint.com/mysql/mysql-date-time-functions.htm#function_date-format Rozhodně je fajnovější, když to uděláš přímo v databázi, než to nechat šmudlit pomalými skripty v PHP. BTW: Proč to nevypisuješ takto? $co="SELECT datum,T1,T2 FROM tab ORDER BY datum DESC LIMIT 20;"; Přece máš tu trojici v databázi pohromadě, tak bys s tím měl i zacházet. Místo sloupce datum samozřejmě použij požadovanou funkci, ale ORDER BY neměň (pokud nechceš řadit podle něčeho jiného). Jeden SELECT by ti měl stačit na všechna požadovaná data z DB. A chybí ti tam definice prázdného pole na začátku skriptu, tedy $datum1=array(); Nějak jsem to přehlédl. Divím se, že to funguje. To je hrozné, co PHP snese.