Autor | Zpráva | ||
---|---|---|---|
xenko Profil |
Dobrý den, potřeboval bych pomoc..., jde o to že jsem si udělal refferal systém a asi jsem se zasekl na tak triviální věci že už fakt nevím.
public function overGET($user) { $overil = array('user' => $user,); // Narve do ověril to co se nachází v GETu $overil = Db::dJeden(' SELECT jmeno FROM uzivatele WHERE jmeno = ? ', array($user)); $ref = Db::dJeden(' SELECT ref FROM uzivatele WHERE jmeno = ? ', array($overil)); $addp = 1 + $ref; $ref = $addp; $uzivatel = array( 'ref' => $ref, ); if ($overil) // Pokud v ověřil něco je tak dostane point { Db::pridej('uzivatele', $uzivatel, 'WHERE jmeno = ?', array($user)); } } Db public static function dJeden($dotaz, $parametry = array()) { $navrat = self::$spojeni->prepare($dotaz); $navrat->execute($parametry); return $navrat->fetch(); } public static function pridej($tabulka, $hodnoty = array(), $podminka, $parametry = array()) { return self::dotaz("UPDATE `$tabulka` SET `". implode('` = ?, `', array_keys($hodnoty)). "` = ? " . $podminka, array_merge(array_values($hodnoty), $parametry)); } |
||
Joker Profil |
xenko:
Co vrátí to volání dJeden a jak vypadají konečné dotazy posílané do databáze? Proč se to dělá tak složitě, místo jednoduše UPDATE uzivatele SET ref = ref + 1 WHERE … ?
|
||
xenko Profil |
#3 · Zasláno: 8. 10. 2014, 20:05:54
Tak o téhle možnosti jsem nevěděl, ale stejně by mě zajímalo proč to tímhle způsobem nejde, vím že mi to vrací pole , ale už nevím jak to z toho pole dostat do jedné proměnné kterou chci a pak jí jen zvětšit a následně vložit do Db.
|
||
Tori Profil |
#4 · Zasláno: 8. 10. 2014, 21:25:26
Metoda
dJeden vrací zřejmě celý první řádek, tak si přidejte metodu, která bude vracet hodnotu z prvního sloupce v prvním řádku dat (předpokládám, že jde o PDO):
public static function dPrvniSloupec($dotaz, $parametry = array()) { $navrat = self::$spojeni->prepare($dotaz); $navrat->execute($parametry); return $navrat->fetchColumn(); } |
||
xenko Profil |
Hmm...stále to nefunguje, tak já už nevím vytvořil jsem už 100 způsobu a nic mi nejde, asi jsem ztracený případ. (ty začátky jsou zlo...)
|
||
Joker Profil |
#6 · Zasláno: 9. 10. 2014, 07:07:30
Z „nefunguje“ nepoznáme, kde je problém.
|
||
xenko Profil |
#7 · Zasláno: 9. 10. 2014, 14:23:34
;) Vyřešeno stačilo mi napsat že mam na to udělat další funkci a v té vyžadovat tu hodnotu. (ale nechápu proč to nešlo dát do jednoho...)
|
||
Tori Profil |
#8 · Zasláno: 9. 10. 2014, 14:59:13
Asi by šlo použít i tohle:
$overil = Db::dJeden(' SELECT jmeno FROM uzivatele WHERE jmeno = ? ', array($user)); $overil = $overil['jmeno']; |
||
Časová prodleva: 10 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0