Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Tolik rozruchu
jen v Lopuchu

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Archiv klubu PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
   
[ 874 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 8.6.2006 15:14  1364
mam tim na mysli, jak ve funkci rozlišim jaké z nich jsem obdržel.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 8.6.2006 15:13  1363
nějaká idea, jak v php odlišit pole asocoativní od pole hashovaného?
ganymedes 8.6.2006 10:14  1362
mptsCo dodat...super! Jak odzkouším tak sem postnu link. Moc dík všem za pomoc.
anonym 8.6.2006 10:13  1361
mptsCo dodat...super! Jak odzkouším tak sem postnu link. Moc dík všem za pomoc.
mpts mpts Je to jinak, ba přesně naopak! 8.6.2006 10:07  1360
Ganymedes [1357]: Nejprve technická -- když sem píšeš nějaký zdroják, zkus jej obklopit tagy <raw> a </raw>, aby to vypadalo nějak takto:

if ($pribuzni_prijeli) {
  $klidek = false;
  schovej_jidlo( /* force = */ true);
  vymen_zamky( /* pocet = */ 7);
  vypni_zvonek();
  zhasni_a_delej_mrtveho_brouka();
}
else {
  $klidek = true;
  $mejdan = true;
}


Jinak, pokud by to Niximorovo vysvětlení nebylo jasné, představ si např., že máš předem vytvořenu databázi VYZKUM_DATA a v ní tabulku TEPLOTA takto:

create table TEPLOTA (
  casmereni timestamp not null primary key, /* toto bude klic k urceni zaznamu */
  teplota decimal(6,2) not null, /* teplota na dve desetina mista */
  poznamka varchar(255)
)


Potom ta část PHP skriptu, kterou tam uložíš výsledek měření, by mohla vypadat nějak takto:

<?php
  $mysql_server = 'localhost';
  $mysql_user = 'franta';
  $mysql_passwd = 'helenka';
  $mysql_db = 'VYZKUM_DATA';

  $connection = mysql_connect($mysql_server, $mysql_user, $mysql_passwd);
  if($connection !== false){
    mysql_select_db($mysql_db, $connection);
  }
  else {
    echo 'Chyba spojení -- nelze se připojit k databázi.';
    exit();
  }

  $query = "insert into TEPLOTA (casmereni, teplota) values ('$casmereni', '$zmerena_teplota')";

  $result = mysql_query($query, $connection);
  if ($result !== false) {
    echo 'Uloženo OK';
  }
  else {
    echo 'Chyba při ukládání.';
    exit();
  }
?>


Tedy v té prvé závorce toho insertu jsou jména polí té tabulky, tak jak byla stanovena při jejím vytváření, a to těch polí, do nichž chceš zapisovat, a v té druhé závorce jsou pak ve stejném pořadí hodnoty, které do těch polí chceš zapisovat. Odkud vezmeš ty hodnoty $casmereni a $zmerena_teplota tu neřeším, jen bych upozornil, že v praxi je třeba ještě ošetřit zejména textové hodnoty na výskyt nežádoucích znaků, k čemuž se obvykle užívá funkce mysql_escape_string, a za druhé že je třeba si ty vkládané hodnoty správně zformátovat, aby jim MySQL rozuměla. Např. timestamp má formát 'YYYY-MM-DD HH:MM:SS'.

Snad už to dáš dohromady. :-)
niximor 8.6.2006 07:49  1358
Ganymedes [1357]: mysql_connect ma parametry server, uzivatel, heslo.
Po pripojeni musis vybrat prislusnou databazi (v MySQL existuji ruzne databaze a v nich tabulky, do kterych se ukladaji data) prikazem mysql_select_db("nazev_databaze"); a pak az muzes pomoci mysql_query(); vkladat data.
V tom insertu pouzijes misto nazev_databaze nazev_tabulky. Nazvy v prvni zavorce toho dotazu znaci, do kterych sloupcu budes ukladat data uvedena v zavorce za VALUES. Tzn. pokud v tom poli $teplota (btw chybi ti tam $ v array_keys) jsou stale stejne klice, tak musis mit tabulku, ktera bude mit vytvorene prislusne sloupce s nazvy klicu toho pole a pak to takhle bude fungovat.
Jak databazi tak prislusnou tabulku musis mit uz dopredu pripravenou, nejjednodussi je pravdepodobne pouzit phpMyAdmin, tam se to da vsechno pekne naklikat, a zaroven ti to da i takovy prehled, jak vlastne takova MySQL vypada.
ganymedes 8.6.2006 01:46  1357
mptsNěco jsem dal dohromady ale stejně to neukládá. Můžeš ještě poradit co dopsat, přepsat? Moc dík.

