Diskuze: MySQL

Ostatní jazyky SQL SQL a databáze MySQL

Avatar
­Villagers
Člen
Avatar
­Villagers:

Nazdar. Som tu znovu no a pre tích čo minule hovorili že mám zlú databázu mám správu že mám databázu celkom novú bez chýb. Teraz prichádza však nový problém. Chcem aby mi stránka vypísala PODLA ID PRIHLASENEHO jeho meno a počet mincí. Neviem však bohužial nastaviť aby to bolo podľa ID. Tu je kód ktorý treba upraviť a vložiť tam to SESSION :

$result = mysql_query("SELECT meno, mince FROM pouzivatelia");

echo '<table>';
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    echo '<tr>';
    echo '<td>'. $row["meno"] .'</td>';
    echo '<td>'. $row["mince"] .'</td>';
    echo '</tr>';
}
echo '</table>';
mysql_free_result($result);
 
Odpovědět 1.11.2013 11:13
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Přidej do SQL: "ORDER BY id".

Porovnej s tímto:

$result = mysql_query("SELECT meno, mince FROM pouzivatelia ORDER BY id");

echo '<table>';
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $meno = htmlspecialchars($row["meno"]);
    echo <<<EOT
<tr><td>$meno</td><td>$row[mince]</td></tr>
EOT;
}
echo '</table>';
Nahoru Odpovědět 1.11.2013 11:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Funguje samozřejmě i tohle:

echo "<tr><td>$meno</td><td>$row[mince]</td></tr>";

nebo tohle:

echo "<tr>
<td>$meno</td>
<td>$row[mince]</td>
</tr>";
Nahoru Odpovědět 1.11.2013 11:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

nejde to. stále vypisuje všechni uživatele pri kterích píše počet mincí. Počul som že tam má isť iný príkaz while nebo where nevím presne a že tam má bejt session_id ješte raz prikladam kompletný zmenený kod:

<?php
$result = mysql_query("SELECT usr, mince FROM tz_members ORDER BY id");

echo '<table>';
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $usr = htmlspecialchars($row["usr"]);
    echo <<<EOT
<tr><td>$usr</td><td>$row[mince]</td></tr>
EOT;
}
echo '</table>';
?>
Editováno 1.11.2013 11:38
 
Nahoru Odpovědět 1.11.2013 11:38
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Myslel jsem si, že chceš, aby to bylo seřazeno podle ID. Pokud chceš pouze pro jedno ID, místo "ORDER BY id" tam dej "WHERE id=$id".

Jenom doufám, že proměnnou $id nevytahuješ z $_GET nebo $_POST, ale z pole $_SESSION.

Nahoru Odpovědět 1.11.2013 11:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

:D ne neboj je to z tabulky ne z POST :D ok jdu to skusit

 
Nahoru Odpovědět 1.11.2013 11:51
Avatar
­Villagers
Člen
Avatar
­Villagers:

jo super jde to :) fakt díki

 
Nahoru Odpovědět 1.11.2013 11:51
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

ID uživatele by mělo být hlavně v $_SESSION, abys věděl, kdo je přihlášený.

Nahoru Odpovědět 1.11.2013 11:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Ako tam vytvorím border ? Chcem vytvoriť tabuľku kde bude hore písať Meno a pod tým meno. Potom vedľa počet mincí a pod tým mince.. Potom tam pribudnú aj body a ďalšie veci. Lenže do php tabuľy sa nejak nerozumiem.

 
Nahoru Odpovědět 1.11.2013 14:57
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

To už s jazykem SQL nesouvisí. To musíš udělat v HTML a CSS.

<tr><th>Meno</th><th>Počet mincí</th></tr>
Nahoru Odpovědět 1.11.2013 15:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

oukej a ešte jedna vec. Ako / kde nastavím abz hráč po registrácii dostal automaticky 100 mincí ? Pridal som mince aj do tohto.

