Autor Zpráva
fifa
Profil
Zdravim,Zkouším udělat obyčejnou nijak náročnpou webovou hru a potřeboval bych udělat aby se u jednotlivích uživatelů zapamatovávali peníze. Je možné to připojit na databází na kteréje přihlašovací systém .Zdrojáky přih. systému jsou zde Zjištění dat z Mysql mohla by se tam vytvořit ještě jedna kolonka která by jsi pamatovala peníze popřípadě aby šlo přidávat/ubírat peníze

Předem děkujii za odpovědi a zdrojáky.

Moderátor Alphard: Nevkládejte odkazy do [pre], potom nejsou klikatelné.
Dan Charousek
Profil
fifa:
mohla by se tam vytvořit ještě jedna kolonka která by jsi pamatovala peníze
Ano.

Předem děkujii za odpovědi a zdrojáky.
Nastínil jsi problém a sám sis na něj odpověděl. Nikdo to za tebe psát nebude. Pokud narazíš při programování na nějaký problém, věřím, že ti zdejší diskutéři mile rádi pomohou.
fifa
Profil
V podstate to chapu ale nevim jak pricitat nebo odctitat z databaze
Dan Charousek
Profil
UPDATE tabulka SET penize = penize - 10 WHERE id = 1
U záznamu s ID 1 odečte 10 ze sloupce penize.
fifa
Profil
Neudelal by mi nekdo zivou ukazku kde by se normal zadali udaje do databaze a tlacitkem by se ulozily data. Kdo by mi udelal zivou ukazku by byl uveden jako pomocny vyvojar ve hre .
Predem dekuji a omlouvam se za diraktiku
Fisir
Profil
Reaguji na fifu:
<?php
if(!isset($_POST['howmuch'])){
?>
    <form action="" method="post">
        <label>Kolik odečíst: <input type="number" name="howmuch"></label><br>
        <label>Komu: <input type="number" name="user"></label><br>
        <input type="submit">
    </form>
<?php
} else {
    $db = new mysqli('localhost', 'root', '', 'hra');
    $statement = $db->prepare('UPDATE users SET money = money - ? WHERE id = ?');
    $statement->bind_param('ii', $_POST['howmuch'], $_POST['user']);
    if($statement->execute()){
        echo('Bylo odečteno: '.intval($_POST['howmuch']).' peněz uživateli '.intval($_POST['user']).'.');
    } else {
        echo('Odečítání se nezdařilo.');
    }
}
?>
fifa
Profil
Dík zkusim kdyžtak pod jakym menem uvést jako pomocného vývojáře?
Fisir
Profil
Reaguji na fifu:
Jestli máš tu potřebu, tak Fisir. Nicméně tenhle kód je jenom hrubý nástřel, který si budeš muset upravit sám.
fifa
Profil
Nějak my to nejde nemůže by někdo přechroustat chybu

Warning: mysqli::mysqli(): (28000/1045): Access denied for user ' u429097033_poku'@'10.1.2.16' (using password: YES) in /home/u429097033/public_html/pokus.php on line 11 Warning: mysqli::prepare(): Couldn't fetch mysqli in /home/u429097033/public_html/pokus.php on line 12 Fatal error: Call to a member function bind_param() on a non-object in /home/u429097033/public_html/pokus.php on line 13


nevim proč tam je to poku ve zdrojaku je pokus
Keeehi
Profil
fifa:
Access denied
To ti říká, že s tebou zadanými údaji ten script nebyl schopen se připojit k daabázi. akže zadej správné údaje. Ten následný „Fatal error“ je důsledkem nepovedeného připojení.
fifa
Profil
Ale já ve Zdrojáku mám u429097033_pokus a tam je napsáno u429097033_poku proč se to hádá

koukněte jestli to mám dobře:?

$db = new mysqli('hostitel', 'jméno k db', 'heslo k bd', 'hra');

a co je nakonci ta hra to je tabulka nebo co ?
Keeehi
Profil
fifa:
Ale já ve Zdrojáku mám u429097033_pokus a tam je napsáno u429097033_poku proč se to hádá
MySQL má limit na délku jména. Z dokumentace jsem zjistil, že by to nejčastěji mělo být 16 znaků. Pokud si mám tipnout tak někde něco počítá do této délky i ten nulový ukončující byte pro řetězce a proto se to krátí jen na 15 znaků. Pokud si změníš přihlašovací jméno na něco dlouhého 15 znaků, mohlo by to problém vyřešit.

a co je nakonci ta hra to je tabulka nebo co ?
Kdyby ses podíval do manuálu, tak bys zjistil, že to je jméno databáze.
fifa
Profil
Dik to by mohlo byt on skusim


Pořád stejný a to jsem upravil jméno

Warning: mysqli::mysqli(): (28000/1045): Access denied for user ' u429097033_tet'@'10.1.2.16' (using password: YES) in /home/u429097033/public_html/pokus.php on line 11 Warning: mysqli::prepare(): Couldn't fetch mysqli in /home/u429097033/public_html/pokus.php on line 12 Fatal error: Call to a member function bind_param() on a non-object in /home/u429097033/public_html/pokus.php on line 13

ale jmeno už je alespoň celé


jak tady Fisir přidával formulář musim tomu zajistit řádek v db popřípadě jaký ?
Keeehi
Profil
Výborně, doufám, že máš přístup do daabáze i někde bokem. Je bylo by dobrá zjistit, zda máš přístup tam kam chceš. Takže v phpMyAdmin, admineru nebo něčem podobném spusť následující příkaz a to by ti mělo vypsat, kam všude má ten uživatel právo.
SHOW GRANTS FOR ' u429097033_tet'@'10.1.2.16';
fifa
Profil
Php my admin napsal tohle

- Access denied for user 'u429097033_tet'@'localhost' to database 'mysql'
Keeehi
Profil
Že mě to nenapadlo dříve, podle toho uživatelského jména budeš asi někde na hostingu, takže nemáš dostatečná oprávnění. Jak už nějakou dobu webhosting nepoužívám, tak zapomínám že ostatní nemusejí mít na používanými systémy úplnou kontrolu.

Aspoň víme, že přihlásit se můžeš. Doufám, že tam taky vidíš i nějaké databáze. Pro testovací účely si vyber jednu ke které máš přístup (vidíš co je v ní za tabulky atd.)
Na řádku 11 v [#6] použij jedno nebo druhé
mysqli('localhost', 'u429097033_tet', 'tvoje-heslo', 'jmeno-vybrane-databaze');
mysqli('10.1.2.16', 'u429097033_tet', 'tvoje-heslo', 'jmeno-vybrane-databaze');

Alespoň jedna varianta by měla fungovat. Pokud ne, je to spíš pak dotaz na technickou podporu webhostingu s jakými údaji se máš k databázi připojovat.
fifa
Profil
Ja mam vytvorene 4 řádky a do stejne databaze se přihlašuje ješte přih. System
Fisir
Profil
Reaguji na fifu:
Použij místo toho skript:
<?php
require_once(__DIR__.'/config.php');
if(!isset($_POST['howmuch'])){
?>
    <form action="" method="post">
        <label>Kolik odečíst: <input type="number" name="howmuch"></label><br>
        <label>Komu: <input type="number" name="user"></label><br>
        <input type="submit">
    </form>
<?php
} else {
    $db = new mysqli(SQL_HOST, SQL_UZIVATEL, SQL_HESLO, SQL_DATABAZE);
    $statement = $db->prepare('UPDATE users SET money = money - ? WHERE id = ?');
    $statement->bind_param('ii', $_POST['howmuch'], $_POST['user']);
    if($statement->execute()){
        echo('Bylo odečteno: '.intval($_POST['howmuch']).' peněz uživateli '.intval($_POST['user']).'.');
    } else {
        echo('Odečítání se nezdařilo.');
    }
}
?>
fifa
Profil
Těd prozměnu nefunkční hostitel MySql

Warning: mysqli::mysqli(): (HY000/2005): Unknown MySQL server host 'mysqlmoxocz' (1) in /home/u436088760/public_html/okcom.php on line 12 Warning: mysqli::prepare(): Couldn't fetch mysqli in /home/u436088760/public_html/okcom.php on line 13 Fatal error: Call to a member function bind_param() on a non-object in /home/u436088760/public_html/okcom.php on line 14

Ve zdrojáku ale mám mysql.moxo.cz
Keeehi
Profil
fifa:
Zá se mi, že tam chybějí tečky. Teoreticky je možné aby to byla správná adresa, ale velmi nepravděpodobné. Pokud je to však správně, pak s ím nic neuděláš a budeš muset kontaktovat toho u koho máš hosting.
fifa
Profil
Ale ve zdrojaku tečky jsou jakto?
patlal
Profil
Takto?
define("SQL_HOST", "mysql.moxo.cz");
fifa
Profil
Ano takhle to je ve zdrojaku

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0