helmuthelmut2000
Goto Top

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?

Content-Key: 169430

Url: https://administrator.de/contentid/169430

Printed on: April 19, 2024 at 15:04 o'clock

Member: dog
dog Jul 08, 2011 at 23:45:31 (UTC)
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!
Member: helmuthelmut2000
helmuthelmut2000 Jul 09, 2011 at 10:44:41 (UTC)
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?
Member: dog
dog Jul 09, 2011 at 12:30:45 (UTC)
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.
Member: helmuthelmut2000
helmuthelmut2000 Jul 09, 2011 at 20:12:42 (UTC)
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.
Member: helmuthelmut2000
helmuthelmut2000 Jul 11, 2011 at 11:19:19 (UTC)
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.
Member: dog
dog Jul 11, 2011 at 11:21:26 (UTC)
Goto Top
Keine Formatierung -> kein Kommentar.
Member: helmuthelmut2000
helmuthelmut2000 Jul 11, 2011 at 16:57:26 (UTC)
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()
> ?>
Member: dog
dog Jul 11, 2011 at 17:00:32 (UTC)
Goto Top
Das versuch doch gleich nochmal:
Member: helmuthelmut2000
helmuthelmut2000 Jul 11, 2011 at 17:07:32 (UTC)
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()
?>
Member: dog
dog Jul 11, 2011 at 17:45:10 (UTC)
Goto Top
 WHERE schluessel = '".$_POST['schluessel']."'";  

das gibt es nicht!
Member: helmuthelmut2000
helmuthelmut2000 Jul 11, 2011 at 18:23:38 (UTC)
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.
Member: helmuthelmut2000
helmuthelmut2000 Jul 12, 2011 at 06:30:46 (UTC)
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?
Member: helmuthelmut2000
helmuthelmut2000 Jul 12, 2011 at 11:16:41 (UTC)
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.
Member: dog
dog Jul 12, 2011 at 15:50:22 (UTC)
Goto Top
Member: helmuthelmut2000
helmuthelmut2000 Jul 13, 2011 at 20:33:02 (UTC)
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).