mysql_query("   INSERT INTO tz_members(usr,pass,email,regIP,dt,mince)
                                                VALUES(

                                                        '".$_POST['username']."',
                                                        '".md5($pass)."',
                                                        '".$_POST['email']."',
                                                        '".$_SERVER['REMOTE_ADDR']."',
                                                        '".$_POST['mince']."',

                                                        NOW()
 
Nahoru Odpovědět 1.11.2013 15:06
Avatar
­Villagers
Člen
Avatar
­Villagers:

určite tam nemá byť post no eiem čo tam dať.

 
Nahoru Odpovědět 1.11.2013 15:07
Avatar
­Villagers
Člen
Avatar
­Villagers:

No furt to nejde. Meno a mince sú v jednom stlpci pod Meno.

<TABLE BGCOLOR="CC9900" BORDER=3 >
<tr><td>Meno</th><th>Mince</td></tr>

<tr><td>
<?php
$result = mysql_query("SELECT usr, mince FROM tz_members WHERE id=$id");

 echo '<table>';
 while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
 {
     echo '<tr>';
     echo '<td>'. $row["usr"] .'</td>';
     echo '<td>'. $row["mince"] .'</td>';
     echo '</tr>';
 }
 echo '</table>';
 mysql_free_result($result);
 ?>

</TABLE>
 
Nahoru Odpovědět 1.11.2013 15:12
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Také by ses mohl naučit odsazovat. Kód se nepíše tak vpravo.

$username = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['pass']);
$email = mysql_real_escape_string($_POST['email']);
mysql_query("INSERT INTO tz_members(usr, pass, email, regIP, dt, mince)
    VALUES('$username', MD5($pass), '$email',
        '$_SERVER[REMOTE_ADDR]', NOW(), 100)");
Nahoru Odpovědět 1.11.2013 15:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Však jsem ti napsal, abys to napsal takhle:

<tr><th>Meno</th><th>Mince</th></tr>
Nahoru Odpovědět 1.11.2013 15:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Tie mince mi vubec nefunguji a už mi nešlo ani vubec registovat jen furtt psalo ze uz jmeno existuje. Akonáhle tam neo pridám dosere celý registračný zdoják.

Editováno 1.11.2013 15:36
 
Nahoru Odpovědět 1.11.2013 15:35
Avatar
Kit
Redaktor
Avatar
Nahoru Odpovědět 1.11.2013 15:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

No v podstate jo

 
Nahoru Odpovědět 1.11.2013 15:47
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

V tom případě je adekvátní odpovědí, že to máš blbě.

Nahoru Odpovědět 1.11.2013 15:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na ­Villagers
Jakub Šárník:

Doporučuji ti naučit se SQL pořádně, začít používat PDO (nebo alternativu) a OOP a pak přepsat celý kód.

 
Nahoru Odpovědět 1.11.2013 18:24
Avatar
­Villagers
Člen
Avatar
­Villagers:

-

Editováno 2.11.2013 14:45
 
Nahoru Odpovědět 2.11.2013 14:44
Avatar
­Villagers
Člen
Avatar
­Villagers:

Potrebujem veiet ako tam ritto že pri registráci dosanhrá 100 micí ddaabáz takže pridaať novú hodntu. Kit m už nejak nechce odpisovať tak tu dávam celoý zdroják.

<head>
 <link rel="shortcut icon" href="icon.ico">
 <title>Online hra Villagers</title>
 </head>

 <div align="right"><b><font size="6"></font></b>
 <script language="JavaScript" src="http://htmlky.szm.com/cas.js"></script>
 <span id="xClock" style="color:#000000"></span>


 <img src="title1.0.png" align="bottom">


 <div align="center"><b><font size="6"></font></b>
 <IMG SRC="http://villagers.wz.sk/logohome.png">
 <BR><B><font color="#FFFFFF">
 </form>




 <TABLE BGCOLOR="CC9900" BORDER=3 >
 <TR> <TD>
 <?php

 define('INCLUDE_CHECK',true);

 require 'connect.php';
 require 'functions.php';
 // Those two files can be included only if INCLUDE_CHECK is defined


 session_name('tzLogin');
 // Starting the session

 session_set_cookie_params(2*7*24*60*60);
 // Making the cookie live for 2 weeks

 session_start();

 if($_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
 {


        $_SESSION = array();
        session_destroy();

        // Destroy the session
 }


 if(isset($_GET['logoff']))
 {
        $_SESSION = array();
        session_destroy();

        header("Location: registracia.php");
        exit;
 }

 if($_POST['submit']=='Login')
 {
        // Checking whether the Login form has been submitted

        $err = array();
        // Will hold our errors


        if(!$_POST['username'] || !$_POST['password'])
                $err[] = 'All the fields must be filled in!';

        if(!count($err))
        {
                $_POST['username'] = mysql_real_escape_string($_POST['username']);
                $_POST['password'] = mysql_real_escape_string($_POST['password']);
                $_POST['rememberMe'] = (int)$_POST['rememberMe'];

                // Escaping all input data

                $row = mysql_fetch_assoc(mysql_query("SELECT id,usr,mince FROM tz_members WHERE usr='{$_POST['username']}'  AND pass='".md5($_POST['password'])."'"));
                if($row['usr'])
                {
                        // If everything is OK login

                        $_SESSION['usr']=$row['usr'];
                        $_SESSION['id'] = $row['id'];
                        $_SESSION['rememberMe'] = $_POST['rememberMe'];

                        // Store some data in the session

                        setcookie('tzRemember',$_POST['rememberMe']);
                }
                else $err[]='Wrong username and/or password!';
        }

        if($err)
        $_SESSION['msg']['login-err'] = implode('<br />',$err);
        // Save the error messages in the session

        header("Location: registracia.php");
        exit;
 }
 else if($_POST['submit']=='Register')
 {
        // If the Register form has been submitted

        $err = array();

        if(strlen($_POST['username'])<4 || strlen($_POST['username'])>10)
        {
                $err[]='Heslo musi mat viac ako 3 a menej ako 10 znakov !';
        }

        if(preg_match('/[^a-z0-9-_.]+/i',$_POST['username']))
        {
                $err[]='Tvoje heslo obsahuje neplatne znaky !';
        }

        if(!checkEmail($_POST['email']))
        {
                $err[]='Zadal si neplatny e-mail !';
        }

        if(!count($err))
        {
                // If there are no errors

                $pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);
                // Generate a random password

                $_POST['email'] = mysql_real_escape_string($_POST['email']);
                $_POST['username'] = mysql_real_escape_string($_POST['username']);
                // Escape the input data


                mysql_query("   INSERT INTO tz_members(usr,pass,email,regIP,dt)
                                                 VALUES(

                                                         '".$_POST['username']."',
                                                         '".md5($pass)."',
                                                         '".$_POST['email']."',
                                                         '".$_SERVER['REMOTE_ADDR']."',


                                                        NOW()

                                                )");

                if(mysql_affected_rows($link)==1)
                {
                        send_mail(      'villagersadmin',
                                                $_POST['email'],
                                                'Registration accepted !',
                                                'Tvoje heslo je: '.$pass);

                        $_SESSION['msg']['reg-success']='Registracia uspesna! Na vas e-mail sme odoslali vase heslo!';
                }
                else $err[]='Toto meno uz existuje !!';
        }

        if(count($err))
        {
                $_SESSION['msg']['reg-err'] = implode('<br />',$err);
        }

        header("Location: registracia.php");
        exit;
 }

 $script = '';

 if($_SESSION['msg'])
 {
        // The script below shows the sliding panel on page load

        $script = '
        <script type="text/javascript">

                $(function(){

                        $("div#panel").show();
                        $("#toggle a").toggle();
                });

        </script>';

 }
 ?>


 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">

 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

     <?php echo $script; ?>
 </head>

 <body>


                                <!-- Register Form -->
                                <form action="" method="post">
                                        <h2>Registracia</h2>

                     <?php

                                                if($_SESSION['msg']['reg-err'])
                                                {
                                                        echo '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                                                        unset($_SESSION['msg']['reg-err']);
                                                }

                                                if($_SESSION['msg']['reg-success'])
                                                {
                                                        echo '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                                                        unset($_SESSION['msg']['reg-success']);
                                                }
                                        ?>

                                        <label class="grey" for="username">Username:</label><br>
                                        <input class="field" type="text" name="username" id="username" value="" size="23" /><br>
                                        <label class="grey" for="email">Email:</label><br>
                                        <input class="field" type="text" name="email" id="email" size="23" /><br>
                                        <label>Heslo vam bude odoslane na e-mail.</label><br>
                                        <input type="submit" name="submit" value="Register" class="bt_register" />
                                                </form>
                        </div>


     </div>
 </div>
 </TD> </TR>
 </table>
 </body>
 </html>
 
Nahoru Odpovědět 2.11.2013 14:44
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Nemá smysl opravovat, co je od základu špatně a tohle:

$_POST['username'] = mysql_real_escape_string($_POST['username']);

je úplná hovadina.

Nahoru Odpovědět 2.11.2013 14:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Já sem to nedelal a rikam že ten kod ted nijak neovplivnuje registraci. To te zabije kdyz mi tu vypíšeš jeden kód ?

 
Nahoru Odpovědět 2.11.2013 14:51
Avatar
Kit
Redaktor
Avatar
Nahoru Odpovědět  +1 2.11.2013 14:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

A když te poprosím ?

 
Nahoru Odpovědět  -1 2.11.2013 15:36
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Nevidím žádnou vlastní snahu. Proč bych ti měl pomáhat s opravováním cizího kódu, navíc úplně špatně napsaného?

Nahoru Odpovědět  +1 2.11.2013 15:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Já se tomu venuju hoiny denne nale nemuzu delat nic ál protože sem skusil tam dat uz 5 kou a furt mi to skazí celou regiszraci. a proste nemuzu delat kody dal kdyz tam nemám tohle

 
Nahoru Odpovědět  -1 2.11.2013 15:51
Avatar
Odpovídá na ­Villagers
Jakub Šárník:

Když nebudeš pokračovat dál, tak prokážeš světu službu. Ale ty mince přičteš tak, že ve vkládacím dotazu u registrace vložíš do sloupce s mincema hodnotu 100.

 
Nahoru Odpovědět 2.11.2013 17:07
Avatar
Inoue Yūki
Redaktor
Avatar
Inoue Yūki:

Proč si nepřečteš návody, které tu máš? Dělat v PHP hru za pomocí HTML a rádoby PHP kódu bez OOP je patlanina nejvyššího rázu. Neříkám to proto, že tě chci urazit, ale proto, že tenhle kód je ŠPATNĚ a mohl by jsi ho psát dobře. Tyhle problémy, o kterých tu věčně píšeš vyplívají ze špatného kódu.

Nahoru Odpovědět 2.11.2013 17:25
Avatar
­Villagers
Člen
Avatar
­Villagers:

No jo tady je zbytečne neco resit. Kím nejsou kody podle vašich predstáv nikto nic nerekne. Díki :)

 
Nahoru Odpovědět  -1 2.11.2013 19:25
Avatar
Odpovídá na ­Villagers
Jakub Šárník:

Ale to, že kódy mají nějak vypadat, není pro nic za nic. To si lidi nevymysleli jen tak. Až příjdeš k tomu svému kódu za rok, nebudeš vůbec vědět, na co je.

Editováno 2.11.2013 19:29
 
Nahoru Odpovědět 2.11.2013 19:27
Avatar
­Villagers
Člen
Avatar
­Villagers:

Ja to nevím ani ted protože jsem ti kody nedelal já. Tohle je už 3 databáze co elám a tahle funguje skvele okrem toho kodu ktery tu vypisujete. Vymazal jsem ho. Ted vás pekne prosím o to aby ste mi poradili jak mám nastavit hodnotu mincí 100 automaticky po registraci.

 
Nahoru Odpovědět 2.11.2013 19:33
Avatar
Odpovídá na ­Villagers
Jakub Šárník:

Jak jsem říkal, v insert dotazu vložit do sloupce s mincema hodnotu 100.

 
Nahoru Odpovědět 2.11.2013 19:35
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na ­Villagers
Inoue Yūki:

Tak proč používáš kódy, které nejsou tvoje? ... Kdyby byli tvoje, víš jak to funguje a taky víš, jak nastavit počáteční hodnotu ve sloupci v databázi. Vše máš tady na devbooku.

Nahoru Odpovědět  +1 2.11.2013 19:40
Avatar
­Villagers
Člen
Avatar
Odpovídá na Jakub Šárník
­Villagers:

tak jak pesne ? vím že tam nemá bejt post .... Prosím te múžš mi sem hodiť pressný kód ?

mysql_query("   INSERT INTO tz_members(usr,pass,email,regIP,mince,ddt)
                                                VALUES(

                                                        '".$_POST['username']."',
                                                        '".md5($pass)."',
                                                        '".$_POST['email']."',
                                                        '".$_SERVER['REMOTE_ADDR']."',
                                                         '".$_POST['mince']."',

                                                        NOW()
 
Nahoru Odpovědět 2.11.2013 21:32
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Však jsem ti ho už poslal. Podívej se laskavě na příspěvek z "01.11.2013 15:22:06". V něm to máš hotové. Jsi líný si to okopírovat.

Nahoru Odpovědět 2.11.2013 21:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Vložil jsem to tam a neungovalo nic :) ;) odepisoval jsem ti ale nic.

 
Nahoru Odpovědět 2.11.2013 21:43
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

V tom případě jsi opisoval blbě. Kdybys aspoň napsal, ve kterém místě ti to nefunguje.

Nahoru Odpovědět 2.11.2013 22:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

To je jeno nastavil jsem not null a pak výchozí na 100 a už to je.

 
Nahoru Odpovědět 2.11.2013 22:22
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 41 zpráv z 41.