2016-07-08 4 views
0

나는 스스로에게 php와 mysql을 가르치려고 노력하고 있으며 나는 내가 함께하려고하는 축구 웅덩이를 만들기 위해 노력하고있는 양식에 문제가있다. 이 양식의 데이터를 제출하는 가장 좋은 방법에 대한 도움을 찾고 있습니다. 양식은 데이터베이스에서 데이터를 가져 와서 적절한 행 수만큼 반복합니다. 양식을 제출하면 각 행을 데이터베이스에 삽입하거나 업데이트해야합니다. 제출해야하는 데이터는 userid, gameid, pick 및 tbPoints입니다.동적 반복 양식을 제출하는 가장 좋은 방법

아직 완성하지 못했기 때문에 모양이 조금 거칩니다. 난 그냥 데이터베이스에 새로운 항목으로 각 행을 제출하는 양식을 얻을 것, 그것은 단지 마지막 게임을 제출 보인다. 제출할 루프에 문제가 있음을 알고 있지만 어떻게 가져올 수 있는지 파악할 수 없습니다. 어떤 도움을 주셔서 감사합니다!

<?php require_once('Connections/t2016.php'); ?> 
<?php 
mysql_select_db($database_t2016, $t2016); 
$query_gamedays = "SELECT DISTINCT schedule.weekDay, schedule.`date` FROM schedule WHERE schedule.weekNum=1"; 
$gamedays = mysql_query($query_gamedays, $t2016) or die(mysql_error()); 
$row_gamedays = mysql_fetch_assoc($gamedays); 
$totalRows_gamedays = mysql_num_rows($gamedays); 
?> 
<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Untitled Document</title> 
</head> 

<body> 
<form action="" method="post" name="form1"> 
    <table border="2" cellpadding="3" cellspacing="2"> 
    <tr align="center"> 
      <td>Time</td> 
      <td colspan="3">Matchup</td> 
      <td>Current Pick</td> 
    </tr> 
    <?php do { 
     $day = $row_gamedays['weekDay']; 
     $date = $row_gamedays['date']; 
    ?> 
     <tr wrap="nowrap"> 
      <td colspan="5"><?php echo '<strong>'.$day.'</strong>, '.$date; ?></td> 
     </tr> 
    <?php 
     mysql_select_db($database_t2016, $t2016); 
     $query_sched = "SELECT * FROM schedule WHERE schedule.weekNum=1 AND schedule.weekDay='$day'"; 
     $sched = mysql_query($query_sched, $t2016) or die(mysql_error()); 
     $row_sched = mysql_fetch_assoc($sched); 
     $totalRows_sched = mysql_num_rows($sched); 

    ?> 
    <?php do { 
     $gameid = $row_sched['gameID']; 
     $time = $row_sched['time']; 
     $vteam = $row_sched['visitorID']; 
     $hteam = $row_sched['homeID']; 

     mysql_select_db($database_t2016, $t2016); 
     $query_picks = "SELECT * FROM picks WHERE picks.gameID=$gameid AND picks.userID=1"; 
     $picks = mysql_query($query_picks, $t2016) or die(mysql_error()); 
     $row_picks = mysql_fetch_assoc($picks); 
     $totalRows_picks = mysql_num_rows($picks); 

     if($totalRows_picks > 0) { 
      $pick = $row_picks['pickID']; 
      $tbp = $row_picks['tiebreakerPoints']; 
     } else { 
      $pick = 'No Pick'; 
      $tbp = '0'; 
     } 

     $vp = ''; 
     $hp = ''; 
     if($pick == $vteam) { 
      $vp = 'checked'; 
     } elseif($pick == $hteam) { 
      $hp = 'checked'; 
     } 
    ?> 
     <tr align="center"> 
      <td><?php echo $time; ?></td> 

      <td align="right"><?php echo $vteam.'<input type="radio" name="pickID'.$gameid.'[]" value="'.$vteam.'" '.$vp.'>'; ?></td> 
      <td align="center"> @ </td> 
      <td align="left"><?php echo '<input type="radio" name="pickID'.$gameid.'[]" value="'.$hteam.'" '.$hp.'>'.$hteam; ?></td> 

      <td><?php echo $pick; ?></td>  
     </tr> 
     <?php if($row_sched['is_tiebreaker'] > 0) { ?> 
     <tr> 
      <td colspan="4" align="right" wrap="nowrap"><?php echo 'Enter Tiebreaker Points: <input type="number" name="tbpoints[]" min="0" value="'.$tbp.'">'; ?></td> 
      <td align="center"><?php echo $tbp; ?></td> 
     </tr> 
     <?php } ?> 
     <input type="hidden" name="gameID[]" value="$gameid"> 
     <input type="hidden" name="userID" value="1"> 

    <?php } while ($row_sched = mysql_fetch_assoc($sched)); ?> 
    <tr> 
    <?php } while ($row_gamedays = mysql_fetch_assoc($gamedays)); ?> 
     <td colspan="5" align="right" wrap="nowrap"> 
      <input type="submit" name"submit" value="Submit Picks"> 
     </td> 
    </tr> 
    </table> 
</form> 



<p>&nbsp;</p> 
</body> 
</html> 
<?php 
mysql_free_result($sched); 

mysql_free_result($picks); 

mysql_free_result($gamedays); 
?> 

다시 폼이 너무 친절하시기 바랍니다 정말 거친 :

여기 내 양식이다. 도움을 주셔서 감사합니다

+0

각 HTML 입력 값을 배열로 정의해야 PHP가 여러 값 (name = 'pickID'to name = 'pickID []')을 사용하여 작업 할 수 있습니다. – jeff

+0

예 Jeff, 미안합니다. 그 (것)들은 본래 나의 이름이 지금다는 것을 나의 부호를 바꾸었다 : $ gameid. [], gameID [], tbpoints [] – OldDogTeachingHimselfNewTricks

+0

나는 다만 통과하고 모양에서 각 가치를 얻는 루프를 알아낼 수 없다 . 가장 문제가되는 부분은 라디오 그룹입니다. pickID []를 사용하면 각 라디오 그룹이 하나가되고 pickID 값만 제출할 수 있습니다. 따라서 gameid를 추가하면 각 라디오 그룹은 고유하게 작동하여 고유하게 작동합니다. – OldDogTeachingHimselfNewTricks

답변

0

그냥 정상적인 배열처럼 이러한 값을 통해 루프.

$gameID = $_POST['gameID']; 
for($x=0; $x<count($gameID); $x++) { .... } 

라디오 버튼/확인란의 경우 각 그룹에 고유 한 이름을 지정해야합니다. 이 컨트롤로 기억할 수있는 유일한 점은 설정되지 않은 경우 아무 것도 서버에 제출되지 않는다는 것입니다. 사후 값의 일부인지 확인해야합니다. 즉,

if(isset($_POST['cbPoints'])) { do something } 

그렇지 않으면 액세스하려고 시도 할 때 오류가 발생합니다.

관련 문제