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é.

  1. 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
  2. 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.
  3. 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,";
  4. 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;";
  5. nene $T1 je teploměr1. $datum je "datum" :-) $id je číslo řádku
  6. Tak proč jsi to chtěl řadit podle teploty? $co="SELECT * FROM sds ORDER BY datum DESC LIMIT 20;";
  7. už jsem si to zkusil. Seřadilo mi to podle teploty. :-)
  8. 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
  9. 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áš?
  10. 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
  11. Myslíš tohle? fwrite($fd,"$datum), $id, $T1 <br>");
  12. <? $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); } ?>
  13. <? $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.
  14. 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
  15. 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.
  16. 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>"); } ?>
  17. Protože mu cpeš skript místo dat. Funkce file_get_contents() zkopíruje skript, ale neprovede ho.
  18. Asi rozumím. Ale kam s tím.
  19. Vytvořit v javaskriptu nějakou proměnnou a do té vložit skript a pak tu proměnnou vyčíst jako data?
  20. 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.
  21. jak pro koho :-)
  22. 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; ?>
  23. jojo to funguje. děkuji.
  24. 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
  25. 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.

← Zpět na všechna témata