| 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: 11 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0