2015-07-11 139 views
1

我有一个聚合物(1.0)应用程序,我试图创建(基于拉伸教程联赛表),我不能找出路由如果使用MVC,所以我选择了一个页面的网站,引用不同的PHP文件。我怎样才能停止一个PHP而循环重复一遍又一遍?

我在MySQL的一个表,我试图纳入表,使用简单的回声表脚本,但这种重演数百次。我怎样才能停止这个循环?

$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',但是这只返回50个表头行?

该网站是在直播的http://jay-o.uk/#!/results CSS和其他数据都还好现在,只要这个讨厌的循环。

+0

你选择在第一循环中的所有结果,然后对每一个结果,你再选择其他20.您还使用'$ tableName'在一个地方,但在另一个'$ table' 。 – rjdown

回答

0

嗯..也许你需要这样的代码:

// 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是一个空数组也许问题是,查询不返回任何行。

+0

哇,谢谢,这已经解决了PHP和JSON的问题,我可以看到我出错的地方,谢谢! 小学生错误,但我将能够重复使用这段代码。最后一件事,当我过滤PHP的结果; 'WHERE fixture_date BETWEEN 20150706 AND 20150712 LIMIT 10,10' 结果失去了分数,其他一切都很好,但是这个查询是基于视图和结果关系的,会是左连接比内连接好吗?用过的 ?并正确返回结果? –

+0

很高兴帮助你的朋友。结果表格中的得分是“home_goals_for”字段是否正确?如果您正在执行SELECT FROM结果表,则可以显示得分数据,否则最好是左连接(内连接更快,但可以创建空行取决于您的查询) – Oscargeek

+0

谢谢,但左连接没有帮助,因为目标是在没有实际分数的单独表格中,基于goalcorer,所以我将重新加工数据库,而不是干杯 –

0

您需要先查询设置“限制”,如果你想避免超时操作,还我认为这是更多钞票来调用返回你所需要的所有信息的唯一查询,但我不知道因为你的查询是无法理解的。

你的代码是错误的,第二个查询不使用$表变量是空值,什么是德目的是把它的极限参数后?

$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>'; 
} 
0

对不起,代码有点乱,我已经在此工作了一段时间,IFS沮丧,林不知道我要去的地方错了,如果我删除$表名变量i得到一个空数组,无论我做什么都是结果。

我在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而不是表中查看?

+0

好吧,我重新阅读了PHP并修改了你的代码,我已经提到了数据库3次,我有一个变量关闭屏幕,在$ sql select中。所以这就是现在排序谢谢你! –

+0

但是,数组怎么能用完全不同的代码来做同样的事情呢? Json会更好,然后我可以将它们添加到 ​​{{home_team_name}} –