Witma wszystkich,
czy można w tabeli zapisać pytanie SQL ażeby automatycznie obliczało różnicę między najnowszym rekordem a poprzednim (np. z kolumny "wskazanie") i wpisywało do kolumny (dobowy) w tej samej tabeli ?
Nie musisz robić tego w MySQL.
Przed wstawieniem nowego rekordu pobierz ostatnią wartość (wartość 1). Wstaw nowy rekord z wartością (wartością 2) i różnicą (wartość 2 - wartość 1).
Hej trueblue, czy mógłbyś podać jakiś mały przykład?
Jeśli wstawiasz rekordy z poziomu skryptu PHP, to przed wstawieniem pobierasz ostatni rekord z wartością (SELECT .... ORDER BY DESC LIMIT 0,1), zapamiętujesz ją i kiedy robisz INSERT, to wstawiasz nową wartość oraz różnicę nowej wartości tej z SELECT.
ok pobieram ostatni wpis:
<?php require("connect.php"); $sql_ostatni ="SELECT wskazanie FROM Przeplywy ORDER BY reading_date DESC LIMIT 0,1"; $result_ostatni = $conn->query($sql_ostatni); if ($result_ostatni->num_rows > 0) { while($row = $result_ostatni->fetch_assoc()) { $output_ostatni=" "." ".$row['wskazanie']; } } ?>
<http://december.com/html/4/element/div.html class="col-md-4"> <http://december.com/html/4/element/div.html class="form-group"> <http://december.com/html/4/element/label.html>Ostatnie wskazanie:</http://december.com/html/4/element/label.html> <http://december.com/html/4/element/input.html type="text" name="wpis_ostatni" value="<?php echo $output_ostatni ." m3";?>" class="form-control"> </http://december.com/html/4/element/div.html> </http://december.com/html/4/element/div.html>
<?php require("connect.php"); $date = $_POST['wpis_data']; $wskazanie = $_POST['wpis_wskazanie']; $ostatni = $_POST['wpis_ostatni']; $sql_dodaj = "INSERT INTO Przeplywy(id, reading_date, wskazanie,dobowy) VALUES ('', '$date','$wskazanie'-'$ostatni')"; if ($conn->query($sql_dodaj) === TRUE) { http://www.php.net/echo "Wpis dodano pomyślnie !"; } else { http://www.php.net/echo "Error: " . "<br>" . $conn->error; } ?>
1. Skoro pobierasz jeden rekord, to w jakim celu w pętli?
2. W jakim celu doklejasz spacje do wartości?
3. Po co wyświetlasz ostatnią wartość w formularzu, jako wartość do edycji? A jeśli ją zmienię i zatwierdzę formularz?
4. Wyświetl sobie $sql_dodaj i sprawdź jak wygląda zapytanie.
5. Używaj PDO i bindowania wartości (https://www.php.net/manual/en/book.pdo.php).
Dzięki kolego, znowu mi pomogłeś, bo naprowadziłeś mnie na trop, pogłówkowałem trochę i działa...
Faktycznie spacje są bez niepotrzebne i bez pętli też się da.
Uczę się tego tak hobbystycznie chociaż mam 47lat i niektóre wiadomości czy zagadnienia przychodzą mi trudniej. Dobrze że są fora i tacy ludzie...
A co do Używaj PDO i bindowania wartości to muszę zaczerpnąć tematu....
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)