script speichert zu viel in DB

bigi

Grünschnabel
hi di ho
Wollte mal fragen ob ihr mir helfen könntet.

und zwar geht es um Folgendes ich arbeite zu zeit an ein
Turnier Script was eigentlich auch gut Klappt bis "jetzt" ^^

Wen ich Gruppen einteilen möchte passiert folgendes er schreibt mir in die SQL db ( table )
immer die Anzahl der Spieler die in der DB ( team ) stehen.

Das heißt wenn ich 16 Teams habe schreibt er 16 neue Felder in die DB ( table ) die alle mit Null stehen bis auf ein mal mit der team_id.

Wo dran kann das liegen?

hier mal der Code

PHP:
if($add2team == "<--")
   {
      for($i=0; $i < $rowsteam; $i++)
      {
         $sql = "DELETE FROM fifa_table WHERE team_id = '$teammember[$i]' AND group_id = '$teamid'";
         if(!$query = mysql_query($sql, $db_conn))
         {
            echo dberror();
         }
      }
   }


   if($add2group == "-->")
   {
      for($i=0; $i<$rowsclan; $i++)
      {
         $sql = "INSERT INTO fifa_table (group_id, team_id) VALUES ('$teamid', '$clanmember[$i]')";
         if(!$query = mysql_query($sql, $db_conn))
         {
            echo dberror();
         }
      }
   }


if($view == "member" || $view == "")
{

   titel('team_list.php', 'Teams einer Gruppe zuweisen');
   
   $sql = "SELECT id, t_name, s_name FROM fifa_team ORDER BY s_name ASC";
   if(!$query = mysql_query($sql, $db_conn))
   {
      dberror();
   }
   $rowsclan = mysql_num_rows($query);
   
   $sql2 = "SELECT t.team_id, t.group_id, u.t_name, u.s_name FROM fifa_table t, fifa_team u WHERE t.group_id = '$teamid' AND t.team_id = u.id ORDER BY u.s_name ASC";
   if(!$query2 = mysql_query($sql2, $db_conn))
   {
      dberror();
   }
   $rowsteam = mysql_num_rows($query2);


   for($i=0; $dat2=mysql_fetch_array($query2); $i++)
   {

      $mod[$i] = $dat2[team_id];
      $modname[$i] = $dat2[t_name];
   }  

?>

  <hr>  
<form action="team_member.php" method="post" name="FormName">
   <input type="hidden" name="sub" value="<?PHP echo $sub; ?>">
   <input type="hidden" name="teamid" value="<?PHP echo $teamid; ?>">
   <input type="hidden" name="rowsclan" value="<?PHP echo $rowsclan; ?>">
   <input type="hidden" name="rowsteam" value="<?PHP echo $rowsteam; ?>">
			<table width="600" border="0" cellspacing="0" cellpadding="1">
				<tr>
					<td bgcolor="<?PHP echo $lay_rahmen; ?>">
						<table width="100%" border="0" cellspacing="0" cellpadding="3">
							<tr>
								<td align="center" valign="top" bgcolor="<?PHP echo $lay_tab; ?>"><br>
									<table width="500" border="0" cellspacing="0" cellpadding="0">
										<tr>
											<td align="center" valign="top" width="210"><span class="schrift10"><b>Teams

														<hr size="1">
													</b></span></td>
											<td align="center" valign="middle" width="80"></td>
											<td align="center" valign="top" width="210"><span class="schrift10"><b>Teams in der Gruppe
														<hr size="1">
													</b></span></td>
										</tr>
										<tr>
											<td align="center" valign="top" width="210"><select name="clanmember[]" size="15" multiple>
											<?PHP
											   for($i=0; $dat=mysql_fetch_array($query); $i++)
											   {
											      for($x=0; $x<count($mod); $x++)
											      {
											         if($dat[id] == $mod[$x])
											         {
											            $isinteam = 1;
											            break;
											         }
											         else
											         {
											            $isinteam = 0;
											         }
											      }
											      
											      if($isinteam == 0)
											      {
											        
											         echo "<option value=\"$dat[id]\">$dat[t_name]$dat[s_name]</option>";
											      }
											   }
											?>
												</select></td>
											<td align="center" valign="middle" width="80"><input type="submit" name="add2group" value="--&gt;" border="0"><br>
												<br>
												<input type="submit" name="add2team" value="&lt;--" border="0"></td>
											<td align="center" valign="top" width="210"><select name="teammember[]" size="15" multiple>
											<?PHP
											   for($i=0; $i<count($mod); $i++)
											   {
											      echo "<option value=\"$mod[$i]\">$modname[$i]</option>";
											   }
											?>
												</select></td>
										</tr>
									</table>
									<br>
									<span class="schrift8">Tipp: Durch gedr&uuml;ckt halten der STRG Taste k&ouml;nnen bei manchen Browsern mehrere Member markiert werden</span><br><br>
								</td>
							</tr>
						</table>
					</td>
				</tr>
			</table>
		</form>

<?PHP
}



?>


DB
Code:
id, team_id group_id
1,     7,         1
2,     0,         1
3,     0,         1
4,     0,         1
5,     0,         1
6,     0,         1
.
.
.

Wer goil wen ihr mir helfen könntet ;)

mfg Bigi
 
Zuletzt bearbeitet:
Hi, willkommen im Forum.

Das sieht mir ganz stark nach dem guten, alten register_globals-Problem aus.
Uebergebene Werte sollten nie direkt ueber ihre Variablennamen angesprochen werden, das funktioniert naemlich nur wenn in der php.ini register_globals=on gesetzt ist. Da dies nicht immer der Fall ist (und es auch besser ist wenn es off ist) solltest Du grundsaetzlich mit den superglobalen Arrays wie z.B. $_POST und $_GET arbeiten.
Da Dein Formular mit POST verschickt wird musst Du die Werte also aus $_POST holen.
Aus $teamid wuerde dann also $_POST['teamid'] werden, und so weiter.
 
danke für die schnelle antwort :)

also müste das den so aus sehen ?
PHP:
<form action="team_member.php" method="post" name="FormName"> 
   <input type="hidden" name="sub" value="<?PHP echo $_POST['sub']; ?>"> 
   <input type="hidden" name="teamid" value="<?PHP echo $_POST['teamid']; ?>"> 
   <input type="hidden" name="rowsclan" value="<?PHP echo $_POST['rowsclan']; ?>"> 
   <input type="hidden" name="rowsteam" value="<?PHP echo $_POST['rowsteam']; ?>">
 
Ja, unter anderem. Aber natuerlich muessen auch noch die anderen Stellen angepasst werden wo auf uebergebene Werte zugegriffen wird.
 
Nichts zu danken.
Denk bitte noch daran den Thread als erledigt zu markieren.
Das kannst Du unten ueber den Button mit der Aufschrift "Erledigt" bewerkstelligen.
 
Zurück