Hallo Forum,
ich habe ein Problem mit MS-SQL 2000 und PHP:
Wenn ich aus einem "Bearbeiten"-Formular einen Datensatz aktualisiere und über die UPDATE-Anweisung den Kram wieder in die DB schiebe, wird bei einer Suchanfrage aus dem "suchen"-Formular dieser "geupdatete" Datensatz nicht mehr ausgegeben. Lustigerweise steht er aber (mit der Änderung) in der DB drin.
Hier kommt der Code:
und hier kommt der UPDATE-Befehl:
Zur Erläuterung:
In der Ergebnis-Tabelle des Suchformulars sind die beiden Links "Löschen" und "Bearbeiten" je mit einer Wertzuweisung für die Variable $sent.
Mit der steuere ich dann die Aktion über eine if-Schleife, z. B. $sent==3 für UPDATE nachdem das Bearbeiten-Formular abgeschickt wurde.
Was braucht ihr noch? Auch die Formulare?
Übrigens: mssql_query nach dem UPDATE gibt eine einwandfreie Anweisung aus. Das funktioniert tadellos...
Frage: warum werden die bearbeiteten Daten nach nochmaliger Suche nicht mehr angezeigt?
Gruß!
ich habe ein Problem mit MS-SQL 2000 und PHP:
Wenn ich aus einem "Bearbeiten"-Formular einen Datensatz aktualisiere und über die UPDATE-Anweisung den Kram wieder in die DB schiebe, wird bei einer Suchanfrage aus dem "suchen"-Formular dieser "geupdatete" Datensatz nicht mehr ausgegeben. Lustigerweise steht er aber (mit der Änderung) in der DB drin.
Hier kommt der Code:
PHP-Code:
if ($sent==1){//Formular wurde abgeschickt
// Fehlerprüfungen (unwichtig)
//Fehlermeldung definieren
if (count($fehler)){
?>
<script language="Javascript">
alert('<? foreach($fehler as $fehlername => $fehlertext) echo $fehlertext; ?>');
</script>
<?
unset($sent);//Formular zurücksetzen
}else{
//Auslesen der Einträge für das Auswahl-Formular
$sql = "SELECT * FROM tblStamm WHERE ";
$sql.=" 1= 1 ORDER BY tblStamm.id";
echo $sql;
//Anzeige der Einträge in einer Tabelle
$result=mssql_query($sql);
for($i=0;$i<mssql_num_rows($result);$i++)
{
$ergebnis[$i]=mssql_fetch_array($result);
}
//Schleife für Treffercheck
if($ergebnis>0){
for($i=0;$i<count($ergebnis);$i++)
{
echo "<table border='0' frame='box' margin-top='100' rules='none' bgcolor='#E0E0E0'
align='center' width='900' cellspacing='0' style='margin-bottom: 6px; border:thin solid blue'>
<tr bgcolor='#999999' style='font-weight:bold'>
<td colspan='4' width='66%'>".$ergebnis[$i][gremium]."</td>
<td align='right'>".$ergebnis[$i][datum]."</td>
</tr>
<tr style='font-weight:bold'>
<td width='20%'>".$ergebnis[$i][fztyp]."</td>
<td width='15%'>".$ergebnis[$i][kategorie]."</td>
<td width='15%'>".$ergebnis[$i][stand]."</td>
<td>".$ergebnis[$i][fgruppe]."</td>
<td>".$ergebnis[$i][thema]."</td>
</tr>
<tr>
<td colspan='5'>".$ergebnis[$i][inhalt]."</td>
</tr>
<tr>
<td width='20%'><b>fällig am: </b>".$ergebnis[$i][faellig]."</td>
<td><b>erledigt: </b> ".$ergebnis[$i][erledigt]."</td>
<td colspan='2'>".$ergebnis[$i][abt_name]."</td>
<td align='right'>".$ergebnis[$i][ma_name]."</td>
</tr>
<!-- Einfügen der Links für 'Löschen' und 'Bearbeiten' mit Setzen der verschiedenen 'sent'-Variablen-->
<tr>
<td colspan='4'><a href='bearbeiten.php?id=".$ergebnis[$i][id]."&sent=2'>Löschen</a></td>
<!-- '$sent==2' startet die DELETE-Schleife -->
<td align='right'><a href='bearbeiten.php?id=".$ergebnis[$i][id]."&sent=4'>Bearbeiten</a></td>
<!-- '$sent==4' startet das 'Bearbeiten'-Formular mit übergebenen Daten -->
</tr>
</table>";
}
$weiter="<br><a href='suchen.php'>Neue Suche</a><br>";
echo $weiter;
//Anzeige bei null Treffern
}else{
echo "Sorry! Kein Ergebnis gefunden<br><a href='suchen.php'>Hier geht es weiter...<p></a>";
}
}
}
PHP-Code:
//Speichern der bearbeiteten Datensätze
if($sent==3){
$sql = "UPDATE tblStamm";
$sql.= " SET ";
$sql.= "gremium = '$gremium', ";
$sql.= "datum = '$datum', ";
$sql.= "nr = '$nr', ";
$sql.= "fztyp = '$fztyp', ";
$sql.= "kategorie = '$kategorie', ";
$sql.= "stand = '$stand', ";
$sql.= "fgruppe = '$fgruppe', ";
$sql.= "thema = '$thema', ";
$sql.= "zustaendig = '$zustaendig', ";
$sql.= "erledigt = '$erledigt', ";
$sql.= "faellig = '$faellig', ";
$sql.= "inhalt = '$inhalt', ";
$sql.= "ersteller = '$ersteller' ";
$sql.= "WHERE tblStamm.id=";
$sql.= $id;
mssql_query($sql);
}
In der Ergebnis-Tabelle des Suchformulars sind die beiden Links "Löschen" und "Bearbeiten" je mit einer Wertzuweisung für die Variable $sent.
Mit der steuere ich dann die Aktion über eine if-Schleife, z. B. $sent==3 für UPDATE nachdem das Bearbeiten-Formular abgeschickt wurde.
Was braucht ihr noch? Auch die Formulare?
Übrigens: mssql_query nach dem UPDATE gibt eine einwandfreie Anweisung aus. Das funktioniert tadellos...
Frage: warum werden die bearbeiteten Daten nach nochmaliger Suche nicht mehr angezeigt?
Gruß!
Kommentar