mysql_connect("localhost","název_databáze","heslo")
or die ("Není možné připojit databázový server.");

mysql_query("INSERT INTO název_databáze (" . implode(", ", array_keys(teplota)) . ") VALUES (" . implode(", ", $teplota) . ")");

$ip = "192.168.100.10"; // pokud neni definovano $ip pak je prijem dat ze vsech pocitacu
function rwTeplota($teplota)
{
global $ip;
if (($teplota) && ((!$ip) || ($ip==getenv ("REMOTE_ADDR"))))
{
// zapis hodnoty do souboru
if ($file=fopen("teplota.txt", "w"))
{
$text=fwrite($file,$teplota);
fclose($file);
// vraci
return $teplota;
}
}
else
{
// cteni hodnoty ze souboru
if ($file=fopen("teplota.txt", "r"))
{
return fread($file,10);
fclose($file);
}
}
}
echo rwTeplota($_REQUEST ["teplota"]);
mpts mpts Je to jinak, ba přesně naopak! 7.6.2006 09:35  1356
GanymedesJediné, co potřebuješ, je SQL příkaz:

insert into TABULKA_S_TEPLOTAMI (JMENO_POLE_JEDNOZNACNE_IDENTIFIKUJICIHO_ZAZNAM_NAPR_AKTUALNI_CAS, JMENO_POLE_S_HODNOTAMI_TEPLOTY) values (HODNOTA_IDENTIFIKATORU_ZAZNAMU, VELIKOST_PRECTENE_TEPLTOTY)

Vše ostatní závisí na tom, jakou konkrétní databázi užíváš a jak se k ní připojuješ, nebo si to můžeš zjistit na http://cz.php.net/manual/cs/
ganymedes 6.6.2006 21:38  1355
Tak tady je ten kod co mi získává a zapisuje data do souboru. No a teď potřebuji poradit s příkazem na uložení té hodnoty do databáze.
Prosím někoho kdo tomu rozumí, docela dost to potřebuji jako stat. pro teplotní graf.

// funkce "rwTeplota($teplota)" vraci posledne zapsanou hodnotu
// je-li funkci predana hodnota $teplota zapise ji do souboru "teplota"

$ip = "192.168.100.10"; // pokud neni definovano $ip pak je prijem dat ze vsech pocitacu
function rwTeplota($teplota)
{
global $ip;
if (($teplota) && ((!$ip) || ($ip==getenv ("REMOTE_ADDR"))))
{
// zapis hodnoty do souboru
if ($file=fopen("teplota.txt", "w"))
{
$text=fwrite($file,$teplota);
fclose($file);
// vraci
return $teplota;
}
}
else
{
// cteni hodnoty ze souboru
if ($file=fopen("teplota.txt", "r"))
{
return fread($file,10);
fclose($file);
}
}
}
echo rwTeplota($_REQUEST ["teplota"]);
°C
bouchi Bouchi Dračí doupě II - Legenda je zpět 6.6.2006 21:24  1354
huh, tvx, KdokolivTak uz je to OK, zrejme nejaka zrada v konfiguraci, admin se v tom trochu povrtal a uz to chodi. Dik za nasmerovani na spravnou stopu.
anonym 6.6.2006 18:52  1353
Pomůže někdo s kodem k databázi?
anonym 6.6.2006 17:57  1352
:-) OK. Script na výpis z databáze už mám. Ale používal jsem ho k jiné aplikaci. Teď mám získaná data z teploměru, která se ukládají pomocí php do txt souboru, to je ok ale nevím jak to navázat na databázi.
mach 6.6.2006 17:51  1351
Jestli tohle neumis udelat, tak k cemu bude, ze ti to nekdo nepise, kdyz potom pochybuju, ze s tema datama v databazi budes umet pracovat?
anonym 6.6.2006 17:33  1350
pomocZdravím. Potřebuji PHP kod který načte data ze souboru txt a obsah uloží do databáze. Jsem začátečník tak bude-li někdo ochotnej to napsat. Moc dík.
mach 5.6.2006 20:16  1349
pro upresneni - vlastni handler dokaze osetrit jen nektere chyby (rozhodne ne vsechny ne-runtime)

[ 874 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt