PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Checkbox in BD-Tabelle schreiben (http://www.selfphp.de/forum/showthread.php?t=24619)

syntax 19.03.2012 10:33:21

Checkbox in BD-Tabelle schreiben
 
Hallo Leute,

ich habe eine Checkbox und wenn diese aktiviert wird und ich auf Update klicke, soll entweder eine 1 (wenn Checkbox einen Haken hat) oder eine 0 (wenn Checkbox keinen Haken hat) in meine MySQL Tabelle geschrieben werden.

Der Wert wird von 1 auf 0 aktualisiert wenn ich keinen Haken in der Checkbox habe,
wenn ich die Checkbox anklicke und auf meinen Update-Button gehe wird der Wert nicht von 0 auf 1 geschrieben.

Ich finde den Fehler einfach nicht, denn wenn ich den Updatebefehl durch einen print befehl ersetze macht er das was er soll.

Eine Idee die mir noch gekommen ist, wäre das er nicht weiß in welche Zeile er die 1 schreiben soll. Muss ich vielleicht in meiner Anweisung sagen das es in die Zeile mit der zugewiesenen ID schreiben soll ?
Ist ja aber eigentlich auch Quatsch denn umgekehrt geht es ja auch.

Über Ideen und Anregungen würde ich mich freuen. Danke :)


Tabelle:

ID | fahrzeug | status

int(11) | varchar(255) | tinyint(1)



PHP-Code:

    // Update Buchungsstatus
   
$sqlbuchungchecked "UPDATE fahrzeug SET status=1";
   
$sqlbuchungnonchecked "UPDATE fahrzeug SET status=0";

         
// Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen
        
$buchungchecked mysql_query$sqlbuchungchecked );
        
$buchungnonchecked mysql_query$sqlbuchungnonchecked );


        
// Checkboxabfrage für Buchungsfeld
        
if (isset($_REQUEST['checkbtn'])) {
         foreach (
$_REQUEST['checkbtn'] as $nonvalue => $value) {
          
// print "1"
          
$buchungchecked;
          }
        } else {
                 
// print "0"
                 
$buchungnonchecked;
                } 

PHP-Code:

<?php
    
while ($datensatz mysql_fetch_array$abfrageergebnis ))
    {
    echo 
'<table border="1">';
    echo 
'<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
    echo 
'<tr>';
    echo 
'<td style="width:75px"><input type="checkbox" name="checkbtn[]" value="1"></td>';
    
//echo '<td style="width:65px">' . $datensatz['kuerzel'] . '</td>';
    
echo '<td style="width:155px">' $datensatz['kunde'] . '</td>';
    echo 
'<td style="width:80px">' $datensatz['mitarbeiter'] . '</td>';
    echo 
'<td style="width:120px">' $datensatz['taetigkeit'] . '</td>';
    echo 
'<td style="width:90px">' $datensatz['startdatum'] . '</td>';
    echo 
'<td style="width:70px">' $datensatz['startzeit'] . '</td>';
    echo 
'<td style="width:90px">' $datensatz['endedatum'] . '</td>';
    echo 
'<td style="width:70px">' $datensatz['endezeit'] . '</td>';
    echo 
'<td style="width:70px">' $datensatz['dauer'] . '</td>';
    echo 
'<td style="width:55px">' $datensatz['umsatz'] . ' €</td>';
    echo 
'<td style="width:348px">' $datensatz['notizen'] . '</td>';
    echo 
'</tr>';
    echo 
'</table>';
    }
    
?>

HTML-Code:

    <table>
    <tr>
    <td><input type="submit" name="submit" value="Update"></td>
    </tr>
    </table>


vt1816 19.03.2012 13:49:36

AW: Checkbox in BD-Tabelle schreiben
 
Zitat:

Zitat von syntax (Beitrag 143088)
PHP-Code:

    // Update Buchungsstatus
   
$sqlbuchungchecked "UPDATE fahrzeug SET status=1";
   
