Mysql 从数据库中选择
Mysql selection from database
我是这方面的新手,我只是在学习。我为 NHL 锦标赛制作了一个页面,现在我想缩短我的 php 代码,但实际上我不知道该怎么做。
我的问题是从数据库中进行选择。做的很复杂,但也许有办法让它更短?
<?php
if( IS_USER ){
$team = mysql::fetch(mysql::query( 1 , "SELECT * FROM league_nhl_standings WHERE league_id = '".get_seg('ceturtais')."' AND player_id = '" . get_cookie('user_id') . "'"));
$center = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'C'"));
$defenseman = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'D'"));
$goalies = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'GK'"));
$leftw = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'LW'"));
$rightw = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'RW'"));
您可以在一个查询中合并以下查询。
$center = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'C'"));
$defenseman = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'D'"));
$goalies = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'GK'"));
$leftw = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'LW'"));
$rightw = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'RW'"));
喜欢这个,
$allplayers=mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position IN ('C', 'D', 'GK', 'LW', 'RW')"));
现在您可以迭代 $allplayers
并通过将 position
列与简单的 PHP if 条件进行比较来循环过滤结果集。
这将减少您对数据库的查询量,并在 PHP 脚本上回复 filter/get 适当的数据。
我是这方面的新手,我只是在学习。我为 NHL 锦标赛制作了一个页面,现在我想缩短我的 php 代码,但实际上我不知道该怎么做。
我的问题是从数据库中进行选择。做的很复杂,但也许有办法让它更短?
<?php
if( IS_USER ){
$team = mysql::fetch(mysql::query( 1 , "SELECT * FROM league_nhl_standings WHERE league_id = '".get_seg('ceturtais')."' AND player_id = '" . get_cookie('user_id') . "'"));
$center = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'C'"));
$defenseman = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'D'"));
$goalies = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'GK'"));
$leftw = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'LW'"));
$rightw = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'RW'"));
您可以在一个查询中合并以下查询。
$center = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'C'"));
$defenseman = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'D'"));
$goalies = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'GK'"));
$leftw = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'LW'"));
$rightw = mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position = 'RW'"));
喜欢这个,
$allplayers=mysql::rows(mysql::query(1,"SELECT * FROM player_list WHERE team = '$team[team_small]' AND position IN ('C', 'D', 'GK', 'LW', 'RW')"));
现在您可以迭代 $allplayers
并通过将 position
列与简单的 PHP if 条件进行比较来循环过滤结果集。
这将减少您对数据库的查询量,并在 PHP 脚本上回复 filter/get 适当的数据。