ERLEDIGT
NEIN
NEIN
ANTWORTEN
14
14
ZUGRIFFE
402
402
EMPFEHLEN
-
08.05.12 13:30 #1
Rookie
- Registriert seit
- May 2012
- Ort
- Bochum, Germany
- Beiträge
- 8
Guten Tag liebe Community!
Habe da ein Problem! Ich will Values von einer Select-Auswahl in der Datenbank speichern! Habe im Value eine Zahl angegeben******
PHP-Code:$position1 = "<select name=\"position1\">" . "<optgroup label=\"Position 1\">" . "<option value=\"0\">" . "Keine Gruppe" . "</option>" . "<option value=\"1\">" . "Berufsfeuerwehr" . "</option>"
. "<option value=\"2\">" . "Rettungsdienst" . "</option>" . "<option value=\"3\">" . "Feuerwehr und Rettungsdienst" . "</option>" . "</optgroup>" . "</select>";
PHP-Code:while ($row = mysql_fetch_object($ergebnis)) {
echo "<tr>" . "<td>" . $row->Benutzer . "</td>" . "<td>" . $position1 . "</td>" . "<td>" . $position2 . "</td>" . "<td>" . $position3 . "</td>" . "<td>" . $position4 . "</td>"
. "<td>" . $freigabe . "</td>" . "</tr>";
}
PHP-Code:if(isset($_POST['Benutzergruppenuebersicht'])) {
$position_1 = $_POST["position1"];
$position_2 = $_POST["position2"];
$position_3 = $_POST["position3"];
$position_4 = $_POST["position4"];
$freigabe_0 = $_POST["freigabe"];
} else {
echo "Daten nicht gesendet!";
}
Was mache ich Falsch? Es werden die Values nicht übergeben!PHP-Code:$eintrag = "UPDATE login SET P1='$position1', P2='$position2', P3='$position3', P4='$position4', Freigabe='$freigabe' ORDER BY Benutzer";
Bitte um einen Tip
LG Patrik
-
08.05.12 13:40 #2
Schau dir mal deine Variablen an, du übergibst die String wo du deine Select-Auswahl speicherst ($position1). Die Felder allerdings stehen in "$position_1".
Wie sieht deine Tabelle aus? Denn ein Update der Tabelle mit einem Order By scheint mir hier fehl am Platz. Sind das allgemeine Datensätze oder warum differenzierst du nicht nach einem Feld?Die Schweine von heute sind unsere Schnitzel von morgen!
-
08.05.12 13:45 #3
Sehe ich das richtig das es mehrere SELECT-Listen gibt (position1, position2, ...). Nur zur Sicherheit, haben diese immer einen anderen Namen?
Wird der IF-Block "Benutzergruppenuebersicht" durchlaufen?
Was wird ausgegeben wenn du dir den Inhalt von $eintrag mit echo am Bildschirm ausgibst?Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Beiträge bitte mit Codetags ausstatten!
Ein Blindtext-Generator ist oft hilfreich.
HTML, JavaScript, CSS, ... online testen: jsbin.com
-
08.05.12 13:47 #4
Rookie
- Registriert seit
- May 2012
- Ort
- Bochum, Germany
- Beiträge
- 8
Ich habe eine Tabelle wo alle registrierten Mitglieder der Homepage aufgelistet werden und will ihnen Rechte verteilen!
Brauche ich also nicht die Variablen Position1 abfangen****?
-
08.05.12 13:52 #5
Rookie
- Registriert seit
- May 2012
- Ort
- Bochum, Germany
- Beiträge
- 8
-
08.05.12 13:53 #6
In "$position1" steht doch ein String, dein gesamtes Select-HTML!
In "$position_1" steht dein Wert nach dem absenden des Formulares, da es ein Kopie von "$_POST['position1']" ist.
Wenn du ein UPDATE auf deiner Tabelle ohne einer expliziten Zuweisung/Kennung (zb ID der Zeile) durchführst, werden ausnahmslos alle Datensätze upgedatet. Also irgendwo solltest du referenzieren welcher User das ist.Die Schweine von heute sind unsere Schnitzel von morgen!
-
08.05.12 13:58 #7
Rookie
- Registriert seit
- May 2012
- Ort
- Bochum, Germany
- Beiträge
- 8
Punkt 1:
Muss ich die Werte der SELECT-Listen mit mysql_real_escape_string(); abfangen?
Punkt 2:
Ich gebe jedem User eine ID die von MySQL per Auto Increment ausgegeben wird!
Lösung:
Kann man das so machen****?PHP-Code:while ($row = mysql_fetch_object($ergebnis)) {
$id = $row["ID"];
echo "<tr>" . "<td>" . $row->Benutzer[$id] . "</td>" . "<td>" . $row->P1[$id] . "</td>" . "<td>" . $row->P2[$id] . "</td>" . "<td>" . $row->P3[$id] . "</td>" . "<td>" . $row->P4[$id] . "</td>"
. "<td>" . $freigabe[$id] . "</td>" . "</tr>";
}
} else {
echo "<p />";
echo "<tr>" . "<td class=\"Problem\" colspan=\"6\">" . "<text class=\"Text1\">" . "Keine Benutzer gefunden!" . "</text>" . "</td>" . "</tr>";
}
Geändert von PatrikB1985 (08.05.12 um 14:11 Uhr) Grund: Lösung****?
-
08.05.12 14:12 #8
zu Punkt 1: nein, kannst du, musst du aber nicht, da die Werte nicht direkt vom User eingegeben werden.
zu Punkt 2:
Ich denke du gehst diese Sache ganz falsch an, du musst natürlich beim speichern/updaten der Tabelle auch schauen welchen User du gerade bearbeitet hast. In deinem Code ist einiges nicht ersichtlich.Die Schweine von heute sind unsere Schnitzel von morgen!
-
08.05.12 14:16 #9
Rookie
- Registriert seit
- May 2012
- Ort
- Bochum, Germany
- Beiträge
- 8
-
08.05.12 14:20 #10
Wie Maniac schon schreibt, die SQL-Anweisung ist sicher nicht korrekt. So in etwa solltest du die Update-Anweisung auf einen bestimmten Benutzer begrenzen.
Außerdem kommt doch hoffentlich auch noch irgendwo die Anweisung wo die SQL-Anweisung auch ausgeführt wird (mysql_query).PHP-Code:$eintrag = "UPDATE login SET P1='$position1', P2='$position2', P3='$position3', P4='$position4', Freigabe='$freigabe' WHERE Benutzer = 'IRGEND_EIN_WERT'";
Nochmal die Frage zu dem IF-Block. Wenn du nicht weißt ob er ausgeführt wird, dann mache doch einfach mal einmit rein.PHP-Code:echo "Ich bin hier!";
Denn wenn der Block nicht durchlaufen wird, hilft es nichts wenn der enthaltene Code stimmt.
Code :1 2 3 4
ID | Nachname 01 | Müller 02 | Huber 03 | Schmid
Code sql:1
UPDATE tabelle SET Nachname = 'Schmidt' WHERE ID = '03'
So eine ID-Spalte hast du ja wohl auch. Mit diesem Wert musst du dann die SQL-Anweisung auf den entsprechenden Benutzer beschränken.
Wenn du nur schreibst:
Code sql:1
UPDATE tabelle SET Nachname = 'Schmidt'
Gibt es nachher nur noch Datensaätze mit dem Nachnamen Schmidt (und bei dir ist es im Moment so!).Geändert von tombe (08.05.12 um 14:24 Uhr)
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Beiträge bitte mit Codetags ausstatten!
Ein Blindtext-Generator ist oft hilfreich.
HTML, JavaScript, CSS, ... online testen: jsbin.com
-
08.05.12 14:24 #11
Du hast zb eine Usertabelle wo die ID autincrement ist. Weitere Felder dieser Tabelle könnten zb. Namen, Email, PW usw... sein.
Jetzt machst du eine weitere Tabelle mit den Rechten.
Diese kann so aufgebaut werden:
ID, UserId, Recht1, Recht2, usw...
ID = autoincrement,
UserID = Die ID welche zum referenzieren verwendet wird. sprich "User.ID == rechte.UserID"
Hier stellst du die Beziehung zwischen den 2 Tabellen her.
Die Rechte denk ich mal kannst du dir selbst zusammenreimen.Die Schweine von heute sind unsere Schnitzel von morgen!
-
08.05.12 14:38 #12
Rookie
- Registriert seit
- May 2012
- Ort
- Bochum, Germany
- Beiträge
- 8
Ich habe alles in einer Tabelle!
ID, Benutzer, Passwort, Email usw.
auch P1 = Position1 (bestimmte Benutzergruppen)!
Ich weiss nur nicht wie ich auf die ID der User zugreife, da ich mir viele User anzeigen lasse!
Kann ich das nicht mit dem Radio-Button und der Value= $row->ID machen?Geändert von PatrikB1985 (08.05.12 um 14:40 Uhr)
-
08.05.12 14:42 #13
Du siehst vor lauter Fehler nicht was wo wie läuft.
Du musst mal debuggen um zu verstehen was da wirklich abgeht (das machen auch Profis!)
[PHP] Debuggen mit var_dump()
[PHP] [MySQL] Debug Queries---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
08.05.12 14:54 #14
Rookie
- Registriert seit
- May 2012
- Ort
- Bochum, Germany
- Beiträge
- 8
@Yaslaw
Ich habe euch nicht den kompletten Code geschickt! Sicher habe ich auch Debug Codes eingebaut! Diese geben mir aber keine Fehler mehr aus!
-
08.05.12 15:07 #15
Dann versetze die var_dumps() dorthin wo du Probleme vermutest.
Wenn du nicht weiss t ob ein if greift, dann ist das der Ort wo man vorher und nachher var_dump setzt:
Nachtrag:PHP-Code:var_dump('vor dem if()', $value);
if($value == 'foobar'){
var_dump('im if()');
}
Auch HTML-Code und SQL-Syntax kann man schön und lesbar formatieren. Es hilft einiges beid er Fehlersuche wenn man den Code besser lesen kann.
a) den SQL-Teil in PHP formatieren: Heredoc-Syntax
b) Die Complex (Curly) Syntax anwenden um die Strings zusammenzusetzen. Das reduziert das Chaos mit öffnenden und schliessenden Anführungszeichen und den Verbindungs-Punkten
PHP-Code:$eintrag = <<<SQL
UPDATE login
SET
P1='{$position1}',
P2='{$position2}',
P3='{$position3}',
P4='{$position4}',
Freigabe='{$freigabe}'
ORDER BY Benutzer;
SQL;
...
$position1 = <<<HTML
<select name="position1">
<optgroup label="Position 1">
<option value="0">Keine Gruppe</option>
<option value="1">Berufsfeuerwehr</option>
<option value="2">Rettungsdienst</option>
<option value="3">Feuerwehr und Rettungsdienst</option>
</optgroup>
</select>
HTML;
...
while ($row = mysql_fetch_object($ergebnis)) {
echo <<<HTML
<tr>
<td>{$row->Benutzer}</td>
<td>{$position1}</td>
<td>{$position2}</td>
<td>{$position3}</td>
<td>{$position4}</td>
<td>{$freigabe}</td>
</tr>
HTML;
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
oracle; plsql; select in variable speichern
Von binfgi im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 29.08.06, 18:58 -
Select Feld mit verschiedene Values
Von Uli_87 im Forum PHPAntworten: 2Letzter Beitrag: 18.07.06, 15:58 -
select boxen in eine tabelle speichern
Von Firzen im Forum PHPAntworten: 1Letzter Beitrag: 17.07.05, 22:15 -
SELECT in Variable speichern geht nicht mit FORM
Von blumshuett im Forum PHPAntworten: 9Letzter Beitrag: 03.03.05, 09:27 -
Select-Anfrage-Daten speichern
Von lindin im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 23.09.04, 09:41




Zitieren



Login