$sqlbuchungnonchecked "UPDATE fahrzeug SET status=0";

         
// Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen
        
$buchungchecked mysql_query$sqlbuchungchecked );
        
$buchungnonchecked mysql_query$sqlbuchungnonchecked );


        
// Checkboxabfrage für Buchungsfeld
        
if (isset($_REQUEST['checkbtn'])) {
         foreach (
$_REQUEST['checkbtn'] as $nonvalue => $value) {
          
// print "1"
          
$buchungchecked;
          }
        } else {
                 
// print "0"
                 
$buchungnonchecked;
                } 


Was ist DAS? Copy & Paste?


Zitat:

PHP-Code:

$_SERVER['PHP_SELF'


... ist PFUI!


Wo kommt $abfrageergebnis her?

syntax 19.03.2012 15:03:47

AW: Checkbox in BD-Tabelle schreiben
 
Das gehört zur Ausgabe der Datensätze. Hab es weggelassen, weil es nicht relevant ist. Es gibt die ID und das Fahrzeug mit aus.

vt1816 19.03.2012 16:02:51

AW: Checkbox in BD-Tabelle schreiben
 
Zitat:

Zitat von syntax (Beitrag 143100)
[...] Es gibt die ID und das Fahrzeug mit aus.

Warum verwendest Du die Informationen dann beim Update nicht?

syntax 19.03.2012 16:57:57

AW: Checkbox in BD-Tabelle schreiben
 
Weil ich ja nur, wenn ich die Checkbox anklicke den Wert 1 in meine Tabelle schreiben will.
Oder wie meinst du das?

vt1816 19.03.2012 20:15:33

AW: Checkbox in BD-Tabelle schreiben
 
Zitat:

Zitat von syntax (Beitrag 143102)
Weil ich ja nur, wenn ich die Checkbox anklicke den Wert 1 in meine Tabelle schreiben will.
Oder wie meinst du das?

Ja, aber für welchen Datensatz? Soll es gleich bei allen Datsätzen ein Update geben?

syntax 19.03.2012 21:27:00

AW: Checkbox in BD-Tabelle schreiben
 
Nein nur in dem Datensatz in dem ich die Checkbox aktiviere soll eine 1 in die Spalte Status eingetragen werden. Das sollen auch manchmal mehrere gleichzeitig sein.

vt1816 19.03.2012 21:29:23

AW: Checkbox in BD-Tabelle schreiben
 
Und dazu benötigst Du die ID des entsprechenden Datensatz.

syntax 19.03.2012 23:01:29

AW: Checkbox in BD-Tabelle schreiben
 
Wäre das so richtig?

PHP-Code:

 // Update Buchungsstatus

   
$ID ="SELECT id FROM fahrzeug"   

   
$sqlbuchungchecked "UPDATE fahrzeug SET status=1 WHERE id=$ID";
   
$sqlbuchungnonchecked "UPDATE fahrzeug SET status=0 WHERE id=$ID";

         
// Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen
        
$buchungchecked mysql_query$sqlbuchungchecked );
        
$buchungnonchecked mysql_query$sqlbuchungnonchecked );


        
// Checkboxabfrage für Buchungsfeld
        
if (isset($_REQUEST['checkbtn'])) {
         foreach (
$_REQUEST['checkbtn'] as $nonvalue => $value) {
          
$buchungchecked;
          }
        } else {
                 
$buchungnonchecked;
                } 


vt1816 20.03.2012 08:58:41

AW: Checkbox in BD-Tabelle schreiben
 
Zitat:

Zitat von syntax (Beitrag 143109)
Wäre das so richtig?

Hast Du es mal ausprobiert? Ich glaube nicht, denn dann wären Dir die Fehler - bei eingeschalteter Fehleranzeige - nur so um die Ohren geflogen.

Also bitte nachholen...


PS: Hinweis
PHP-Code:

$ID ="SELECT id FROM fahrzeug" 

damit wirst Du die ID nicht erhalten!


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:11:54 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.