Skocz do zawartości
SOYER

Arduino MEGA i BLYNK, LCD odchodzi do lamusa...

Pomocna odpowiedź

Gdybyś delikatnie i ociupinkę zechciał doprecyzować swoją prośbę, to z pewnością pozwoliłoby uniknąć niedomówień i nieścisłości w naszej jakże owocnej współpracy 😉

Udostępnij ten post


Link to post
Share on other sites

Ale co ja mam doprecyzowywać?

Masz stronę działającą.

Masz kod prawie działający.

Masz bazę danych (taką jaką sobie zaprojektowałeś).

Zadanie: złożyć to wszystko do kupy.

Funkcję getCurrentStatus pokazywałem, mam nadzieję że żadnego babola nie strzeliłem bo nawet nie sprawdzałem kodu, ale mniej więcej tak powinna wyglądać.

Zakładam (nie wiem czy słusznie), że jakieś minimum wiedzy o JavaScripcie (lewe kółko boczne) posiadasz, o PHP (prawe kółko boczne) też, więc czas odkręcić boczne kółka od rowerka i spróbować jeździć bez nich (tzn. bez pytania na forum "czemu to nie działa" za każdym błędem składni).

 

 

 

Udostępnij ten post


Link to post
Share on other sites
13 godzin temu, ethanak napisał:

doprowadź całość do takiego stanu.... 

a starczyło napisać, że mam wywalić random i wstawić pobieranie z tabelki... 

Wieczorem... 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
<?php
include 'logMeteo.php';
$typ = $_GET['nazwa'];
$b = $_GET['mian'];
$polaczenie = new mysqli($host, $db_user, $db_pass, $db_name);
if($polaczenie->connect_errno!=0){
    echo "Error: ".$polaczenie->connect_errno."Opis: ".$polaczenie->connect_error;
}
else{
    function getCurrentStatus($typ) {
    $typ = $mysqli->real_escape_string($typ);
    $sqlTemp="SELECT aktualna FROM meteo WHERE czujnik = '$typ'";
    $temperatura=$polaczenie->query($sqlTemp);
    $polaczenie->close();
    return $temperatura;
    }
    $typ = $_REQUEST['typ'];
    $result = getCurrentStatus($typ);

echo $result."  ".$b;
}

?>

oczywisćie w index.html zmieniłem wysyłaną daną name na taką jak jest nazwany czujnik w tabeli...

Gdzie widzisz błąd? i może małe wytłumaczenie...;-)

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites

Pomijając fakt deklaracji funkcji w bloku else...

Co zwraca mysqli::query?

Porównaj swój kod z tym, który pokazałem...

Jakbyś nie doszedł do tego gdzie jest różnica - zajrzyj tutaj...

Tak na przyszłość - konstruuj to nieco inaczej:

<?php
  
  // tu jest miejsce na jakieś inicjalizacje, np. mysqli
  // przykładowo:
    require_once "data.php";
    $polaczenie = new mysqli($host, $db_user, $db_pass, $db_name);
    if($polaczenie->connect_errno!=0) {
    	die("Error: ".$polaczenie->connect_errno."Opis: ".$polaczenie->connect_error);
    }

  // tu już mamy pewność że połączenie jest prawidłowe.
  // wrzucamy deklaracje funkcji...
function cośtam($parametr)
{
  global $polaczenie;
  ...
}

// i na koniec jakiś kod wykonywany poza funkcją

echo cośtam($jakiśparametr);

?>

Chodzi wyłącznie o czytelność.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
<?php
include 'logMeteo.php';
$typ = $_GET['nazwa'];
$b = $_GET['mian'];
$polaczenie = new mysqli($host, $db_user, $db_pass, $db_name);
if($polaczenie->connect_errno!=0){
    die("Error: ".$polaczenie->connect_errno."Opis: ".$polaczenie->connect_error);
}

    function getCurrentStatus($typ) {
    global $polaczenie;
    $typ = $mysqli->real_escape_string($typ);
    $sqlOdczyt="SELECT aktualna FROM meteo WHERE czujnik = '${typ}'";
    $odczyt=$polaczenie->query($sqlOdczyt);
    $polaczenie->close();
    return $odczyt;
    }
    $typ = $_REQUEST['typ'];
    $result = getCurrentStatus($typ);

echo $result."  ".$b;

Zapomnialem o nawiasach  w '${typ}' , zmieniłem układ kodu...

$polaczenie->query ma zwrócić zawartość komórki z tabeli...

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
10 minut temu, SOYER napisał:

$polaczenie->query ma zwrócić zawartość komórki z tabeli...

