NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Marek Burda
Člen
Avatar
Marek Burda:21.4.2017 21:54

Zdravíčko tak som tu znova :)
Pracujem na referral systéme na svojej stránke kde ked sa nový človek registruje na stránku, a pri registrácii zadá správny refferal kód, hráč, ku ktorému daný referral kód patrí získa mince. Pozeral som natom na nete pravdepodobne sa jedná o mysli multi query pretože predtým posielam INSERT do db ktorý tam vytvorí nového užívateľa. To znamená že už nedokážem vytvoriť nový požiadavok / udpate na databázu kedže tam už jeden predtým je. Nechcel by som to moc komplikovať aby som potom mohol jedndoucho zmeniť to, že tie mince dostane človek ktorý sa registruje napríklad. Takže to nemôžem prirátať hned v jednom požiadavku na db a to v tom inserte (v skratke potrebujem aby prebehli obidve požiadavky)

Tu je kód ktorý sa spustí ak php zistí že zadaný referral kód patrí niekomu z registrovaných hráčov.

if($reg_referral != ""){
                        //selectujem človeka ku ktorému patrí referral kod
                       $select = mysql_query("SELECT * FROM tb_players WHERE inv_referral='$reg_referral'");
                       $row = mysql_fetch_assoc($select);
                        //tu sa snažím pripočítať 200 coinov užívateľovi ku ktorému patrí referral kod
                       $sql = "UPDATE tb_players SET coins=coins+'200' WHERE inv_referral='$reg_referral'";
                       echo $row["name"]; //len vypísanie človeka ku ktorému patrí referral kód
                       }

Snažil som sa používať mysqli no stále mi to hádže samé errory tak sa tomu aktuálne snažím vyhnúť. Nemám to ešte moc naštudované

 
Odpovědět
21.4.2017 21:54
Avatar
Odpovídá na Marek Burda
Matúš Petrofčík:21.4.2017 22:06

...predtým posielam INSERT do db ktorý tam vytvorí nového užívateľa. To znamená že už nedokážem vytvoriť nový požiadavok / udpate na databázu kedže tam už jeden predtým je. ...

No nič ti nebráni urobiť 2 požiadavky za sebou :)

  1. pridáš nového užívateľa
  2. ak niekomu patrí taký referal kód, pripočítaš mu 200 mincí
  3. ...

Nemusíš to dávať do jednoho SQL dotazu. Teda o to sa snažíš ak som to správne pochopil.

Nahoru Odpovědět
21.4.2017 22:06
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Marek Burda
Matúš Petrofčík:21.4.2017 22:09

http://php.net/…ql-query.php

$sql1 = "SELECT * FROM tb_players WHERE inv_referral='$reg_referral'"; // bacha, obsahuje SQL injection!
$result = mysql_query($sql1);
$row = mysql_fetch_assoc($result);

$sql2 = "UPDATE tb_players SET coins=coins+200 WHERE inv_referral='$reg_referral'"; // bacha, obsahuje SQL injection!
mysql_query($sql2);

echo $row["name"]; //len vypísanie človeka ku ktorému patrí referral kód
Editováno 21.4.2017 22:11
Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět
21.4.2017 22:09
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Marek Burda
Člen
Avatar
Marek Burda:21.4.2017 22:16

Práveže som sa to nesnažil dávať do jedneho kódu no nejako mi to nefungovalo oddelene. Znovu Matúš od srdca ďakujem :) rešpekt :)

 
Nahoru Odpovědět
21.4.2017 22:16
Avatar
Odpovídá na Marek Burda
Matúš Petrofčík:21.4.2017 22:20

Inak, než budeš pokračovať, vážne si preštuduj toto: http://www.itnetwork.cz/php/databaze, dokonca hneď v druhej časti je predstavené PDO, s ktorým sa v PHP pracuje jednoducho a hlavne bezpečnejšie. Myslím že s databázou začínaš a nechcem aby si tvoril takto "nevedomky" nebezpečné aplikácie, neprogramoval štýlom pokus-omyl, a hlavne aby si nemusel o niekoľko dní všetko prepisovať len preto, že teraz si sa to "na chvíľu" rozhodol preskočiť :)

A není zač ;) aj tak nemám nič lepšie na práci :D

Nahoru Odpovědět
21.4.2017 22:20
obsah kocky = r^2 ... a preto vlak drnká
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.