DB-Aktualiesieren(Datensatz überschreiben)
Melanie
- php
0 Kalle_Worms0 Tom
Hallo,
ich weiss, dieses Thema wurde schon zu oft diskutiert, aber ich komme dennoch nicht weiter mit den Lösungsvorschlägen. also folgendes Problem, ich möchte, wie ihr sehen könnt, das Feld Status bei den Datensätzen ändern. bei mir funzt es so nicht. Bei mir passiert einfach nix...:-( kann mir jemand sagen, ob ich auf dem richtigen weg bin? oder ob es einfach und anderst geht?
hier der code:
<?
include "zugriff.inc";
if (isset ($aktualisieren)) {
$sql = "UPDATE ticket SET status_id = 'neuer_status'";
}
unset ($aktualisieren);
$sql = "SELECT t.ticket_id, t.ticket_name, st.status_name FROM ticket as t Join status as st WHERE t.status_id=st.status_id";
$result = mysql_query($sql);
$num_ticket = mysql_num_rows($result);
echo "<p class="titel_gross">Übersicht</span>";
echo "<table border=0><tr bgcolor="#CCCCCC">";
echo "<td><span class="titel_klein">ID</span></td>";
echo "<td><span class="titel_klein">Titel</span></td>";
echo "<td><span class="titel_klein">Status</span></td>";
for($j=0; $j < $num_ticket; $j++)
{
mysql_data_seek ($result, $j);
$ticket = mysql_fetch_array($result);
echo "<tr>";
echo "<td><span class="text_klein">$ticket[ticket_id]</span></td>";
echo "<td><span class="link_klein">$ticket[ticket_name]</span></td>";;
echo "<td><span class="text_klein">$ticket[status_name]</span></td></tr>";
echo "</tr>";
}
echo "<form name="aktualisieren_form" method="post" action=$PHP_SELF>";
$sql="SELECT * FROM status";
$result = mysql_query($sql);
$num_status = mysql_num_rows($result);
echo "<tr><td><span class="titel_klein">Status:</span></td><td><select name="neuer_status" span class="text_klein">";
for($j=0; $j < $num_status; $j++)
{
mysql_data_seek ($result, $j);
$status = mysql_fetch_array($result);
echo "<option value=$status[status_id]>
$status[status_name]
</option>";
}
echo "</select><br></td></tr>";
echo "<tr><td colspan="2"><input type="submit" value="aktualisieren" name="aktualisieren" span class="text_klein">";
echo "</form></td></tr>";
echo "</table>";
?>
Hallo,
$sql = "UPDATE ticket SET status_id = 'neuer_status'";
Ist status_id ein numerisches DB-Feld ? Da geht doch eher ein Kamel durch ein Nadelöhr als ein String in ein numerisches Feld.
LG Kalle
und für dein
$sql = "UPDATE ticket SET status_id = 'neuer_status'";
fehlt außerdem das
$result = mysql_query($sql);
Du füllst $sql mit falschem Inhalt und schickst es auch nicht ab. Warum sollte da irgendwas in der Datenbank passieren?
LG Kalle
merci habe das
$result = mysql_query($sql);
eingefügt. also das status_id feld ist ein integer feld. leider klappt es immernoch nicht.
Tag Melanie.
$result = mysql_query($sql);
Besser wäre
$result = mysql_query($sql) or die("Anfrage fehlgeschlagen: " . mysql_error());
also das status_id feld ist ein integer feld.
Dein Statement sieht so aus:
$sql = "UPDATE ticket SET status_id = 'neuer_status'";
Du versuchst also, in eine Spalte vom Typ Integer einen String ('neuer_status') zu quetschen, das _muss_ fehlschlagen. Richtig wäre sowas:
$neuer_status = 1;
$sql = "UPDATE ticket SET status_id = $neuer_status";
[dsf 3.6]
Siechfred
Hello liebe Melanie,
was postest Du uns hier den ganzen "Echo-Quark", wenn es doch nur um das Update eines Datensatzes in der DB geht?
Bitte reduziere Deinen Code auf eine vernünftige Funktion, der Du die fertigen und _geprüften_ Daten übergibst. Die Funktion führt dann das Update durch und gibt einen Fehlercode (oder 0 bei Erfolg) zurück; als Beispiel gedacht...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom