Skocz do zawartości
Zaloguj się, aby obserwować  
Gość mpm1122

[MySQL][PHP]Zmniejszenie jednego rekordu i zwiększenie drugiego

Polecane posty

Gość mpm1122

Witam od razu przejdę do rzeczy . Mam pytanie jak zrobić aby z jednego rekordu zmniejszyło wartość podaną w textboxie i zwiększyła ją o tyle samo drugiemu rekordowi którego nazwa została podana też w textboxie .

Przykład :

Adam ma 200 zł na koncie daje Alkowi 100 . Alek sumie ma na koncie 200 , a Adam 100 .

Kod PhP :

 

 

<?php
ob_start();
session_start();
include('inc/db.php'); //plik odpowiedzialny za połączenie z baza
$login = $_SESSION['login'];
$result = mysql_query("SELECT * FROM bank WHERE username = '$login'");
($row = mysql_fetch_object($result))

?>

 

Czy ktoś może mi wyjaśnić jak coś takiego zrobić ?

Edytowano przez Miłosz (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Chcesz żeby tak wyglądało polecenie w textbox?

Adam ma 200 zł na koncie daje Alkowi 100 . Alek sumie ma na koncie 200 , a Adam 100 .

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

$roznica = 100;
$result = mysql_query("UPDATE bank SET kasa = kasa - '$roznica'  WHERE user = 'adam'");
$result2 = mysql_query("UPDATE bank SET kasa = kasa + '$roznica'  WHERE user = 'alek'");

 

o to chodzi?

 

Ed

Edytowano przez ednet (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Masz na myśli coś takiego jak przelew ?

Czyli wpisuje

Do kogo przelew:

Kwota:

I wtedy Nadawcy odejmuje kwotę podaną, a użytkownikowi podanemu w pierwszym polu dodaje tą kwotę ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

<?php

$kwota = $_POST['kwota']

$user = $_POST['user']

?>

<input name="kwota" />

<input name="user" />

<?php
mysql_query("UPDATE user SET pieniadze = pieniadze - '$kwota'  WHERE login = '$login'");
mysql_query("UPDATE user SET pieniadze = pieniadze + '$kwota'  WHERE login = '$luser'");
?>

Masz zarys to nie jest poprawny kod np. inputy ponieważ inaczej się nie nauczysz. Powodzenia :) Jak nie dasz sobie rady to powiedz poprawie ;]

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość mpm1122

Wykonałem coś takiego :

//Założenia: Adam jest użytkownikiem, który jest zalogowany i jego login siedzi pod zmienną $login. Alek jest innym użytkownikiem istniejącym w bazie danych 
ob_start();
session_start();
include('inc/db.php'); //plik odpowiedzialny za połączenie z baza
$login = $_SESSION['login'];
$receiver = 'Alek';  //nazwa uzytkownik ktory ma (w tym przypadku) otrzymac kase
$value = 100; //ile kasy ma byc zabrane od Adama i  dane Alkowi
$query = mysql_query("UPDATE iConomy SET money = money + '$value' WHERE username = '$receiver'");
if($query) { //sprawdzam czy udało sie dodac kase dla Alka
$query = mysql_query("UPDATE iConomy SET money = money - '$value' WHERE username = '$login'"); //zabieram kase Adamowi
}
else echo "Something went wrong!";

Jak to oceniacie ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak, ale zabranie kasy może nie wyjść i wtedy obydwie osoby mają pieniążki.

 

Może przy okazji przejść na PDO?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Jeszcze dodaj sprawdzenie czy Adam ma tyle kasy żeby dać je Alkowi :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość mpm1122

A teraz jak oceniacie ten skrypt :

$ile = 100; // przelew na 100 zł.
$id_od = 101; // użytkownik, który płaci
$id_dla = 102; // użytkownik, który otrzymuje
$baza = mysql_connect("localhost", "1", "123456");
if ($baza) {
 $wynik = mysql_select_db("iConomy1");
 if ($wynik) {
// zaczynamy transakcję
mysql_query("BEGIN");
$blad=0;
// obsługa pierwszej operacji (zabieramy)
$wynik = mysql_query(
     "UPDATE iConomy SET kwota=kwota-$ile WHERE id=$id_od AND kwota >= $ile");
if (mysql_affected_rows()<>1) $blad++;
// obsługa drugiej operacji (dajemy)
$wynik = mysql_query(
  "UPDATE iConomy SET kwota=kwota+$ile WHERE id=$id_dla");
if (mysql_affected_rows()<>1) $blad++;
// zatwierdzamy lub odrzucamy zmiany
if ($blad>0) mysql_query("ROLLBACK");
else mysql_query("COMMIT");
echo "Błędy podczas wykonywania zapytań: $blad";
 }
 mysql_close($baza);
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jako sprawdzenie bym dał:

if ($pieniadze < $ile) {
echo Nie posiadasz takiej kwoty ;}
else {
//przelew
;}

 

[EDIT]

 

+ do tego sprawdzenie czy liczba nie jest ujemna (dzieją się cuda niewidy)

Edytowano przez SaVaGe123 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×