Mysql获得随机用户名

时间:2013-11-17 09:38:41

标签: php mysql random

我需要获得一个随机的用户名并转到view.php?name=USERNAME我错了吗?

<form action="view.php?name=<?php $getname; ?>" method="get">
    <input class="button" type="submit" name="submit" value="RANDOM SKIN" />
</form>
<?php
    include('config.php');
    if ($_POST['submit']) {
        $sql1 = mysql_query("SELECT * FROM `skins` ORDER BY rand() limit 1") or die(mysql_error());
        while ($row2 = mysql_fetch_assoc($sql1)) {
            $getname = $row2['username'];
            echo $getname;
        }
    }
?>

2 个答案:

答案 0 :(得分:0)

表单的方法设置为GET,但您正在检查$_POST。在表单中使用method="post"或在PHP代码中使用$_GET

答案 1 :(得分:0)

除了$_GET$_POST之间的交替问题之外,如果您想保留GET请求中的键值对,这不是一个大问题。您有多种选择:

<强>推荐

结帐parse_url()。这可以从PHP 4开始提供。文档中有很多例子:

$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));

echo parse_url($url, PHP_URL_PATH);

<强>替代

var_dump()个变量上试用$_SERVER。您应该能够看到QUERY_STRING属性,您可以使用$_SERVER['QUERY_STRING']访问该属性。在这里,您可以使用手动拆分键/值。猜猜看,这也有功能!

结帐:parse_str()。你给它一个查询字符串,就像来自GET的查询字符串,它将为你整理所有的键值。查看文档,它给出了以下示例:

$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

非常简单!尝试这两个功能 - 它们可以解决您的确切问题。为了让你的上述工作,我会先尝试:

var_dump(parse_str($_SERVER['QUERY_STRING']));

最后,我将成为讨论MySQL弃用问题的人。这是我复制/粘贴给新手的内容:

Please, don't use mysql_* functions in new code。它们不再受到维护,officially deprecated,可以是dangerous in live code。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial