0

基本的にユーザーが参加しているグループを示す Web ページの一部を作成しようとしています。フォーム「makegroup」用のテーブルと「所有されているグループ」用の別のテーブルを配置したいのですが、これらのテーブルは両方とも別の大きなテーブルの行の一部です。しかし、いくら試しても「makegroup」が表示されず、「groupsowned」が完全に代わります。なぜこれが起こっているのですか?コードを投稿する必要がありますか?

<table width="90%" height="125" >

<tr  bgcolor="#CCCCCC"><td height="20" colspan="2"><h4>Groups</h4>
 </td></tr>
 <tr bgcolor="#CCCCCC">
  <?
   if($accountid == $_SESSION['userid'])

 { 

  ?>
    <td width="50%">
    <form name="groupscreate" method="post" onsubmit="return Confirm()">
     <table width="99%" height="6%"  bgcolor="#CCCCCC"> <tr valign="top">

      <td colspan="3"><h5>Create Groups</h5></td></tr>
       <tr><td>

   <input align="absmiddle" type="text" maxlength="25" name="gname" /><? if($nog==1)    {echo "<br /><font color=red>Please enter a valid groupname</font>";}?></td>
   <td><select name="gcategory"> 
                <option value="General" selected>General</option> 
                <option value="Comedy">Comedy</option> 
                <option value="Education">Education</option> 
                <option value="Entertainment">Entertainment</option> 
                <option value="Gaming">Gaming</option> 
                <option value="Music">Music</option> 
                <option value="Science & Technology">Science & Technology</option> 
                <option value="Sports">Sports</option> 
        </select></td><td><input type="submit" name="makegroup"           value="create group"/></td></tr>
 </table>
 </form>
 </td>
 <?
  }

 $grp= "SELECT * from groups where accountid='". $accountid."'";
  $rest = mysql_query($grp,$connection);
  $cont=0;
  ?>
  <td width="50%" >
   <table width="100%" height="20%" bgcolor="#CCCCCC" >
    <tr><td colspan="10"><h5>Groups Owned</h5>
   </td></tr>
 <?
  while($grow=mysql_fetch_array($rest))
    { 

   $cont=$cont+1;
   $gid=$grow['groupid'];
   $gnam=$grow['groupname'];
   $gcreator=$grow['accountid'];
    if($cont==0)
        {
    echo "<tr>"; 
        }


 echo "<td align='left' ><a href='groups_discussions.php?id=".$gid."'><font          color="."#333333"." size='-1'>".$gnam."</font></a></td>";


        if($cont==5)
        {echo "</tr>";}
    } 

  ?>
     </table>
    </td>

    </tr></table>

皆さんにすべて問題ないように見えるかどうか知りたいです。何も問題はありませんが、実際にはフォームが表示されていません:(

4

4 に答える 4

1

コードに問題が山積していました。たとえば、2番目のテーブルで5つの結果の単一のセットしか処理できない、カウンターをインクリメントする(したがって、最小値は常に1になる)、それがゼロかどうかをテストするなどです。 、など。

<table width="90%" height="125" >
  <tr bgcolor="#CCCCCC">
    <td height="20" colspan="2">
      <h4>Groups</h4>
    </td>
  </tr>
  <tr bgcolor="#CCCCCC">
<?
if( isset( $_SESSION['userid'] ) && $accountid==$_SESSION['userid'] ){ 
?>
    <td width="50%">
      <form name="groupscreate" method="post" onsubmit="return Confirm()">
        <table width="99%" height="6%"  bgcolor="#CCCCCC">
          <tr valign="top">
            <td colspan="3">
              <h5>Create Groups</h5>
            </td>
          </tr>
          <tr>
            <td>
              <input align="absmiddle" type="text" maxlength="25" name="gname" />
<?
  if( $nog==1 ){
?>
              <br /><font color="red">Please enter a valid groupname</font>
<?php
  }
?>
            </td>
            <td>
              <select name="gcategory"> 
                <option value="General" selected>General</option> 
                <option value="Comedy">Comedy</option> 
                <option value="Education">Education</option> 
                <option value="Entertainment">Entertainment</option> 
                <option value="Gaming">Gaming</option> 
                <option value="Music">Music</option> 
                <option value="Science & Technology">Science &amp; Technology</option> 
                <option value="Sports">Sports</option> 
              </select>
            </td>
            <td>
              <input type="submit" name="makegroup" value="create group" />
            </td>
          </tr>
        </table>
      </form>
    </td>
<?
}

$grp = "SELECT * from groups where accountid='{$accountid}'";
$rest = mysql_query( $grp , $connection );
$cont = 0;
?>
    <td width="50%" >
      <table width="100%" height="20%" bgcolor="#CCCCCC" >
        <tr>
          <td colspan="10">
            <h5>Groups Owned</h5>
          </td>
        </tr>
<?
if( mysql_num_rows( $rest )>0 ){
  while( $grow = mysql_fetch_array( $rest ) ){
    $gid = $grow['groupid'];
    $gnam = $grow['groupname'];
    $gcreator = $grow['accountid'];
    if( ( $cont%5 )==0 )
      echo '<tr>';

    echo "<td align='left' ><a href='groups_discussions.php?id={$gid}'><font color='#333333' size='-1'>{$gnam}</font></a></td>\n";

    if( ( $cont%5 )==4 )
      echo '</tr>';

    $cont++;
  }
}else{
  echo '<tr><td colspan="10">No Records</td></tr>';
}
?>
      </table>
    </td>
  </tr>
</table>

役立つかもしれません。

于 2012-04-17T06:30:46.627 に答える
1

こんな感じですか?

<table width="90%" height="125" bgcolor="orange">
<tr  bgcolor="#CCCCCC"><td height="20" colspan="2"><h4>Groups</h4></td></tr>
<tr bgcolor="#CCCCCC">
    <td width="50%">
    <form name="groupscreate" method="post" onsubmit="return Confirm()">
        <table width="99%" height="6%"  bgcolor="green"> 
            <tr valign="top">
                <td colspan="3"><h5>Create Groups</h5></td>
            </tr>
            <tr bgcolor="blue">
                <td bgcolor="orange">
                    <input align="absmiddle" type="text" maxlength="25" name="gname" />
                    <?php 
                        $nog = 1;
                        if($nog == 1)    
                            echo "<br /><font color=red>Please enter a valid groupname</font>";
                    ?>
                </td>
                <td bgcolor="yellow">
                    <select name="gcategory"> 
                        <option value="General" selected>General</option> 
                        <option value="Comedy">Comedy</option> 
                        <option value="Education">Education</option> 
                        <option value="Entertainment">Entertainment</option> 
                        <option value="Gaming">Gaming</option> 
                        <option value="Music">Music</option> 
                        <option value="Science & Technology">Science & Technology</option> 
                        <option value="Sports">Sports</option> 
                    </select>
                </td>
                <td bgcolor="red">
                    <input type="submit" name="makegroup" value="create group"/>
                </td>
            </tr>
        </table>
    </form>
    </td>
    <td width="50%">
        <table width="100%" height="20%" bgcolor="pink" >
        <tr><td colspan="10"><h5>Groups Owned</h5></td></tr>
            <?php
            //$grp= "SELECT * from groups where accountid='". $accountid."'";
            //$rest = mysql_query($grp, $connection);
            $rest = array(
                        array('groupid' => '123', 'groupname' => 'testname', 'accountid' => '456'), 
                        array('groupid' => '678', 'groupname' => 'testname2', 'accountid' => '999')
                        );
            $cont = 0;
            foreach ($rest as $grow)
            {
                $gid = $grow['groupid'];
                $gnam = $grow['groupname'];
                $gcreator = $grow['accountid'];

                if($cont == 0)
                    echo "<tr>"; 

                echo "<td align='left' ><a href='groups_discussions.php?id=" . $gid . "'><font color="."#333333"." size='-1'>" . $gnam . "</font></a></td>";

                if($cont == 1)
                    echo "</tr>";
                $cont = $cont + 1;
            }
            ?>
        </table>
    </td>
</tr>

</table>
于 2012-04-17T05:48:42.743 に答える
0

いくつかのこと:

1) この部分...

 $cont=$cont+1;
 $gid=$grow['groupid'];
 $gnam=$grow['groupname'];
 $gcreator=$grow['accountid'];
 if($cont==0)
    {
    echo "<tr>"; 
    }

