2015-07-11 138 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}} –