helmuthelmut2000

Fehlermeldung bei mssql daten ändern mit php

Notice: Undefined index: Abt in C:\....\2.php on line 22

Ich möchte mit einem php Formular die mssql daten ausgeben und ändern.

Ich habe mal 2 Formulare gemacht nur um den Fehler ausfindig zu machen.

In Formular mit dem Namen 1.php werden die Daten aus der db selectiert und ausgwählt.

<?php 

   //alle Fehler im Browser anzeigen
   ini_set("diplay_errors",1);  
   error_reporting(E_ALL);

define ('MSSQL_HOST','...');  
define ('MSSQL_USER','...');  
define ('MSSQL_PASS','...');  
define ('MSSQL_DATABASE','.....);  

$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);


  $res = mssql_query("SELECT * from Ergebnisse WHERE Abt = '2' ");  
  $num = mssql_num_rows($res);
  
  //Tabellenbeginn
  echo "<div class='navunten_ausgabe'>";  
  echo "<table class='ausgabe full_unten'>";  
  $lf = 1;

  while ($dsatz = mssql_fetch_assoc($res))
  {  
     echo "<td class='td1 tdcenter'><a href='../abt2/2.php?auswahl=" . $dsatz['Schluessel'] . "'>" . $dsatz['Abt'] . "</a></td>";  
     echo "<td class='td2 tdcenter'>" . $dsatz['Kunde'] . "</td>";  
     echo "<td class='td3 tdcenter'>" . $dsatz['Auftrag'] . "</td>";  
     echo "</tr>";  
     $lf = + 1;
  }                
  echo "</table>";  
  echo "</div>";  
   	      mssql_close()
?>

Und hier das Formular 2.php

<?php
   //alle Fehler im Browser anzeigen
   ini_set("diplay_errors",1);  
   error_reporting(E_ALL);

define ('MSSQL_HOST','...');  
define ('MSSQL_USER','...');  
define ('MSSQL_PASS','...');  
define ('MSSQL_DATABASE','.....');  


if(isset($_POST)){
$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);

$sql = "UPDATE Ergebnisse SET abt='".$_POST['Abt']."', kunde='".$_POST['Kunde']."', auftrag='".$_POST['Auftrag']."' WHERE Schluessel = '".$_POST['Schluessel']."'";  
   mssql_query($sql);
}
{
if (isset($_GET['auswahl']))  
$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);

   $sql = "SELECT * from Ergebnisse WHERE Schluessel = '" . $_GET['auswahl']."'";  

   $res = mssql_query($sql);
   $dsatz = mssql_fetch_assoc($res);
}

    echo "<form class='yform columnar' id='addjob' name='addjob' method='post' action=''>";  

    echo "<div class='type-text'>";  
    echo "<label for='abt'>Abt.</label>";  
    echo "<input value='" . $dsatz['Abt'] . "' type='text' name='abt' id='abt' size='5' maxlength='3' />";  
    echo "</div>";  
        
    echo "<div class='type-text'>";  
    echo "<label for='kunde'>Kunde</label>";  
    echo "<input value='" . $dsatz['Kunde'] . "' type='text' name='kunde' id='kunde' size='5' maxlength='3' />";  
    echo "</div>";  
        
    echo "<div class='type-text'>";  
    echo "<label for='auftrag'>Auftrag</label>";  
    echo "<input value='" . $dsatz['Auftrag'] . "' type='text' name='auftrag' id='auftrag' size='5' maxlength='3' />";  
    echo "</div>";  
	echo "<input type='hidden' name='Schluessel' value='" . $dsatz["Schluessel"] . "'>";     
    echo "<p align='center'><input type='submit'  value='  OK  ' id='submit' onclick=self.location.href='1.php'><input type=reset value=&nbsp;Abbruch&nbsp; onclick=self.location.href='1.php'></a></p>";  
    echo "</form>";  
    echo "<p>&nbsp;</p>";  

 mssql_close()
?>

Da werden die Daten ausgegeben aber es kommt auch eine Fehlermeldung:

Notice: Undefined index: Abt in C:\......\abt2\2.php on line 22
Notice: Undefined index: Kunde in C:\......\abt2\2.php on line 22
Notice: Undefined index: Auftrag in C:\......\abt2\2.php on line 22

Wo könnte der Fehler liegen?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 169430

Url: https://administrator.de/forum/fehlermeldung-bei-mssql-daten-aendern-mit-php-169430.html

