php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Status von einem Eintrag ändern


 
user1234
22-10-2003, 18:55 
 
Hallo!

Das Selectmenü soll den Status des jeweiligen Eintrages ändern doch wie lautet der Befehl und wie verbinde ich Menü mit Befehl?



<?php


// Konfigurationsdatei laden
@mysql_connect(XXXXXX, YYYYYYY, ZZZZZZZZ) OR die(mysql_error());
mysql_select_db(AAAAAAAA) OR die(mysql_error());
$sql = "SELECT
*
FROM
bestellung ORDER by datum desc";

$result = mysql_query($sql) OR die(mysql_error());
echo "Offene Posten:<br />\n";
if(mysql_num_rows($result))
{
while($row = mysql_fetch_object($result))
{

echo "<tr>\n";

echo "<td>$row->datum</td>\n";
echo "<td>$row->filiale</td>\n";
echo "<td>$row->mitarbeiter</td>\n";
echo "<td>$row->kunde</td>\n";
echo "<td>$row->phone</td>\n";
echo "<td><form name='form1' method='post' action=''>
<select name=id>
<option>$row->status</option>
<option></option>
<option>bestellt</option>
<option>angekommen</option>
<option>l&ouml;schen</option>
</select>
</form></td>\n";



}
}
else
{
echo "Es sind keine Daten in der Datenbank vorhanden<br />\n";
}

$loeschen = "DELETE FROM bestellung WHERE status = 'l&ouml;schen'";
$loesch = mysql_query($loeschen);



?>


mfg und danke im Voraus ... Heiko

 
frezno
22-10-2003, 20:44 
 
Original geschrieben von user1234
<form name='form1' method='post' action=''>
hier solltest du der action auch sagen, was gemacht werden soll.

<option>l&ouml;schen</option>
die option braucht einen Wert, damit man weiss, was gewählt wurde, z.B.
<option value="loeschen">l&ouml;schen</option>

Woher weisst du, dass das Formular abgesendet worden ist?
Es sollte vor dem Ende des Formzulars also auch noch ein SUBMIT Button rein

jetzt must du nur noch prüfen, ob der Submit Button gedrückt wurde und welche Option gewählt wurde, bzw. ob 'löschen' gewählt wurde.

Kannst ja auch mal kurz im Forum suchen.
Wurde - auch erst kürzlich - schon paarmal besprochen.

 
user1234
23-10-2003, 12:21 
 
Danke für die Antwort. Ich habe es noch einmal umgeschrieben und hoffe es ist nun übersichtlicher, da ich vorher den Rest wie z.b. den SubmitButton ausserhalb des php-codes hatte.


<?php

echo "<table width= \"550\" align=\"center\" border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
echo "<tr bgcolor=\"ff0084\">\n";
echo "<td width=\"65\">Datum</td>\n";
echo "<td width=\"92\">Filiale</td>\n";
echo "<td width=\"70\">Mitarbeiter</td>\n";
echo "<td width=\"216\">Kunde</td>\n";
echo "<td width=\"48\">Phone</td>\n";
echo "<td width=\"59\">Status</td>\n";
echo "</tr>";

@mysql_connect(localhost, XXXXX, YYYYYY) OR die(mysql_error());
mysql_select_db(ZZZZZZZZZ) OR die(mysql_error());
$sql = "SELECT
*
FROM
bestellung ORDER by datum desc";

$result = mysql_query($sql) OR die(mysql_error());
echo "Offene Posten:<br />\n";
if(mysql_num_rows($result))
{
while($row = mysql_fetch_object($result))
{
echo "<tr>";
echo "<td>$row->datum</td>\n";
echo "<td>$row->filiale</td>\n";
echo "<td>$row->mitarbeiter</td>\n";
echo "<td>$row->kunde</td>\n";
echo "<td>$row->phone</td>\n";
echo "<td><form name=\"form1\" method=\"post\" action=\"\">
<select name=id>
<option>$row->status</option>
<option></option>
<option value=\"bestellt\">bestellt</option>
<option value=\"angekommen\">angekommen</option>
<option value=\"loeschen\">l&ouml;schen</option>
</select>
</form></td>\n";
}

echo "</tr>\n";
echo "<form name=\"form1\" method=\"post\" action=\"\">
<input type=\"submit\" name=\"Submit\" value=\"Abschicken\">
</form>\n";
echo "</table>\n";


}
else
{
echo "Es sind keine Daten in der Datenbank vorhanden<br />\n";
}

$loeschen = "DELETE FROM bestellung WHERE status = 'l&ouml;schen'";
$loesch = mysql_query($loeschen);



?>


Wie müsste die Aktion lauten? Gelöscht werden soll nur wenn der Status auf "löschen" gesetzt wurde. Also glaube ich, reicht es wenn ich den Status ändern kann, oder? Nur wie lautet der passende Befehl? Ich habe garantiert das halbe Forum durchgeklickt und nicht das passende gefunden oder das gefundene nicht verstanden!


mfg Heiko

 
wahsaga
23-10-2003, 15:26 
 
Original geschrieben von user1234
Wie müsste die Aktion lauten? Gelöscht werden soll nur wenn der Status auf "löschen" gesetzt wurde.
als action solltest du das ziel angeben, zu dem deine daten geschickt werden sollen - also wahrscheinlich dein php-script.

wie dieses dann bei status "löschen" reagiert, wird im script entschieden.

btw: derzeit hast du dein <select> ausserhalb des formulares stehen - wenn der wert mit übergeben werden soll, muss es aber natürlich ins formular mit rein ...

Original geschrieben von frezno
die option braucht einen Wert, damit man weiss, was gewählt wurde
nein, braucht sie nicht unbedingt. wenn kein value angegeben wird, wird als wert das verschickt, was zwischen <option> und </option> als text steht.

 
user1234
23-10-2003, 15:39 
 
Ich weiß nicht genau ob ich dich richtig verstanden habe, aber mit dem Löschen funktioniert ja alles. Setze ich in PHPMyAdmin den Status auf löschen und klicke auf der Seite den SubmitButton an, wird der Eintrag ja gelöscht. Soweit ist es ja in Ordnung. Ich möchte mittels dem Menü den Status des jeweligen Eintrages ändern und da bin ich seit mehreren Tagen am grübeln. Also wie übernehme ich die Einstellungen aus dem Menü so, dass sie in der Datenbank stehen?

 
user1234
23-10-2003, 17:19 
 
Ich habe jetzt das script umgeschrieben sodas die daten in einem Formular ausgegeben werden.


Hier die abfrage.php

<?php

echo "<table width= \"550\" align=\"center\" border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
echo "<tr bgcolor=\"ff0084\">\n";
echo "<td width=\"65\">Datum</td>\n";
echo "<td width=\"92\">Filiale</td>\n";
echo "<td width=\"70\">Mitarbeiter</td>\n";
echo "<td width=\"216\">Kunde</td>\n";
echo "<td width=\"47\">Phone</td>\n";
echo "<td width=\"59\">Status</td>\n";
echo "</tr>";

@mysql_connect(localhost, AAAAAA, BBBBBB) OR die(mysql_error());
mysql_select_db(CCCCCCC) OR die(mysql_error());
$sql = "SELECT
*
FROM
bestellung ORDER by datum desc";

$result = mysql_query($sql) OR die(mysql_error());
echo "Offene Posten:<br />\n";
if(mysql_num_rows($result))
{
while($row = mysql_fetch_object($result))
{

echo "<tr>";
echo "<form name=\"form1\" method=\"POST\" action=\"abfrage_ergebnis.php\">";
echo "<td><input name=\"datum\" type=\"hidden\">$row->datum</td>\n";
echo "<td><input name=\"filiale\" type=\"hidden\">$row->filiale</td>\n";
echo "<td><input name=\"mitarbeiter\" type=\"hidden\">$row->mitarbeiter</td>\n";
echo "<td><input name=\"kunde\" type=\"hidden\">$row->kunde</td>\n";
echo "<td><input name=\"phone\" type=\"hidden\">$row->phone</td>\n";
echo "<td>
<select name=\"status\" >
<option>$row->status</option>
<option></option>
<option value=\"bestellt\">bestellt</option>
<option value=\"angekommen\">angekommen</option>
<option value=\"loeschen\">l&ouml;schen</option>
</select></td>\n";
}


echo "<input type=\"submit\" name=\"Submit\" value=\"Abschicken\">
</form>\n";
echo "</tr>\n";
echo "</table>\n";


}
else
{
echo "Es sind keine Daten in der Datenbank vorhanden<br />\n";
}


