• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Aktualizacja danych w bazie danych php

Object Storage Arubacloud
+1 głos
1,317 wizyt
pytanie zadane 18 maja 2017 w PHP przez Sevrento Początkujący (250 p.)

Witam

Otóż próbowałem wielu metod ale żadna z nich nie odnosiła wymierzonego skutku , chodzi konkretnie o kod w php który by powodował aktualizacje rekordu w bazie mysql z wartości 0 na 1 jeżeli id użytkownika wynosiłby tą samą wartość co wcześniej w rejestracji zostało wprowadzone do bazy mysql

Z góry dziękuję

komentarz 18 maja 2017 przez efiku Szeryf (75,160 p.)
Myślę, nie próbowałeś nawet szukać w sieci. Tego jest masa. Poszukaj pod: PHP PDO  update record. Zresztą tu nie ma nic trudnego. Popatrzeć jak działa PDO i poćwiczyć z zapytaniami SQL.

:-)
komentarz 18 maja 2017 przez Sevrento Początkujący (250 p.)
właśnie szukałem :) , chodzi mi o funkcję where gdzie wskazuję warunek kiedy id użytkownika jest równe temu co wcześniej zostało wprowadzone w bazie danych mysql - informacje o użytkowniku

1 odpowiedź

–1 głos
odpowiedź 18 maja 2017 przez Chess Szeryf (76,710 p.)
wybrane 18 maja 2017 przez Sevrento
 
Najlepsza
update zakupy set ile=88 where ile=0;

Czyżbyś zapomniał o instrukcji update?

Czy mógłbyś nakreślić o co ci dokładnie chodzi, bo nie wiem, czy zrozumiałem.

Może spróbuj tak:

Zanim record się zaaktuazliuje na inny, to niech wpierw go zapisze do pliku.txt, a następnie z tego pliku odczyta zawartość i z tej zawartości pliku.txt odczytasz jakie było poprzednie ID, czy coś tam i dopiszesz do warunku.

Albo może z logów bazy uda ci się to wykonać, nie wiem.

komentarz 20 maja 2017 przez Chess Szeryf (76,710 p.)

In an INSERT trigger, only NEW.col_name can be used; there is no old row. In a DELETE trigger, only OLD.col_name can be used; there is no new row. In an UPDATE trigger, you can use OLD.col_name to refer to the columns of a row before it is updated and NEW.col_name to refer to the columns of the row after it is updated.

komentarz 20 maja 2017 przez Sevrento Początkujący (250 p.)
A w php tą fukcję tigger ma wprowadzić po where ?
komentarz 20 maja 2017 przez Chess Szeryf (76,710 p.)
edycja 21 maja 2017 przez Chess
<?php 
clearstatcache();

$mysqli = new mysqli('localhost', 'root', '', 'zakupy');

$mysqli->query("UPDATE zakupy SET ile=5000 where ID=15;");
printf($mysqli->affected_rows);

$t = file_get_contents('orders2.txt');
//echo $t;
$result = $mysqli->query("SELECT * FROM zakupy where id=\"{$t}\"");

$row = $result->fetch_assoc();
 
echo 'witaj '.$row['jaki_towar'];
 
$mysqli->close();
?>
delimiter //
CREATE TRIGGER moja_nazwa_triggera BEFORE UPDATE ON zakupy
for each row
begin
select ile from zakupy where id=15 into outfile 'C:/xampp/htdocs/sarna/orders2.txt';
end;
//
delimiter ;
id jaki_towar ile
15 gruszka 2000
19 czeresnia 2000
20 orzech laskowy 2000
23 pomarancza 2000
24 mandarynka 2000
26 cukinia 2000
27 tatarak 2000

Testuj tak:

Zmień linię z:

$mysqli->query("UPDATE zakupy SET ile=5000 where ID=15;");

na:

$mysqli->query("UPDATE zakupy SET ile=15 where ID=15;");

Następnie zmień na:

$mysqli->query("UPDATE zakupy SET ile=33 where ID=15;");

Po każdej aktualizacji rób refresh strony.

I zobacz rezultat w pliku o nazwie orders2.txt.

Przed $mysqli->close(); dodaj tę linię:

unlink('orders2.txt');

A po $t = file_get_cont...., tę:

echo $t;

I zmieniaj wartości, np. z 104 zmień na 15, a następnie zmień na 77 i sprawdź wynik w przeglądarce. Oczywiście po każej aktualizacji rób refresh strony.

komentarz 20 maja 2017 przez Sevrento Początkujący (250 p.)
edycja 22 maja 2017 przez Sevrento

No ok , z chęcią przetestuję tą technologię z tym tiggerem , a te id po tym where to jaki mam wprowadzić kod który zamiast liczby wybierałaby np. email który został wprowadzony taką funkcją wcześnie w rejestracji ?

if ($polaczenie->query("INSERT INTO uzytkownicy VALUES (NULL, '$nick', '$haslo_hash', '$email', 0 , '$confirmcode')"))   

Otóż kombinuję taką no weryfikacje rejestracji emailem i dlatego zależy mi na tej funkcji , tak poza tym bardzo mi się przyda ta funkcja z tiggerem :)

 

 

komentarz 22 maja 2017 przez Chess Szeryf (76,710 p.)
edycja 22 maja 2017 przez Chess
select email from tbl_name where id="$moja_wartosc_w_pliku.txt";

Chyba to powinno pomóc. Trigger po aktualizacji zapisze Ci poprzednią wartość do pliku i ty się do niej odwołasz.

Jeśli chcesz, aby trigger zadziałał skoro używasz insert'a, to chyba musisz lekko go zmodyfikować z tej linii:

(...) BEFORE UPDATE ON (...)

na:

(...) BEFORE INSERT ON (...)

 

Podobne pytania

0 głosów
2 odpowiedzi 918 wizyt
pytanie zadane 7 stycznia 2017 w PHP przez Corleone97 Początkujący (450 p.)
+1 głos
1 odpowiedź 110 wizyt
0 głosów
1 odpowiedź 305 wizyt

92,615 zapytań

141,465 odpowiedzi

319,782 komentarzy

61,997 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...