我怎样才能停止 php while 循环一遍又一遍?
How can i stop a php while loop repeating over and over?
我有一个我正在尝试创建的 polymer(1.0) 应用程序(基于 stretch-tutorials 联盟 table),如果使用 mvc,我无法弄清楚路由,所以我选择了一页站点,引用不同的 php 文件。
我在 MYSql 中有一个 table,我试图使用一个简单的 echo table 脚本将其合并到 table 中,但这会重复数百次.我怎样才能停止这个循环?
$result = mysql_query('select * from results',$connection) or die('cannot show tables');
while($tableName = mysql_fetch_row($result)) {
$sql = ('SELECT `home_team_name`,`away_team_name`,`home_goals_for`, `away_goals_for`, DATE_FORMAT(`fixture_date`, "%e %M %Y"), TIME_FORMAT(`fixture_time`, "%h:%i %p") FROM `results` ORDER BY fixture_date desc LIMIT 20 '.$table) or die('cannot show columns from '.$table);
echo '<h3>',$table,'</h3>';
$result2 = mysql_query($sql);
if(mysql_num_rows($result2)) {
echo '<table cellpadding="4" cellspacing="0" class="table table-striped table-hover table-bordered">';
echo '<tr class="info"><th>Home team</th><th>Away Team</th><th>Score</th><th>Score</th><th>Date<th>Time</th></tr>';
while($row2 = mysql_fetch_row($result2)) {
echo '<tr>';
foreach($row2 as $key=>$value) {
echo '<td>',$value,'</td>';
}
echo '</tr>';
}
echo '</table><br />';
}
}
我添加了“< 50”,但是这 returns 50 table header 行?
该站点在 http://jay-o.uk/#!/results 和 css 上线,其他数据目前还可以,只是这个讨厌的循环。
如果你想避免超时操作,你需要在第一个查询中设置一个 "LIMIT",而且我认为可以调用一个唯一的查询,return 你的所有信息需要,但我不知道,因为你的查询难以理解。
你的代码是错误的,第二个查询没有使用空值的 $table 变量,将它放在 limit 参数之后的目的是什么?
$results = mysql_query('SELECT * FROM table_name ORDER BY field_name LIMIT 50');
if(mysql_num_rows($results)) {
print '<table>';
while ($row = mysql_fetch_row($results)) {
print '<tr>';
foreach ($row as $field_name => $field_value) print '<td>'.$field_value.'</td>';
print '</tr>'
}
print '</table>';
}
抱歉,代码有点乱,我已经为此工作了一段时间,如果感到沮丧,我不确定我哪里出错了,如果我删除 $tableName 变量,我会得到一个空数组,无论我做什么都是结果。
我试过 json 没用...
$db = mysql_connect($host,$user,$pass);
if (!$db) {
die('Could not connect to db: ' . mysql_error());
}
//Select the Database
mysql_select_db($db_name,$db);
$resulting = mysql_query("select * from results", $db);
//Create an array
$json_response = array();
while ($row = mysql_fetch_array($resulting, MYSQL_ASSOC)) {
$row_array['home_team_name'] = $row['home_team_name'];
$row_array['away_team_name'] = $row['away_team_name'];
$row_array['home_goals_for'] = $row['home_goals_for'];
$row_array['away_goals_for'] = $row['away_goals_for'];
//push the values in the array
array_push($json_response,$row_array);
$json = json_encode($json_response);
//echo $json;
$json_result = print_r((array) json_decode($json,true));
echo $json_result;
}
剩下这个:jay-o.uk/config/config.php
这可能是因为我指的是 mySql 中的视图而不是 table 中的视图吗?
嗯..也许你需要这个代码:
// Create an array
$items = array();
while ($row = mysql_fetch_array($resulting, MYSQL_ASSOC)) {
/* print new insert */
var_dump('new item');
/* add a new item */
$items[] = array(
'home_team_name' => $row['home_team_name'],
'away_team_name' => $row['away_team_name'],
'home_goals_for' => $row['home_goals_for'],
'away_goals_for' => $row['away_goals_for']
);
}
$json_response = json_encode($items);
print $json_response;
如果 $json_response 是一个空数组,可能问题是查询没有 return 任何行。
如何更简单的解决方案,只需将从数据库的查询限制为1:
$results = mysql_query('SELECT * FROM table_name ORDER BY field_name LIMIT 1');
我有一个我正在尝试创建的 polymer(1.0) 应用程序(基于 stretch-tutorials 联盟 table),如果使用 mvc,我无法弄清楚路由,所以我选择了一页站点,引用不同的 php 文件。
我在 MYSql 中有一个 table,我试图使用一个简单的 echo table 脚本将其合并到 table 中,但这会重复数百次.我怎样才能停止这个循环?
$result = mysql_query('select * from results',$connection) or die('cannot show tables');
while($tableName = mysql_fetch_row($result)) {
$sql = ('SELECT `home_team_name`,`away_team_name`,`home_goals_for`, `away_goals_for`, DATE_FORMAT(`fixture_date`, "%e %M %Y"), TIME_FORMAT(`fixture_time`, "%h:%i %p") FROM `results` ORDER BY fixture_date desc LIMIT 20 '.$table) or die('cannot show columns from '.$table);
echo '<h3>',$table,'</h3>';
$result2 = mysql_query($sql);
if(mysql_num_rows($result2)) {
echo '<table cellpadding="4" cellspacing="0" class="table table-striped table-hover table-bordered">';
echo '<tr class="info"><th>Home team</th><th>Away Team</th><th>Score</th><th>Score</th><th>Date<th>Time</th></tr>';
while($row2 = mysql_fetch_row($result2)) {
echo '<tr>';
foreach($row2 as $key=>$value) {
echo '<td>',$value,'</td>';
}
echo '</tr>';
}
echo '</table><br />';
}
}
我添加了“< 50”,但是这 returns 50 table header 行?
该站点在 http://jay-o.uk/#!/results 和 css 上线,其他数据目前还可以,只是这个讨厌的循环。
如果你想避免超时操作,你需要在第一个查询中设置一个 "LIMIT",而且我认为可以调用一个唯一的查询,return 你的所有信息需要,但我不知道,因为你的查询难以理解。
你的代码是错误的,第二个查询没有使用空值的 $table 变量,将它放在 limit 参数之后的目的是什么?
$results = mysql_query('SELECT * FROM table_name ORDER BY field_name LIMIT 50');
if(mysql_num_rows($results)) {
print '<table>';
while ($row = mysql_fetch_row($results)) {
print '<tr>';
foreach ($row as $field_name => $field_value) print '<td>'.$field_value.'</td>';
print '</tr>'
}
print '</table>';
}
抱歉,代码有点乱,我已经为此工作了一段时间,如果感到沮丧,我不确定我哪里出错了,如果我删除 $tableName 变量,我会得到一个空数组,无论我做什么都是结果。
我试过 json 没用...
$db = mysql_connect($host,$user,$pass);
if (!$db) {
die('Could not connect to db: ' . mysql_error());
}
//Select the Database
mysql_select_db($db_name,$db);
$resulting = mysql_query("select * from results", $db);
//Create an array
$json_response = array();
while ($row = mysql_fetch_array($resulting, MYSQL_ASSOC)) {
$row_array['home_team_name'] = $row['home_team_name'];
$row_array['away_team_name'] = $row['away_team_name'];
$row_array['home_goals_for'] = $row['home_goals_for'];
$row_array['away_goals_for'] = $row['away_goals_for'];
//push the values in the array
array_push($json_response,$row_array);
$json = json_encode($json_response);
//echo $json;
$json_result = print_r((array) json_decode($json,true));
echo $json_result;
}
剩下这个:jay-o.uk/config/config.php
这可能是因为我指的是 mySql 中的视图而不是 table 中的视图吗?
嗯..也许你需要这个代码:
// Create an array
$items = array();
while ($row = mysql_fetch_array($resulting, MYSQL_ASSOC)) {
/* print new insert */
var_dump('new item');
/* add a new item */
$items[] = array(
'home_team_name' => $row['home_team_name'],
'away_team_name' => $row['away_team_name'],
'home_goals_for' => $row['home_goals_for'],
'away_goals_for' => $row['away_goals_for']
);
}
$json_response = json_encode($items);
print $json_response;
如果 $json_response 是一个空数组,可能问题是查询没有 return 任何行。
如何更简单的解决方案,只需将从数据库的查询限制为1:
$results = mysql_query('SELECT * FROM table_name ORDER BY field_name LIMIT 1');