2013-03-08 5 views
0

누군가 제발 나를 도와 줄 수 있다면 정말 좋을 것입니다. 나는 그것을 해결하는 방법을 모르며 제 두뇌 (그리고 책과 인터넷)를 깨뜨 렸습니다. 내가해야 할 일을 정말로 이해하지 않고 얼마 동안. 나는 어떤 방식 으로든 프로그래머가 아니며, 독학으로 가르쳐 주므로 쉬운 일이라면 사과를 받아주십시오. 판타지 리그 풋볼 사이트 용 데이터베이스를 만들었고 결과와 테이블에 대한 올바른 쿼리를 얻었습니다. 관리자가 주간 결과를 보여주는 쿼리를 추가하기 만하면됩니다. (어떤 관리자의 팀은 같은 선수가 있습니다) 예를 들어 같은 :PHP MySQL의 다차원 배열에서 중첩 된 foreach 루프를 사용하면

(표 헤더 : 주> 관리자>>의 경우> 득점자에 대하여) 2 관리자 1 3-0 (플레이어 1, 플레이어 B 2) 2 관리자 2 1-2 (플레이어 f 1) 2 관리자 3 4-1 (플레이어 g 2, 플레이어 x 2)

내 결과를 얻기 위해 많은 조인을 사용하고 있으며 중첩 된 foreach 루프를 실험 해 왔습니다. 모든 플레이어를 반복 할 수 있도록 별도의 foreach 루프를 수행해야합니다. 득점 한 팀 (즉, 0보다 큰 목표를 가진 선수의 목록을 가져옴)이 섞여 있지만 결과가 엇갈 렸습니다.

여기 내 코드는 인덱스 컨트롤러에서 html로 foreach 루프를 표시합니다. 누구든지 도움을 줄 수 있거나 아이디어가 있다면 정말 감사 할 것입니다.

if (isset($_GET['action']) and $_GET['action'] == 'scorers') 
    { 
    include $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php'; 

    $sql = "SELECT Wk.week as ptsweeks, managers.managerid as ID, managers.manager as Manager, CASE when sum(Wk.goals)>GA.goals then '3' when sum(Wk.goals)=GA.goals then '1' when sum(Wk.goals)<GA.goals then '0' END as PTS, sum(Wk.goals) as F, GA.goals as A, case when Wk.goals>'0' then concat(Wk.name,' ',Wk.goals) end as goalscs 
from weeks2012 as Wk 
    inner join goalsAgainst2012 as GA 
    inner join strikers2012 as ST 
    inner join defences2012 as DEF 
    inner join managers 
    on 
    Wk.week = GA.week and 
    DEF.managerid = ST.managerid and 
    ST.playerid = Wk.playerid and 
    DEF.defenceid = GA.defenceid and 
    managers.managerid = ST.managerid 
    where Wk.week = '$weekWK' 
    group by managers.managerid"; 
    $result = mysqli_query($link, $sql); 
    if (!$result) 
    { 
    $error = 'Error updating submitted article.'; 
     include $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php'; 
     exit(); 
    } 

    while ($row = mysqli_fetch_array($result)) 
    { 
    $weeks[] = array(
    'table' => array('ptsweeks' => $row['ptsweeks'], 'ID' => $row['ID'], 'Manager' => $row ['Manager'], 'F' => $row['F'], 'A' => $row['A'], 'PTS' => $row['PTS']), 
'gs' => array('goalscs' => $row['goalscs']) 
    ); 

    } 


    include 'scorers_html.php'; 

} 

** from scorers_html.php : 
    <table> 
    <?php foreach($weeks as $key => $gls): ?> 
    <tr> 
     <td> <?php echo $gls['table']['ptsweeks']; ?> </td> 
     <td> <?php echo $gls['table']['Manager']; ?> </td> 
     <td> <?php echo $gls['table']['F']; ?> </td> 
     <td> <?php echo $gls['table']['A']; ?> </td> 
     <td> <?php echo $gls['table']['PTS']; ?> </td> 
    </tr> 

     <?php foreach($weeks as $key => $gls): ?> 
    <tr> 
     <td> <?php echo $gls['gs']['goalscs']; ?> </td> 
     </tr> 
     <?php endforeach; ?>  
    <?php endforeach; ?> 

    </table> 

답변

0

먼저, Stackoverflow의 구문 강조 표시를 통해 볼 수있는 구문 오류가 있습니다. 귀하의 세 번째 라인은 추가 검토시

include $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php'; 

할 필요가, 아래 라인은 올바르지 않습니다

include $_SERVER['DOCUMENT_ROOT'] . /includes/error.html.php'; 

그것은 당신이 따옴표 또는 내의 모든 문자열을 캡슐화 할 필요가

include $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php'; 

해야한다 아포스트로피.

KomodoEdit 또는 Netbeans와 같은 언어에 대한 구문 강조를 포함하는 코드 편집기를 사용하는 것이 좋습니다. 당신은 두통을 많이 줄일 수 있습니다.

그래도 도움이되지 않는다면 발생한 특정 오류/문제를 게시하십시오.

+0

Dave를 살펴 주셔서 감사합니다. 내가 겪고있는 주요 문제는 쿼리 결과를 각 관리자의 득점자가 표시되도록하는 것입니다. 현재이 코드는 득점 한 선수와 개인 관리자에게만 속한 선수가 아닌 각 관리자에게 동일한 이름 목록을 제공합니다. 그래서 그것은 내 선택 쿼리 (이 비트 : concat (weeks2012.name, ', weeks2012.goals) Scorers), 만약 쿼리의 끝 (나는 GROUP BY 시도했습니다 및 ORDER BY), 또는 html 파일의 foreach 루프 인 경우 또는이 세 가지가 모두 결합 된 경우. 그게 말이 되니? – AK31

관련 문제