2012-01-31 4 views
3

저는 현재 작성중인 양식 중 하나에 어려움을 겪고 있습니다. 그들은 각 사용자 PHP - 첫 번째 결과 만 표시 할 수 없습니다.

  • 가 오늘이나 어제 일어났다은 "활성"대회 중 하나에

    1. : 나는 두 가지 조건을 충족 사건의 드롭 다운을 보여주고 싶어요.

    불행히도, 나는 모든 목록과 대조적으로 목록의 첫 번째 인스턴스 만 표시 할 수 있습니다. 시스템이 DESC 결과를 주문한 것처럼 시스템이 다른 것을 "본다"는 것이 확실합니다. 마지막으로 DESC가 표시됩니다.

    $compcheck에 대한 첫 번째 쿼리는 특정 사용자에 대해 활성화 된 모든 대회를 확인합니다. 대회의 범위는 1에서 5까지이며 모든 사용자는 그가 좋아하는만큼 활동적으로 활동할 수 있습니다.

    이 문제는 드롭 다운에서 <options>을 정의 할 때 발생합니다. 나는 그걸 잠시 두는 것으로 생각했는데, 각각의 결과가 $compcheck에서 발견되었지만 그렇게하지는 않을 것이라고 생각했습니다.

    설명하기 쉽지 않습니다. 이것은 적어도 코드에 대한 4 번째 재 작성입니다 (어떤 것이라도 간소화되었습니다). 당신은 누락이

    $compcheck = mysql_query("SELECT competition FROM RCO_contracts WHERE partB='$UserID' AND state='A'"); 
    $numrows = mysql_num_rows($compcheck); 
    
    if($numrows = 0) 
    { 
        echo "You are not participating in any competition at the moment."; 
    } 
    else 
    { 
    
        $yesterday = $day-1; 
    
        echo "<form action='$RKP/kernel/lib/php_lib/action/AC_Appeals_Add.php?op=add_appeal&id=$UserID' method='post'>"; 
        MODW_Buttons_Select(Normal,UAdminSelUser,RCO_users,completename,id,completename,False,False,$UserID,$do,$RKP); 
        echo "<select name='event'>"; 
    
        while($row=mysql_fetch_row($compcheck)) 
        { 
         $comp = "$row[0]"; 
    
         $complabel = mysql_query("SELECT competition FROM DCO_competitions WHERE id='$comp'"); 
         while($row=mysql_fetch_row($complabel)) 
         { 
          $compname = "$row[0]"; 
         } 
    
         $calendarlist = mysql_query("SELECT id, event, category FROM DCO_calendar WHERE category='$comp' AND (day='$day' OR day='$yesterday') AND month=$month AND year=$year"); 
         while($row=mysql_fetch_row($calendarlist)) 
         { 
          $event_id = "$row[0]"; 
          $event_name = "$row[1]"; 
    
          echo "<option value='$event_id'>$compname $event_name</option>"; 
         } 
    
         echo "</select>"; 
    
        } 
        MODW_Buttons_Input(Normal,Normal,UPerRegTeamWeb,$lang,$link,False,$UserID); //lap 
        MODW_Buttons_Input(Normal,Normal,UPerRegTeamWeb,$lang,$link,False,$UserID); //timestamp 
        MODW_Buttons_Input(Normal,Normal,UPerRegTeamWeb,$lang,$link,False,$UserID); //textarea 
        MODW_Buttons_Button(Normal,Normal,Normal,Normal,None,$RKP,$id,BGenSu,$intern,$intcont); 
        echo "</form>"; 
    
    } 
    
  • +0

    맨 끝에 버튼을 신경 쓰지 마십시오. 아직 작업해야 할 것들이 있습니다. –

    답변

    1

    사용자가 등장 할 때마다 </select> 페이지가 닫힙니다 (페이지 PHP 스크립트의 소스 코드를 확인해 볼 가치가 있습니다) - 쿼리는 각 경쟁에서 발생하지 않았습니다. 이것을 시도하십시오 :

    if($numrows == 0) 
    { 
        echo "You are not participating in any competition at the moment."; 
    } 
    else 
    { 
    
        $yesterday = $day-1; 
    
        echo "<form action='$RKP/kernel/lib/php_lib/action/AC_Appeals_Add.php?op=add_appeal&id=$UserID' method='post'>"; 
        MODW_Buttons_Select(Normal,UAdminSelUser,RCO_users,completename,id,completename,False,False,$UserID,$do,$RKP); 
        echo "<select name='event'>"; 
    
        while($row=mysql_fetch_row($compcheck)) 
        { 
         $comp = "$row[0]"; 
    
         $complabel = mysql_query("SELECT competition FROM DCO_competitions WHERE id='$comp'"); 
         while($row=mysql_fetch_row($complabel)) 
         { 
          $compname = "$row[0]"; 
    
          $calendarlist = mysql_query("SELECT id, event, category FROM DCO_calendar WHERE category='$comp' AND (day='$day' OR day='$yesterday') AND month=$month AND year=$year"); 
          while($row=mysql_fetch_row($calendarlist)) 
          { 
           $event_id = "$row[0]"; 
           $event_name = "$row[1]"; 
    
           echo "<option value='$event_id'>$compname $event_name</option>"; 
          } 
    
        } 
    
        echo "</select>"; 
        MODW_Buttons_Input(Normal,Normal,UPerRegTeamWeb,$lang,$link,False,$UserID); //lap 
        MODW_Buttons_Input(Normal,Normal,UPerRegTeamWeb,$lang,$link,False,$UserID); //timestamp 
        MODW_Buttons_Input(Normal,Normal,UPerRegTeamWeb,$lang,$link,False,$UserID); //textarea 
        MODW_Buttons_Button(Normal,Normal,Normal,Normal,None,$RKP,$id,BGenSu,$intern,$intcont); 
        echo "</form>"; 
    
    } 
    
    +0

    감사합니다! 이것으로 해결했습니다. 발생하는 선택 종료 태그로 인해 발생 했습니까? –

    +0

    태그를 선택하면 페이지가 엉망이되지만 다른 옵션은 계속 표시됩니다. 그것은 두 번째 내부 while (PHP로 가져온 각 행을 실행하는 동안 while's'를 원하는대로 해결 했어야하는 동안 제 3 이동합니다. – Elen

    4
    if($numrows = 0) 
    

    같음 서명을 여기에.

    또한 변수를 다시 할당하기 위해 문자열에 변수를 넣으면 안됩니다. 간단히 사용 $comp = $row[0] 변수를 문자열에 삽입하려면 점 ("abc".$comp."def"))과 연결해야하므로 읽기 쉽고 오류가 발생하기 쉽습니다.

    Normal 상수가 정상이라고 생각하지 않습니다. 아마도 문자열이 필요했을 것입니다.

    이러한 오류를 수정하면 문제를 찾는데 도움이됩니다 (해결할 수없는 경우). 항상 개발을 위해 모든 오류와주의 사항을 보려면 error_reporting(E_ALL)을 사용하십시오.

    편집 : HTML에서 속성 주위를 큰 따옴표로 묶어야합니다. 작은 따옴표는 나쁜 스타일입니다.

    +0

    감사합니다 - "보통"은 단추를 표시하도록 설계된 변수를 호출하는 것입니다 (ATM에 무엇인가가 아닙니다). –

    관련 문제