打印超过1个用户

时间:2014-04-24 11:21:25

标签: php mysql mysqli fetch

因此,当我使用我的代码时,它会从我的数据库中打印出超过1个用户。

我只想打印一个用户,我试图做我所知道的关于获取对象的所有内容。

有人可以帮助我吗?

$result = $mysqli->query("SELECT * FROM cms_users ORDER BY id ASC LIMIT 100");
while($row = $result->fetch_object()) {
echo '
            <aside id="right">
                <div id="main_sep"></div>
  <div id="content_ajax"><article>
<h1 class="top">User panel</h1>
<section class="body">
 <section id="ucp_top">
 <a href="http://causticwow.net/home2/ucp/avatar" id="ucp_avatar">
    <div>Change avatar</div>
</a>

<section id="ucp_info">

    <aside>

        <table width="100%">
            <tbody><tr>
                <td width="10%"><img src="images/icons/user.png"></td>
                <td width="40%">Nickname</td>
                <td width="50%">
                    <a href="http://causticwow.net/home2/ucp/settings" data-tip="Change nickname" style="float:right;margin-right:10px;"><img src="images/icons/pencil.png" align="absbottom"></a>
                    <a href="profile/1989" data-tip="View profile"> '.$row->Nickname.'   </a>
                </td>
            </tr>
            <tr>
                <td width="10%"><img src="images/icons/world.png"></td>
                <td width="40%">Location</td>
                <td width="50%">
                    <a href="http://causticwow.net/home2/ucp/settings" data-tip="Change location" style="float:right;margin-right:10px;"><img src="images/icons/pencil.png" align="absbottom"></a>
                    '.$row->Location.'
                </td>
            </tr>
            <tr>
                <td width="10%"><img src="images/icons/plugin.png"></td>
                <td width="40%">Expansion</td>
                <td width="50%">
                    <a href="http://causticwow.net/home2/ucp/expansion" data-tip="Change expansion" style="float:right;margin-right:10px;"><img src="images/icons/cog.png" align="absbottom"></a>
                    '.$row->Expansion.'
                </td>
            </tr>
            <tr>
                <td width="10%"><img src="images/icons/award_star_bronze_1.png"></td>
                <td width="40%">Account rank</td>
                <td width="50%">'.$row->Rank.'
                </td>
            </tr>
        </tbody></table>
    </aside>

    <aside>
        <table width="100%">
            <tbody><tr data-tip="Earn voting points by voting for the server">
                <td width="10%"><img src="images/icons/lightning.png"></td>
                <td width="40%">Voting points</td>
                <td width="50%">'.$row->VP.'</td>
            </tr>
            <tr data-tip="Earn donation points by donating money to the server">
                <td width="10%"><img src="images/icons/coins.png"></td>
                <td width="40%">Donation points</td>
                <td width="50%">'.$row->DP.'</td>
            </tr>
            <tr>
                <td width="10%"><img src="images/icons/shield.png"></td>
                <td width="40%">Account status</td>
                <td width="50%">'.$row->AccStatus.'</td>
            </tr>
            <tr>
                <td width="10%"><img src="images/icons/date.png"></td>
                <td width="40%">Member since</td>
                <td width="50%">'.$row->created.'</td>
            </tr>
        </tbody></table>
    </aside>
</section>
<div class="clear"></div>   
    </section>

<div class="ucp_divider"></div>
<section id="ucp_buttons">
<a href="http://causticwow.net/home2/vote" style="background-image:url(images/vote_panel.jpg)"></a>

    <a href="http://causticwow.net/home2/donate" style="background-image:url(images/donate_panel.jpg)"></a>

        <a href="http://causticwow.net/home2/store" style="background-image:url(images/item_store.jpg)"></a>

<a href="http://causticwow.net/home2/ucp/settings" style="background-image:url(images/account_settings.jpg)"</a>
<a href="http://causticwow.net/home2/ucp/expansion" style="background-image:url(images/change_expansion.jpg)"></a>

        <a href="http://causticwow.net/home2/teleport" style="background-image:url(images/teleport_hub.jpg)"></a>



<div class="clear"></div>
 </section>

<div class="ucp_divider"></div>

</section>
</article></div>
            </aside>
            <div class="clear"></div>
        </div>

                <footer>
<a href="http://raxezdev.com/fusioncms" id="logo" target="_blank"></a>
<p>© Copyright 2014 Admin Frozty</p>
            <p id="design"> <a target="_new" href=""></a></p>
</footer>
'; }

当它打印出来时,它首先打印一个应该是它的位置,然后是另一个打印在页脚下面。

3 个答案:

答案 0 :(得分:4)

LIMIT 100最多会返回100行。

因此,如果您更改为LIMIT 1,您将只获得一个结果。

此外,使用while会迭代所有结果。 如果您确定只有一行,请执行以下操作:

$row = $result->fetch_object();

答案 1 :(得分:1)

使用mysqli的以下SQL语句

$result = $mysqli->query("SELECT * FROM cms_users ORDER BY id ASC LIMIT 100");

获取cms_users的前100行

如果您只想输出或使用单行,请将LIMIT更改为1

$result = $mysqli->query("SELECT * FROM cms_users ORDER BY id ASC LIMIT 1");

此外,您已经使用您在查询中输入的条件解析了每个行的while循环(在这种情况下,除了输出顺序之外没有任何条件)。

以下评论的附录:

如果要添加参数 - 请参阅mysqli.prepare()语句。

您要创建的查询类似于:

 SELECT * FROM cms_users WHERE user_id = ? ORDER BY id ASC LIMIT 1

哪里有“?”将是user_id(在您的情况下 - 5)。

答案 2 :(得分:0)

•如果您只想要一个严格的结果,那么请使用LIMIT 1代替LIMIT 100。您也可以将while($row = $result->fetch_object())替换为$row = $result->fetch_object();,因为您只有一行结果。

•如果您的问题是下一个用户打印在桌子外面,那么您应该:

  • 首先,在while
  • 之前使用echo()打印前缀HTML代码
  • 然后为每个mysql结果回显一行
  • 然后打印附加的HTML代码:
// Print the begining HTML code, with opening <tbody> tag
echo('<aside><!--...--><tbody>');

$result = $mysqli->query("SELECT * FROM cms_users ORDER BY id ASC LIMIT 100");
while($row = $result->fetch_object())
{
// print HTML rows for data
echo('<tr><!-- nickname, and others... -->
<!--  ... -->
<a href="profile/1989" data-tip="View profile"> '.$row->Nickname.'</a>
<!--- ... -->
<tr>
     <td width="10%"><img src="images/icons/award_star_bronze_1.png"></td>
     <td width="40%">Account rank</td>
     <td width="50%">'.$row->Rank.'
     </td>
</tr>
');
}
// Print closing tags
echo('
        </tbody></table><!-- ... -->
</footer>');

(缩写以便于阅读)。

在那里,您将打印一次表格开始标记,根据MySQL结果打印几行,然后打印一次表格结束标记。