To chyba pobożne życzenie... zajrzałeś do linku który podałem? Czy może zajrzałeś i skończyłeś na piątej linijce bo było nudne? Więc pozwól że zacytuję:

Zwracane wartości

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

 

Edytowano przez ethanak

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

no właśnie czytałem i co z tym  mysqli_result object, że zwraca coś jako obiekt? co z tym zrobic? chodzi o tego fetcha?

 

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites

Kur... czytać nie umiesz? Na link do mysqli_result to już nie chciało się wleźć?

Obiekt mysqli_result to obiekt mysqli_result, a nie jakieś wydumane komórki z tabeli. Miałeś kod na talerzu podany - nie, mimo że nie masz zielonego pojęcia o co chodzi musiałeś sobie o dwie linijki uprościć bo za dużo pisania?

Wybacz, ja naprawdę nie mam czasu kopiować Ci na forum kawałków dokumentacji, które powinieneś dawno przeczytać.

Tak ostatni raz:

Rezultat wywołania query to iterator, za pomocą którego możesz sobie wyciągnąć (właśnie poprzez fetch_*) kolejne wiersze wyniku. Pamiętaj, że query wcale nie musi zwrócić jednego wiersza, może być ich od zera do "bardzo dużo" (przy czym zero to wcale nie błąd).

Przemyśl sobie co by było, gdybyś zadał pytanie "select * from meteo".

 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
<?php
include 'logMeteo.php';
$typ = $_GET['nazwa'];
$b = $_GET['mian'];
$polaczenie = new mysqli($host, $db_user, $db_pass, $db_name);
if($polaczenie->connect_errno!=0){
    die("Error: ".$polaczenie->connect_errno."Opis: ".$polaczenie->connect_error);
}
   $typ = $_REQUEST['typ'];
    function getCurrentStatus($typ) {
      global $polaczenie;
      $typ = $mysqli->real_escape_string($typ);
      $sqlOdczyt="SELECT aktualna FROM meteo WHERE czujnik = '${typ}'";
      $odczyt=$polaczenie->query($sqlOdczyt);
$row = $odczyt->fetch_row();
      $odczyt->close();
      return $row[0];
    }

   $result = getCurrentStatus($typ);

echo $result.$b;

Nic nie upraszczałem panie nerwowy, sprawdzałem obie wersje i obie nie działają, wkleiłem najpierw jedną to mnie opierdo... a teraz wkleiłem drugą i też czekam na opierd... 😉

Może gdybyśmy razem uwazniej czytali ten wątek, to ja wiedziałbym o co ci chodzi kiedy mnie pytasz czy umiem czytać, a ty wiedziałbyś, że mój angielski jest taki sobie, i zamiast rzucać kurw... to byś wytlumaczył mniej więcej co robią nowe funkcje i podał link do doczytania. Bo tak to masz rację, wklejam i domyślam sie co to powinno robić...;-)

 

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites

A działa?

Jeśli nie działa, to przecież interpreter php pokazuje gdzie masz błąd...

Udostępnij ten post


Link to post
Share on other sites

Jak to to sprawdzić? Ja ładuję pliki prosto do malinki i oglądam na adresie malinki...

Udostępnij ten post


Link to post
Share on other sites

No właśnie tak... ja przecież nie mam dostępu do Twojej malinki więc nie sprawdzę, prawda? Muszę polegać na tym co mi piszesz.

A więc jeszcze raz: działa czy nie? Pokazuje prawidłowe wartości z bazy danych?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

 

Nie pokazuje, jakby pokazywało to bym nie zawracał głowy...

Wrzuciłem to na XAMPPa u mnie w laptopie, w logMeteo zmieniłm $host = "192.168.254.100"; to mam komunikat , że nie można nawiązać połączenia bo komputer docelowy aktywnie go odmawia...

17 minut temu, SOYER napisał:

Jak to to sprawdzić?

Czyli jak sprawdzic te błędy...

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Czekaj, bo nie bardzo rozumiem.

Bazę danych masz na malince, a uruchamiasz stronę na Windowsie, tak?

Jeśli nie możesz nawiązać połączenia z bazą to znaczy, że użytkownik którym się logujesz nie ma prawa się z nią łączyć. Musisz stworzyć użytkownika dla swojej sieci a nie localhosta (w phpmyadminie jak się na roota zalogujesz to masz różne opcje, jeśli nie rozumiesz żadnej to wybierz '%' czyli dowolny host).

Bo jak mniemam na samej malince działa?

edycja

Dobra... pokaż gdzie na githubie masz najnowszą wersję strony, zainstaluję u siebie i zobaczę co mu nie pasuje.

 

Edytowano przez ethanak

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...