Ausgedruckt am: 04.06.2025 um 15:06 Uhr

dog
dog 09.07.2011 um 01:45:31 Uhr
Goto Top
Auch wenn ich normalerweise nicht helfe, wenn jemand nicht mal die Code-Formatierung benutzt...

Strings sind case-sensitve und Abt und abt sind zwei verschiedene Dinge!
helmuthelmut2000
helmuthelmut2000 09.07.2011 um 12:44:41 Uhr
Goto Top
OK.

Entschuldigung das mit der Formatierung.

Ich hab jetzt alles: abt in Abt, kunde in Kunde, auftrag in Auftrag geändert.
Da bekomme ich immer noch die gleiche Fehlermeldung.
In der DB stehen die Felder so drin:

Abt
Kunde
Auftrag

Ist der Fehler vielleicht bei den " oder ' oder { und } drin?
dog
dog 09.07.2011 um 14:30:45 Uhr
Goto Top
Weil
if(isset($_POST)){
eine unzureichende Bedingung ist.
$_POST ist immer definiert, egal ob der Benutzer Daten gesendet hat oder nicht.
Das würde nur mit empty() oder mit $_POST['name des submit buttons'] funktionieren.
helmuthelmut2000
helmuthelmut2000 09.07.2011 um 22:12:42 Uhr
Goto Top
Hallo,

if(isset($_POST)){

habe ich in

if(isset($_POST['Schluessel'])){  

geändert.

Jetzt kommt keine Fehlermeldung mehr.
Aber wenn ich OK klicke dann liest es mir immer wieder die Werte in das Formular.
Es sollte aber beim OK die geänderten Werte in die DB Schreiben und dann sollte
das Formular 1.php wieder erscheinen.

Ist das dann so Richtig wenn ich ['Schluessel'] einfüge.

Oder muss da der name der OK Button:
if(isset($_POST['submit'])){  
stehen.
Dann muss ich doch beim OK Button noch einfügen name='submit'

Oder anders?????


Danke.
helmuthelmut2000
helmuthelmut2000 11.07.2011 um 13:19:19 Uhr
Goto Top
Hallo,

Also ich das jetzt so gemacht und das geht nicht.
Ich bekomme jetzt keine Fehlermeldung mehr, Aber wenn ich im
2ten Formular auf senden klicke dann liest es mir immer das
aktuelle, ändert aber nicht die Daten in der DB.
Woran könnte das noch liegen?

1.php

<?php 

   //alle Fehler im Browser anzeigen
   ini_set("diplay_errors",1);  
   error_reporting(E_ALL);

define ('MSSQL_HOST','..');  
define ('MSSQL_USER','..');  
define ('MSSQL_PASS','..');  
define ('MSSQL_DATABASE','....');  

$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);


  $res = mssql_query("SELECT * from Ergebnisse WHERE abt = '2' ");  
  $num = mssql_num_rows($res);
  
  //Tabellenbeginn
  echo "<div class='navunten_ausgabe'>";  
  echo "<table class='ausgabe full_unten'>";  
  $lf = 1;

  while ($dsatz = mssql_fetch_assoc($res))
  {  
     echo "<td class='td1 tdcenter'><a href='../abt2/2.php?auswahl=" . $dsatz['schluessel'] . "'>" . $dsatz['abt'] . "</a></td>";  
     echo "<td class='td2 tdcenter'>" . $dsatz['kunde'] . "</td>";  
     echo "<td class='td3 tdcenter'>" . $dsatz['auftrag'] . "</td>";  
	 echo "<input type='hidden' name='schluessel' value='" . $dsatz["schluessel"] . "'>";  
     echo "</tr>";  
     $lf = + 1;
  }                
  echo "</table>";  
  echo "</div>";  
   	      mssql_close()
?>

2.php

<?php
   //alle Fehler im Browser anzeigen
   ini_set("diplay_errors",1);  
   error_reporting(E_ALL);

define ('MSSQL_HOST','..');  
define ('MSSQL_USER','..');  
define ('MSSQL_PASS','..');  
define ('MSSQL_DATABASE','....');  


if ((isset($_POST['submit']) && ($_POST['submit'] == 'senden'))) {  
$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);

$sql = "UPDATE Ergebnisse SET abt='".$_POST['abt']."', kunde='".$_POST['kunde']."', auftrag='".$_POST['auftrag']."' WHERE schluessel = '".$_POST['schluessel']."'";  
   mssql_query($sql);
}

if (isset($_GET['auswahl'])){  
$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);

   $sql = "SELECT * from Ergebnisse WHERE schluessel = '" . $_GET['auswahl']."'";  

   $res = mssql_query($sql);
   $dsatz = mssql_fetch_assoc($res);
    mssql_query($sql);
}

    echo "<form class='yform columnar' id='addjob' name='addjob' method='post' action=''>";  

    echo "<div class='type-text'>";  
    echo "<label for='abt'>Abt.</label>";  
    echo "<input value='" . $dsatz['abt'] . "' type='text' name='abt' id='abt' size='5' maxlength='3' />";  
    echo "</div>";  
        
    echo "<div class='type-text'>";  
    echo "<label for='kunde'>Kunde</label>";  
    echo "<input value='" . $dsatz['kunde'] . "' type='text' name='kunde' id='kunde' size='5' maxlength='3' />";  
    echo "</div>";  
        
    echo "<div class='type-text'>";  
    echo "<label for='auftrag'>Auftrag</label>";  
    echo "<input value='" . $dsatz['auftrag'] . "' type='text' name='auftrag' id='auftrag' size='5' maxlength='3' />";  
    echo "</div>";     
    echo "<p align='center'><input type='submit' name='senden' value='senden'><input type=reset value=&nbsp;Abbruch&nbsp; onclick=self.location.href='1.php'></a></p>";  
    echo "</form>";  
    echo "<p>&nbsp;</p>";  

 mssql_close()
?>

Danke.
dog
dog 11.07.2011 um 13:21:26 Uhr
Goto Top
Keine Formatierung -> kein Kommentar.
helmuthelmut2000
helmuthelmut2000 11.07.2011 um 18:57:26 Uhr
Goto Top
OK.

<?php 
> 
> alle Fehler im Browser anzeigen
> ini_set("diplay_errors",1);  
> error_reporting(E_ALL);
>
> define ('MSSQL_HOST','..');  
> define ('MSSQL_USER','..');  
> define ('MSSQL_PASS','..');  
> define ('MSSQL_DATABASE','....');  
>
> $db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
> $select=mssql_select_db(MSSQL_DATABASE);
>
>
> $res = mssql_query("SELECT * from Ergebnisse WHERE abt = '2' ");  
> $num = mssql_num_rows($res);
>
> Tabellenbeginn
> echo "<div class='navunten_ausgabe'>";  
> echo "<table class='ausgabe full_unten'>";  
> $lf = 1;
>
> while ($dsatz = mssql_fetch_assoc($res))
> { 
> echo "<td class='td1 tdcenter'><a href='../abt2/2.php?auswahl=" . $dsatz['schluessel'] . "'>" . $dsatz['abt'] . "</a></td>";  
> echo "<td class='td2 tdcenter'>" . $dsatz['kunde'] . "</td>";  
> echo "<td class='td3 tdcenter'>" . $dsatz['auftrag'] . "</td>";  
> echo "<input type='hidden' name='schluessel' value='" . $dsatz["schluessel"] . "'>";  
> echo "</tr>";  
> $lf = + 1;
> } 
> echo "</table>";  
> echo "</div>";  
> mssql_close()
> ?>

2.php

<?php
> //alle Fehler im Browser anzeigen
> ini_set("diplay_errors",1);  
> error_reporting(E_ALL);
>
> define ('MSSQL_HOST','..');  
> define ('MSSQL_USER','..');  
> define ('MSSQL_PASS','..');  
> define ('MSSQL_DATABASE','....');  
>
>
> if ((isset($_POST['submit']) && ($_POST['submit'] == 'senden'))) {  
> $db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
> $select=mssql_select_db(MSSQL_DATABASE);
>
> $sql = "UPDATE Ergebnisse SET abt='".$_POST['abt']."', kunde='".$_POST['kunde']."', auftrag='".$_POST['auftrag']."' WHERE schluessel = '".$_POST['schluessel']."'";  
> mssql_query($sql);
> }
>
> if (isset($_GET['auswahl'])){  
> $db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
> $select=mssql_select_db(MSSQL_DATABASE);
>
> $sql = "SELECT * from Ergebnisse WHERE schluessel = '" . $_GET['auswahl']."'";  
> 
> $res = mssql_query($sql);
> $dsatz = mssql_fetch_assoc($res);
> mssql_query($sql);
> }
>
> echo "<form class='yform columnar' id='addjob' name='addjob' method='post' action=''>";  
> 
> echo "<div class='type-text'>";  
> echo "<label for='abt'>Abt.</label>";  
> echo "<input value='" . $dsatz['abt'] . "' type='text' name='abt' id='abt' size='5' maxlength='3' />";  
> echo "</div>";  
> 
> echo "<div class='type-text'>";  
> echo "<label for='kunde'>Kunde</label>";  
> echo "<input value='" . $dsatz['kunde'] . "' type='text' name='kunde' id='kunde' size='5' maxlength='3' />";  
> echo "</div>";  
> 
> echo "<div class='type-text'>";  
> echo "<label for='auftrag'>Auftrag</label>";  
> echo "<input value='" . $dsatz['auftrag'] . "' type='text' name='auftrag' id='auftrag' size='5' maxlength='3' />";  
> echo "</div>";   
> echo "<p align='center'><input type='submit' name='senden' value='senden'><input type=reset value=&nbsp;Abbruch&nbsp; onclick=self.location.href='1.php'></a></p>";  
> echo "</form>";  
> echo "<p>&nbsp;</p>";  
>
> mssql_close()
> ?>
dog
dog 11.07.2011 um 19:00:32 Uhr
Goto Top
Das versuch doch gleich nochmal:
helmuthelmut2000
helmuthelmut2000 11.07.2011 um 19:07:32 Uhr
Goto Top
OK

<?php 

alle Fehler im Browser anzeigen
ini_set("diplay_errors",1);  
error_reporting(E_ALL);

define ('MSSQL_HOST','..');  
define ('MSSQL_USER','..');  
define ('MSSQL_PASS','..');  
define ('MSSQL_DATABASE','....');  

$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);


