Variablen aus Formular übernehmen, wie?

ricoL

Grünschnabel
Hallo, für die meisten wird mein Problem wohl keins sein, denoch verzweifel ich im Moment daran.

Habe ein Formular, dort werden die Input-Felder ja per name dann später übergeben.
Jedenfalls möchte ich vorher noch ein paar Berechnungen mit diesen Variablen machen, bevor sie zur Datenbank gehen.

PHP:
<?php
include ("header.php");
include ("config.inc.php");

echo "
<html>
<head>
<title></title>

<style type=\"text/css\">

body {background:#00496C;}
.form {font-family:arial; font-size:13px;color:#FFFF00};

</style>

</head>
<body text=\"#000000\" bgcolor=\"#FFFFFF\" link=\"#FF0000\" alink=\"#FF0000\" vlink=\"#FF0000\">
<form action=\"\" method=\"post\" action=\"liga_update.php\">

 <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
 <tr><td colspan=\"2\" class=\"form\">W&auml;hlen sie bitte die Mannschaften aus:</td></tr>
 <tr>
 		
		
		<td align=\"left\"><select name=\"gegner1\">";

		$connect = mysql_connect($host,$benutzername,$passwort);
		@mysql_connect  ( $host, $benutzername, $passwort) or
             	die ("Verbindung zur Datenbank nicht möglich !");
		if (!mysql_select_db( $dbname))
  		echo mysql_error($connect);
		$daten = mysql_query ("select name from bundesliga order by 'name' desc limit 0, 30  ");
		while ($row = mysql_fetch_row($daten))
		{
        	echo "<option>". $row[1] ."</option>";
		}mysql_close ($connect);
		echo"	
		</select>
		
         	</td>
	
	
		
         	<td align=\"left\"><select name=\"gegner1\" >";

		$connect = mysql_connect($host,$benutzername,$passwort);
		@mysql_connect  ( $host, $benutzername, $passwort) or
             	die ("Verbindung zur Datenbank nicht möglich !");
		if (!mysql_select_db( $dbname))
  		echo mysql_error($connect);
		$daten = mysql_query ("select name from bundesliga order by 'name' desc limit 0, 30  ");
		while ($row = mysql_fetch_row($daten))
		{
        	echo "<option>". $row[1] ."</option>";
		}mysql_close ($connect);
		echo"	
		</select>
		
         	</td>
 </tr>
  <tr><td>&nbsp;</td></tr>
 <tr><td colspan=\"2\" class=\"form\"> Bitte Ergebnis eintragen :</td></tr>

<tr>
	<td align=\"right\">
	<input name=\"tore1\" value=\"echo $_POST[tore1];\" size=\"1\" ></input><b class=\"form\">&nbsp; : &nbsp;</b>
         </td>

         <td align=\"left\">
	<input name=\"tore2\" value=\"echo $_POST[tore2];\" size=\"1\"></input>
         </td>";


// Berechnung   -- 

	$connect = mysql_connect($host,$benutzername,$passwort);
	@mysql_connect  ( $host, $benutzername, $passwort) or
        die ("Verbindung zur Datenbank nicht möglich !");
	if (!mysql_select_db( $dbname))
  	echo mysql_error($connect);
	$daten = mysql_query ("select * from bundesliga order by 'name' desc limit 0, 30  ");



if ($tore1 > $tore2)	{
(Zeile 95)
                      select * from bundesliga where name = '$gegner1' ;
	$PunkteWin = $PunkteWin + 2;
         $ToreWin = $ToreWin + Tore1;
         $ToreLoss = $ToreLoss + $Tore2;
         $Dif = $ToreWin  - $ToreLoss;
	$strSQL="Update bundesliga set  '$ToreWin'='$ToreWin' , '$ToreLoss'='$ToreLoss', $PunkteWin'='$PunkteWin', '$Dif'='$Dif' where name='$gegner2'";
	AND
         select * from bundesliga where gegner2 = '$name';
         $PunkteLoss = $PunkteLoss + 2;
         $ToreWin = $ToreWin + $Tore2;
         $ToreLoss = $ToreLoss + $Tore1;
         $Dif = $ToreWin - $ToreLoss;

	$strSQL="Update bundesliga set  '$ToreWin'='$ToreWin' , '$ToreLoss'='$ToreLoss', '$PunkteLoss'='$PunkteLoss', '$Dif'='$Dif' where gegner2='$name'";

         		}
</form>
	


</body>
</html>
?>


Allerdings bekomme ich immer diese Fehlermeldung:

Parse error: parse error, unexpected T_STRING in /www/htdocs/v093191/rsc_php/admin/bundesliga.php on line 95
 
PHP:
// Berechnung   -- 

	$connect = mysql_connect($host,$benutzername,$passwort);
	@mysql_connect  ( $host, $benutzername, $passwort) or
        die ("Verbindung zur Datenbank nicht möglich !");
	if (!mysql_select_db( $dbname))
  	echo mysql_error($connect);
	$daten = mysql_query ("select * from bundesliga order by 'name' desc limit 0, 30  ");



94  if ($tore1 > $tore2)	{
95	select * from bundesliga where name = '$gegner1' ; //name ist tabellenspalte name
96	$PunkteWin = $PunkteWin + 2;
 
Und wo kommt diese Zeile her?


Zitat:
--------------------------------------------------------------------------------
select * from bundesliga where name = '$gegner1' ;
--------------------------------------------------------------------------------

er soll die komplette Zeile selectieren, damit ich etwas mit den Werten machen kann, aber nur die Zeile wo der name gleich dem namen aus gegner 1 input feld ist

ohoh ich glaube ich ahne den Fehler schon
 
Original geschrieben von ricoL
Und wo kommt diese Zeile her?


Zitat:
--------------------------------------------------------------------------------
select * from bundesliga where name = '$gegner1' ;
--------------------------------------------------------------------------------

er soll die komplette Zeile selectieren, damit ich etwas mit den Werten machen kann, aber nur die Zeile wo der name gleich dem namen aus gegner 1 input feld ist

ohoh ich glaube ich ahne den Fehler schon

Wenn du aus der DB was auslesen willst, dann musst du das so machen:

Code:
$SQL="SELECT * FROM bundesliga WHERE name='$gegner';
$result=mysql_query($SQL);
$row=mysql_fetch_array($result, MYSQL_ASSOC);

Und jetzt kannst du mit $row['Spaltenname'] mit den Werten arbeiten.
 
Ah Danke dir für Deine Antwort, hab an diese Möglichkeit erst gedacht, aber dann nahm ich an, es ginge auch so. Ok Wieder was gelernt und danke das ich als Anfänger nicht gleich "runter " gemacht werde, wie es auf anderen Boards üblich ist.

Danke :)
 
Original geschrieben von ricoL
Ah Danke dir für Deine Antwort, hab an diese Möglichkeit erst gedacht, aber dann nahm ich an, es ginge auch so. Ok Wieder was gelernt und danke das ich als Anfänger nicht gleich "runter " gemacht werde, wie es auf anderen Boards üblich ist.

Danke :)

Kein Problem. Du kannst dir übrigens eine DB Abfrage sparen. Setzt die Bedingung WHERE name='$gegner1' gleich in die erste Abfrage, dann bekommst sowieso nur die eine Zeile, sofern du nicht mehrere Gegner mit dem gleichen Namen hast.
 
:(
soweit funktioniert nun alles, aber die Daten werden nciht gespeichert, obwohl am ende da steht 1 Datensatz wurde gespeichert . Es steht immer nur 0 on der jeweiligen Spalte beim jeweiligen Namen. habe Typ NOT NULL Standart 0 bei create gemacht als integer (11)

PHP:
$edit=mysql_query ("select * from bundesliga where name = '$gegner1' ");
	
	$row=mysql_fetch_array($edit);
		


	
	
	
      $PW = $row['PunkteWin'] + 2;
        $TW = $row['ToreWin'] + $tore1;
        $TL= $row['ToreLoss'] + $tore2;
        $Dif = $TW - $TL;
	
	
	$connect = mysql_connect($host,$benutzername,$passwort);
	@mysql_connect  ( $host, $benutzername, $passwort) or
        die ("Verbindung zur Datenbank nicht möglich !");
	if (!mysql_select_db( $dbname))
  	echo mysql_error($connect);
	
	
	$strSQL="UPDATE bundesliga SET  ToreWin='$TW' , ToreLoss='$TL', PunkteWin='$PW', Dif='$Dif' WHERE name = '$gegner1'  ";

Ich erkenne aber auch keinen Fehler :(
 
Zuletzt bearbeitet:
PHP:
 $strSQL="UPDATE bundesliga SET  ToreWin='$TW' , ToreLoss='$TL', PunkteWin='$PW', Dif='$Dif' WHERE name = $gegner1 ";
Das Query muss ja ausgefürht werden ,also
PHP:
 $strSQL="UPDATE bundesliga SET  ToreWin='$TW' , ToreLoss='$TL', PunkteWin='$PW', Dif='$Dif' WHERE name = $gegner1 ";
mysql_query($strSQL);
 
oh :( ich dummie

Tut mir leid, solch doofe Fragen zu stellen, aber hab den Fehler echt nciht gefunden.

Danke dir für deine Hilfe :)
 
Zurück