$loeschen = "DELETE FROM bestellung WHERE status = 'loeschen'";
$loesch = mysql_query($loeschen);



?>


und hier hin soll es geleitet werden

abfrage_ergebnis.php

<?

include("../connect.inc.php");


$datum = $HTTP_POST_VARS["date"];
$mitarbeiter = $HTTP_POST_VARS["mitarbeiter"];
$filiale = $HTTP_POST_VARS["filiale"];
$kunde = $HTTP_POST_VARS["kunde"];
$phone = $HTTP_POST_VARS["phone"];
$status = $HTTP_POST_VARS["status"];


include ("abfrage.php");
?>


Wie übergebe ich die Daten jetzt als UPDATE an die Datenbank? Und werden auch mehrere Einträge auf einmal geändert?

 
wahsaga
23-10-2003, 17:56 
 
Original geschrieben von user1234
Wie übergebe ich die Daten jetzt als UPDATE an die Datenbank?
erstelle dir an hand der daten dein gewünschtes UPDATE-statement zusammen, und führe dieses dann aus (ich habe den eindruck, du weisst gar nicht, wie das geht? dann solltest du erstmal hier (http://www.schattenbaum.net/php/mstart.php) die nötigen grundlagen lernen gehen.)


und meinen hinweis, dass sich das select-feld, das du erzeugst, ausserhalb deines forms befindet, hast du auch noch nicht berücksichtigt ...

 
user1234
23-10-2003, 19:47 
 
und meinen hinweis, dass sich das select-feld, das du erzeugst, ausserhalb deines forms befindet, hast du auch noch nicht berücksichtigt ...

:confused: Ich komm mir mittlerweile ganz schön blöd vor weil ich den Fehler nicht finde!!!:confused:

 
Seccho
23-10-2003, 19:57 
 
mach das mal IN die while schlaufe...



while($row = mysql_fetch_object($result))

{


echo "<tr>";

echo "<form name=\"form1\" method=\"POST\" action=\"abfrage_ergebnis.php\">";

echo "<td><input name=\"datum\" type=\"hidden\">$row->datum</td>\n";

echo "<td><input name=\"filiale\" type=\"hidden\">$row->filiale</td>\n";

echo "<td><input name=\"mitarbeiter\" type=\"hidden\">$row->mitarbeiter</td>\n";

echo "<td><input name=\"kunde\" type=\"hidden\">$row->kunde</td>\n";

echo "<td><input name=\"phone\" type=\"hidden\">$row->phone</td>\n";

echo "<td>

<select name=\"status\" >

<option>$row->status</option>

<option></option>

<option value=\"bestellt\">bestellt</option>

<option value=\"angekommen\">angekommen</option>

<option value=\"loeschen\">l&ouml;schen</option>

</select></td>\n";

//hier wegg!!



echo "<input type=\"submit\" name=\"Submit\" value=\"Abschicken\">

</form>\n";

echo "</tr>\n";

echo "</table>\n";
} //hier hin


.. hab zwar fast nichts gelesen... :rolleyes:

 
user1234
23-10-2003, 20:31 
 
Dann hab ich hinter jeder Zeile einen Button .... das wollte ich ja auch nicht. Es soll ein einziger sein um alles zu ändern. Ist es nicht relativ wo <form> und </form>steht? Richtige Reihenfolge vorausgesetzt!!?? Da ich bis jetzt davon ausgegangen bin sehe ich da keinen Fehler. Oder ich bin völlig auf dem Holzweg ......

---------------------------------------------------------------------
| ID | datum | Filiale | Mitarbeiter | Kunde | Phone |Status |
------------------------------------------------------------
| 1 | 11.11. | hier | Herr X. | Schmidt| 110 | bestellt |
------------------------------------------------------------------
| 2 | 12.11. | dort | Herr Y. | Schulz | 112 | erhalten |
-----------------------------------------------------------

[SubmitButton]


Der Status soll jeweils als DropDown zu sehen wobei man ihn auch gleich ändern kann ......

:dontknow:

 
user1234
24-10-2003, 23:06 
 
Problem ist gelöst .............

:huep:


schönes wochenende allen .....


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:02 Uhr.