$res = mssql_query("SELECT * from Ergebnisse WHERE abt = '2' ");  
$num = mssql_num_rows($res);

Tabellenbeginn
echo "<div class='navunten_ausgabe'>";  
echo "<table class='ausgabe full_unten'>";  
$lf = 1;

while ($dsatz = mssql_fetch_assoc($res))
{ 
echo "<td class='td1 tdcenter'><a href='../abt2/2.php?auswahl=" . $dsatz['schluessel'] . "'>" . $dsatz['abt'] . "</a></td>";  
echo "<td class='td2 tdcenter'>" . $dsatz['kunde'] . "</td>";  
echo "<td class='td3 tdcenter'>" . $dsatz['auftrag'] . "</td>";  
echo "<input type='hidden' name='schluessel' value='" . $dsatz["schluessel"] . "'>";  
echo "</tr>";  
$lf = + 1;
} 
echo "</table>";  
echo "</div>";  
mssql_close()
?>

2.php

<?php
//alle Fehler im Browser anzeigen
ini_set("diplay_errors",1);  
error_reporting(E_ALL);

define ('MSSQL_HOST','..');  
define ('MSSQL_USER','..');  
define ('MSSQL_PASS','..');  
define ('MSSQL_DATABASE','....');  


if ((isset($_POST['submit']) && ($_POST['submit'] == 'senden'))) {  
$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);

$sql = "UPDATE Ergebnisse SET abt='".$_POST['abt']."', kunde='".$_POST['kunde']."', auftrag='".$_POST['auftrag']."' WHERE schluessel = '".$_POST['schluessel']."'";  
mssql_query($sql);
}

if (isset($_GET['auswahl'])){  
$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);

$sql = "SELECT * from Ergebnisse WHERE schluessel = '" . $_GET['auswahl']."'";  

$res = mssql_query($sql);
$dsatz = mssql_fetch_assoc($res);
mssql_query($sql);
}

echo "<form class='yform columnar' id='addjob' name='addjob' method='post' action=''>";  

echo "<div class='type-text'>";  
echo "<label for='abt'>Abt.</label>";  
echo "<input value='" . $dsatz['abt'] . "' type='text' name='abt' id='abt' size='5' maxlength='3' />";  
echo "</div>";  

echo "<div class='type-text'>";  
echo "<label for='kunde'>Kunde</label>";  
echo "<input value='" . $dsatz['kunde'] . "' type='text' name='kunde' id='kunde' size='5' maxlength='3' />";  
echo "</div>";  

echo "<div class='type-text'>";  
echo "<label for='auftrag'>Auftrag</label>";  
echo "<input value='" . $dsatz['auftrag'] . "' type='text' name='auftrag' id='auftrag' size='5' maxlength='3' />";  
echo "</div>";   
echo "<p align='center'><input type='submit' name='senden' value='senden'><input type=reset value=&nbsp;Abbruch&nbsp; onclick=self.location.href='1.php'></a></p>";  
echo "</form>";  
echo "<p>&nbsp;</p>";  

