Mysql 获取随机用户名


Mysql get random username

我需要随机获取一个用户名并转到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;
        }
    }
?>

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

除了在$_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);

另类

尝试对$_SERVER变量进行var_dump()。您应该能够看到可以使用$_SERVER['QUERY_STRING']访问的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弃用的人。这是我复制/粘贴给新手的内容:

请不要在新代码中使用mysql_*函数。它们不再维护,被正式弃用,并且在实时代码中可能很危险。看到红框了吗?请改为了解预准备语句,并使用 PDO 或 MySQLi - 本文将帮助您决定哪个语句。如果您选择PDO,这是一个很好的教程。