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!

Diskuze: Pomoc s databázou a php

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
patrik.pa
Člen
Avatar
patrik.pa:21.1.2017 21:50

Zdravím php-čkári. S kamarátmi sa snažíme založiť jednu online browser hru. Máme to skôr pre zábavu. Naše znalosti však viaznu zatiaľ na html/css (2. ročník SŠ). Preto sa obraciam s obrovskou prosbou o pomoc na vás. Využívame jeden engine, ktorý však neobsahuje nejaké funkcie, ktoré by sme chceli. Preto sa rôznym zlepenín kódu a inými kódmi snažím nejaké funkcie do programovať. Zároveň sa tým učím aj php, no po 2 hodinách trápenia sa s PHP/MYSQL/Google si už neviem rady a obraciam sa na odborníkov. Pridali sme kód, v ktorom môžu hráči hrať vyššie nižšie. Radi by sme sa ale napojili na databázu, a keď hráč uhádne, pripočíta mu to 100 a keď neuhádne odpočíta 100 peňazí. V tabuľke to je pod riadok users a stĺpec money. Kód je:
<form name="frmMain" method="POST" action="<?php echo $_SERVER['PHP_SEL­F'] ?>">
<DIV align="center">
<input type="hidden" name="txtRand" value="<?php echo $random_num1 ?>">
<input type="hidden" name="txtNum" value="<?php echo $random_num2 ?>">
<table width=20% cellspacing=0 cellpadding=0 border="0">
<tr>
<td colspan="2">Ďalšie číslo bude: <?php echo $random_num1 ?></td>
</tr>
<tr><td align="center"><in­put class="btn btn-primary" type="Submit" name="subLower" value="Nižšie"></td>
<td align="center"><in­put class="btn btn-primary" type="Submit" name="subHigher" value="Vyššie"></td></tr>

<?php
if (isset($_POST['txtNum'])) {
$randnum = $_POST['txtRand'];
$num = $_POST['txtNum'];

if (isset($_POST['sub­Lower'])) {
if ($num < $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je nižšie, pokračuješ v hre</td></tr>';
if ($num > $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je vyššie, prehral si(</td></tr>';
if ($num == $randnum) echo '<tr><td colspan="2">Číslo je rovnaké</td></tr>';
}
if (isset($_POST['sub­Higher'])) {
if ($num > $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je vyššie, pokračuješ v hre</td></tr>';
if ($num < $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je nižšie, prehral si(</td></tr>';
if ($num == $randnum) echo '<tr><td colspan="2">Číslo je rovnaké</td></tr>';
}
}
Ak by ste vedeli o niečom lepšom, budem rád :) musí to bežať ale všetko na jednej stránke aby to nenačítavalo za každým novú. Hlavne by som bol moc rád, kebyže mi pomôžete s tou databázou a napojením. Vopred ďakujem za každú radu.

 
Odpovědět
21.1.2017 21:50
Avatar
Odpovídá na patrik.pa
Matúš Petrofčík:21.1.2017 22:01

Na kód prosím používaj tagy pre kód. Skopírujem tu tvoj kód aby sme sa v tom vyznali:

<form name="frmMain" method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    <DIV align="center">
        <input type="hidden" name="txtRand" value="<?php echo $random_num1 ?>">
        <input type="hidden" name="txtNum" value="<?php echo $random_num2 ?>">
        <table width=20% cellspacing=0 cellpadding=0 border="0">
            <tr>
                <td colspan="2">Ďalšie číslo bude: <?php echo $random_num1 ?></td>
            </tr>
            <tr>
                <td align="center">
                    <input class="btn btn-primary" type="Submit" name="subLower" value="Nižšie">
                </td>
                <td align="center">
                    <input class="btn btn-primary" type="Submit" name="subHigher" value="Vyššie">
                </td>
            </tr>

<?php
if (isset($_POST['txtNum'])) {
    $randnum = $_POST['txtRand'];
    $num = $_POST['txtNum'];

    if (isset($_POST['subLower'])) {
        if ($num < $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je nižšie, pokračuješ v hre</td></tr>';
        if ($num > $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je vyššie, prehral si(</td></tr>';
        if ($num == $randnum) echo '<tr><td colspan="2">Číslo je rovnaké</td></tr>';
    }
    if (isset($_POST['subHigher'])) {
        if ($num > $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je vyššie, pokračuješ v hre</td></tr>';
        if ($num < $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je nižšie, prehral si(</td></tr>';
        if ($num == $randnum) echo '<tr><td colspan="2">Číslo je rovnaké</td></tr>';
    }
}

Všimol som si že kód nie je celý (chýba zvyšok formuláru). Taktiež ste mali v kóde <in-put ... > namiesto <input ... > (nemá tam byť tá pomlčka!!!)

Editováno 21.1.2017 22:03
Nahoru Odpovědět
21.1.2017 22:01
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na patrik.pa
Matúš Petrofčík:21.1.2017 22:06

A na začiatok, seriózne odporúčam naštudovať si tieto 3 tutoriály ;) ja som to pred 3 rokmi zvládol za týždeň a postavil som celkom solídnu stránku. Link

http://www.itnetwork.cz/…bove-stranky
http://www.itnetwork.cz/php/zaklady
http://www.itnetwork.cz/php/databaze

Ste druháci na SŠ, myslím že to zvládnete ľavou zadnou. Potom Vám tvorba webu pôjde jedna radosť.

Editováno 21.1.2017 22:07
Nahoru Odpovědět
21.1.2017 22:06
obsah kocky = r^2 ... a preto vlak drnká
Avatar
patrik.pa
Člen
Avatar
patrik.pa:22.1.2017 10:50

V kóde som zabudol doplniť

$random_num1 = rand(1,100)

Inak je kód celý a funguje mi. Jediné, v čom je problém, je napojenie na tú databázu. A ďakujem za prerobenie ukážky, už sa tým budem riadiť :)

 
Nahoru Odpovědět
22.1.2017 10:50
Avatar
Odpovídá na patrik.pa
Matúš Petrofčík:22.1.2017 12:31

Tak, ako... ak musím ťa priateľsky upozorniť, že ak odpovedáš na niekoho príspevok, použi tlačítko "Odpovědět" aby ten daný človek dostal upozornenie jo? Do budúcna :)

Vážne odporúčam preštudovať tie tutoriály, v kóde máš niekoľko chýb a to že funguje je len šťastie, že dané prehliadače sú pomerne múdre a vedia si domýšľať :D chýbajú ti tam uzatváracie tagy, ako pre div, tak pre form a table ;) nižšie posielam trochu lepšiu verziu, skús si porovnať s tvojou.

<form name="frmMain" method="POST">
    <div align="center">
        <input type="hidden" name="txtRand" value="<?php echo $random_num1 ?>">
        <input type="hidden" name="txtNum" value="<?php echo $random_num2 ?>">
        <table width=20% cellspacing=0 cellpadding=0 border="0">
            <tr>
                <td colspan="2">Ďalšie číslo bude: <?php echo $random_num1 ?></td>
            </tr>
            <tr>
                <td align="center">
                    <input class="btn btn-primary" type="Submit" name="subLower" value="Nižšie">
                </td>
                <td align="center">
                    <input class="btn btn-primary" type="Submit" name="subHigher" value="Vyššie">
                </td>
            </tr>
        </table>
    </div>
</form>

<?php
if (isset($_POST['txtNum'])) {
    $randnum = $_POST['txtRand'];
    $num = $_POST['txtNum'];

    if (isset($_POST['subLower'])) {
        if ($num < $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je nižšie, pokračuješ v hre</td></tr>';
        if ($num > $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je vyššie, prehral si(</td></tr>';
        if ($num == $randnum) echo '<tr><td colspan="2">Číslo je rovnaké</td></tr>';
    }
    if (isset($_POST['subHigher'])) {
        if ($num > $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je vyššie, pokračuješ v hre</td></tr>';
        if ($num < $randnum) echo '<tr><td colspan="2">Číslo ' . $num . ' je nižšie, prehral si(</td></tr>';
        if ($num == $randnum) echo '<tr><td colspan="2">Číslo je rovnaké</td></tr>';
    }
}

U formuláru, ktorý sa odosiela na tú istú stránku na ktorej sa zobrazuje nemusí byť atribút action.

Pripojenie na DB máš vysvetlené v http://www.itnetwork.cz/php/databaze

Nahoru Odpovědět
22.1.2017 12:31
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.