mssql_close()
?>
dog
dog 11.07.2011 um 19:45:10 Uhr
Goto Top
 WHERE schluessel = '".$_POST['schluessel']."'";  

das gibt es nicht!
helmuthelmut2000
helmuthelmut2000 11.07.2011 um 20:23:38 Uhr
Goto Top
Warum nicht?

WHERE schluessel = '".$_POST['auswahl']."'";  

Das geht aber auch nicht.
Und ich muss das doch irgend wie mitteilen, was wo geändert wird.
helmuthelmut2000
helmuthelmut2000 12.07.2011 um 08:30:46 Uhr
Goto Top
So funktioniert es jetzt.

<?php
   //alle Fehler im Browser anzeigen
   ini_set("diplay_errors",1);  
   error_reporting(E_ALL);

define ('MSSQL_HOST','..');  
define ('MSSQL_USER','..');  
define ('MSSQL_PASS','..');  
define ('MSSQL_DATABASE','....');  


if ((isset($_POST['submit']) && ($_POST['submit'] == 'senden'))) {  
$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);

$sql = "UPDATE Ergebnisse SET abt= '$_POST[abt]',   
							  kunde='$_POST[kunde]',   
							  auftrag='$_POST[auftrag]'   
						WHERE schluessel = '$_POST[schluessel]'";  
   mssql_query($sql);
}

if (isset($_GET['auswahl'])){  
$db_link=mssql_connect(MSSQL_HOST,MSSQL_USER,MSSQL_PASS);
$select=mssql_select_db(MSSQL_DATABASE);

   $sql = "SELECT * from Ergebnisse WHERE schluessel = '" . $_GET['auswahl']."'";  

   $res = mssql_query($sql);
   $dsatz = mssql_fetch_assoc($res);
    mssql_query($sql);
}

    echo "<form class='yform columnar' id='addjob' name='addjob' method='post' action=''>";  

    echo "<div class='type-text'>";  
    echo "<label for='abt'>Abt.</label>";  
    echo "<input value='" . $dsatz['abt'] . "' type='text' name='abt' id='abt' size='5' maxlength='3' />";  
    echo "</div>";  
        
    echo "<div class='type-text'>";  
    echo "<label for='kunde'>Kunde</label>";  
    echo "<input value='" . $dsatz['kunde'] . "' type='text' name='kunde' id='kunde' size='5' maxlength='3' />";  
    echo "</div>";  
        
    echo "<div class='type-text'>";  
    echo "<label for='auftrag'>Auftrag</label>";  
    echo "<input value='" . $dsatz['auftrag'] . "' type='text' name='auftrag' id='auftrag' size='5' maxlength='3' />";  
    echo "</div>";     
	echo "<input type='hidden' name='schluessel' value='" . $dsatz["schluessel"] . "'>";  
    echo "<p align='center'><input type='submit'  value='senden' id='submit' name='submit'><input type=reset value=&nbsp;Abbruch&nbsp; onclick=self.location.href='1.php'></a></p>";  
    echo "</form>";  
    echo "<p>&nbsp;</p>";  

 mssql_close()
?>


Kann ich das so nehmen?
helmuthelmut2000
helmuthelmut2000 12.07.2011 um 13:16:41 Uhr
Goto Top
Hallo,

Noch was.
Nach dem klicken auf senden, sollte auf man auf die Seite 1.php wieder kommen,
mit den neuen Daten.
Wo trägt man das ein?

Danke.
dog
dog 12.07.2011 um 17:50:22 Uhr
Goto Top
helmuthelmut2000
helmuthelmut2000 13.07.2011 um 22:33:02 Uhr
Goto Top
Hallo,

Muss ich das nicht in der
echo "<p align='center'><input type='submit'  value='senden' id='submit' name='submit'><input type=reset value=&nbsp;Abbruch&nbsp; onclick=self.location.href='1.php'></a></p>";   
Zeile mit einbauen.
Bei mir schaut das so aus:

<input type='submit'  value='senden' id='submit' name='submit' onClick='return EingabenUeberpruefen();'>  
Und senden klicken sollte die vorherige Seite kommen(aktualisiert).