...最初の反復 $cont=1 以降、if ステートメントを起動しません。($cont=0+1=1)

2) 閉じた後に $cont をリセットする必要があるif($cont==5){echo "</tr>";}}ため、while ステートメントの上部セクションで新しい<tr>タグが作成されます。

于 2012-04-17T05:30:15.713 に答える
0

この条件が一致するかどうかを確認します。if($accountid == $_SESSION['userid'])

一致しない場合、makegroup のフォームは表示されません。

読みやすくするために、コードを少し整理しました。

    <table width="90%" height="125" >
    <tr  bgcolor="#CCCCCC">
        <td height="20" colspan="2"><h4>Groups</h4></td>
    </tr>
    <tr bgcolor="#CCCCCC">
    <?
        if($accountid == $_SESSION['userid'])
        { 
    ?>
        <td width="50%">
            <form name="groupscreate" method="post" onsubmit="return Confirm()">
                <table width="99%" height="6%"  bgcolor="#CCCCCC"> 
                    <tr valign="top">
                        <td colspan="3"><h5>Create Groups</h5></td>
                    </tr>
                    <tr>
                        <td>
                            <input align="absmiddle" type="text" maxlength="25" name="gname" />
                            <? if($nog==1)    {echo "<br /><font color=red>Please enter a valid groupname</font>";}?>
                        </td>
                        <td>
                            <select name="gcategory"> 
                                <option value="General" selected>General</option> 
                                <option value="Comedy">Comedy</option> 
                                <option value="Education">Education</option> 
                                <option value="Entertainment">Entertainment</option> 
                                <option value="Gaming">Gaming</option> 
                                <option value="Music">Music</option> 
                                <option value="Science & Technology">Science & Technology</option> 
                                <option value="Sports">Sports</option> 
                            </select>
                        </td>
                        <td>
                            <input type="submit" name="makegroup" value="create group"/>
                        </td>
                    </tr>
                </table>
            </form>
        </td>
    <?
        }

        $grp= "SELECT * from groups where accountid='". $accountid."'";
        $rest = mysql_query($grp,$connection);
        $cont=0;
    ?>
        <td width="50%" >
            <table width="100%" height="20%" bgcolor="#CCCCCC" >
                <tr>
                    <td colspan="10"><h5>Groups Owned</h5></td>
                </tr>
                <?
                while($grow=mysql_fetch_array($rest))
                { 
                    $cont=$cont+1;
                    $gid=$grow['groupid'];
                    $gnam=$grow['groupname'];
                    $gcreator=$grow['accountid'];
                    if($cont==0)
                        echo "<tr>"; 

                    echo "<td align='left' ><a href='groups_discussions.php?id=".$gid."'><font          color="."#333333"." size='-1'>".$gnam."</font></a></td>";

                    if($cont==5)
                        echo "</tr>";
                } 
                ?>
            </table>
        </td>

    </tr>
</table>
于 2012-04-17T05:27:24.150 に答える