Daten mit radiobutton ändern

Pranox

Mitglied
Hi, habe ein kleines Problem und komme einfach nich dahinter wie ich es lösen kann!
Ich wollte Daten aus einer Tabelle holen und diese dan mit Radiobuttons ändern also zb.
<input checked type="radio" name="check" value="behoben"> &nbsp; Fehler behoben
<br>
<input checked type="radio" name="check" value="fehler"> &nbsp; Nicht behoben
<br>
<br>
Wen vorher "Nicht behoben" angeklickt wurde und ich "behoben" anklicke ,soll er mir das auch in der Tabelle ändern nur klappt es nicht.....! :confused:

vill kann mir jemand helfen !
 
Dürfte man dann auch das Script sehen, dass die Daten in der Tabelle bearbeitet? Ohne den Code kann man bestenfalls raten... Wird das Formular denn überhaupt abgeschickt?
 
Hmmmmm, du drückst dich irgendwie ziemlich unklar und unvollständig aus, ich hoffe mal dass du das so meinst:

Du hast ein Script (beispielsweise ein Fehler-Meldescript), dass dir Daten aus der Datenbank holt. Diese Daten stellst du in einem Formular dar. Der User kann den Fehler als "Bearbeitet" oder "Nicht bearbeitet" markieren. Dies willst du per Klick auf den Radio-Button realisieren.

Okay. Wenn ichs richtig verstanden hab, kannste des so machen:

PHP:
//SQL-Abfrage zum holen der Daten
$data = mysql_fetch_object(mysql_query("blablabla"));

//checken, ob fehler beoben ist oder nicht, $data->status ist also entweder "behoben" oder "fehler"
$behoben = ($data->status == 'behoben') ? 'checked' : ' ';
$nicht_behoben = ($data->status == 'fehler') ? 'checked' : ' ';

echo ' (...)
<input type="radio" name="check" value="behoben" onclick="document.location.href=\'script.php?fehler=behoben\'"  '.$behoben.'> &nbsp; Fehler behoben
<br>
<input checked type="radio" name="check" onclick="document.location.href=\'script.php?fehler=nicht_behoben\'"  '.$nicht_behoben.'> &nbsp; Nicht behoben
(...)
';
 
Zuletzt bearbeitet:
Hmmmmm, du drückst dich irgendwie ziemlich unklar und unvollständig aus, ich hoffe mal dass du das so meinst:

Du hast ein Script (beispielsweise ein Fehler-Meldescript), dass dir Daten aus der Datenbank holt. Diese Daten stellst du in einem Formular dar. Der User kann den Fehler als "Bearbeitet" oder "Nicht bearbeitet" markieren. Dies willst du per Klick auf den Radio-Button realisieren.

Okay. Wenn ichs richtig verstanden hab, kannste des so machen:

Also, du hast echt ma recht ,soll wirklich ein fehler melde script werden :-)!

werde es gleich mal testen!!

Nur ich wollte es so machen, das wen " Nicht behoben" angegeben wurde ich es änder in Behoben also wie ne editieren mit dem buttons
PHP:
<?php
  include("dbincluden.php");

$sql = "SELECT * FROM fehler ORDER
BY Name DESC"; 
$id = $_GET['id'];

$sql = "SELECT * FROM fehler WHERE ID ='$id'";
$ausgabe = mysql_query($sql);
$data = mysql_fetch_array($ausgabe);
?>
<form method="post" action="fehlerchecken.php">
//SQL-Abfrage zum holen der Daten

//checken, ob fehler beoben ist oder nicht, $data->status ist also entweder "behoben" oder "fehler"
$behoben = ($data->status == 'behoben') ? 'checked' : ' ';
$nicht_behoben = ($data->status == 'fehler') ? 'checked' : ' ';
<input type="submit" name="Button" value="speichern">
</form>
<?php

$result = mysql_query($sql) OR              
die("Query: <pre>".$sql."</pre>\n".                  
"ERROR: ".mysql_error());
?>
 
Zuletzt bearbeitet:
Dateiname: fehlerchecken.php

PHP:
<?php
  include("dbincluden.php");

if(isset($_POST['Button'])):
    if($_POST['check'] == "behoben"):
        $status = "behoben";
    else:
        $status = "fehler";
    endif;
    $id = $_POST['id'];
    $update = mysql_query("UPDATE fehler SET status='".$status."' WHERE ID='".mysql_real_escape_string($id)."'");
    if($update):
        echo 'Gespeichert';
    else:
        echo 'Nicht gespeichert, Fehler: '.mysql_error();
    endif;
endif;

//Daten holen
$id = $_GET['id'];
$data = mysql_fetch_array(mysql_query("SELECT * FROM fehler WHERE ID ='".mysql_real_escape_string($id)."' "));

//checken, ob fehler beoben ist oder nicht, $data['status'] ist also entweder "behoben" oder "fehler"
$behoben = ($data['status'] == 'behoben') ? 'checked' : ' ';
$nicht_behoben = ($data['status'] == 'fehler') ? 'checked' : ' ';

echo '
<form method="post" action="fehlerchecken.php">
<input type="hidden" value="'.$id.'" name="id">
<input type="radio" name="check" value="behoben" '.$behoben.'> &nbsp; Fehler behoben
<br>
<input checked type="radio" name="check" '.$nicht_behoben.'> &nbsp; Nicht behoben
<br/>
<input type="submit" name="Button" value="speichern">
</form>';

?>

So müssts eventuell klappen.

[EDIT]
So, das müsst nun funktionieren, wenn ich keinen fehler gemacht hab... bitte stell sicher dass die Felder ID und status auch in der Datenbank vorhanden sind!

[EDIT2]
Nochmals editiert, ein Hidden-feld für die ID im formular hinzugefügt.
 
Zuletzt bearbeitet:
PHP:
UPDATE fehler SET check = ' behoben' WHERE ID = 

ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'check = ' behoben' WHERE ID =' at line 1

kommt wen er es überträgt

PHP:
$sql = "SELECT * FROM fehler ORDER
BY Name DESC"; 
$check = $_POST["check"];
$id = $_POST["id"];
$sql="UPDATE fehler SET check = '".$check."' WHERE ID = ".$id;

$result = mysql_query($sql) OR              
die("Query: <pre>".$sql."</pre>\n".                  
"ERROR: ".mysql_error());
?>

Und ich Danke dir für die mühe die du dir da machst =) echT nett
 
Zuletzt bearbeitet:
PHP:
<?

include("dbincluden.php");

if(isset($_POST['Button'])):
    if($_POST['check'] == "behoben"):
        $status = "behoben";
    else:
        $status = "fehler";
    endif;
    $id = $_POST['id'];
    $update = mysql_query("UPDATE fehler SET status='".$status."' WHERE ID='".mysql_real_escape_string($id)."'");
    if($update):
        echo 'Gespeichert';
    else:
        echo 'Nicht gespeichert, Fehler: '.mysql_error();
    endif;
endif;

//Daten holen
$id = $_GET['id'];
$data = mysql_fetch_array(mysql_query("SELECT * FROM fehler WHERE ID ='".mysql_real_escape_string($id)."' "));

//checken, ob fehler beoben ist oder nicht, $data['status'] ist also entweder "behoben" oder "fehler"
$behoben = ($data['status'] == 'behoben') ? ' checked' : '';
$nicht_behoben = ($data['status'] == 'fehler') ? ' checked' : '';

echo '
<form method="post" action="fehlerchecken.php?id='.$_GET['id'].'">
<input type="hidden" value="'.$id.'" name="id">
<input type="radio" name="check" value="behoben" '.$behoben.'> &nbsp; Fehler behoben
<br>
<input type="radio" name="check" '.$nicht_behoben.'> &nbsp; Nicht behoben
<br/>
<input type="submit" name="Button" value="speichern">
</form>';

?>


So, ich hab das grad bei mir getestet lokal, dieses Teil funktioniert nun definitiv so wie es soll. ändere von der Struktur her besser nichts, ausser den HTML-Teil, wenn der dir nicht passt^^ Lass die SQL-Abfragen bitte so wie sie sind, so sind sie wenigstens sicher.

Den Code:

PHP:
$sql = "SELECT * FROM fehler ORDER
BY Name DESC"; 
$check = $_POST["check"];
$id = $_POST["id"];
$sql="UPDATE fehler SET check = '".$check."' WHERE ID = ".$id;

$result = mysql_query($sql) OR              
die("Query: <pre>".$sql."</pre>\n".                  
"ERROR: ".mysql_error());
?>

...den kannst du getrost in die Tonne schmeissen, der ist nutzlos wie ein Regenschirm mit tausend Löchern.
 
Zuletzt bearbeitet:
Also es kommt immer noch der oben genannte fehler und ich denke es ist in der Datei ..
fehlercheck.php
o0
Ps hab dich ma bei icq geaddet ^^
 
neinein! nimm das Script wie ichs geschrieben hab! Pack das mal in die fehlercheck.php, speicher es ab und rufe fehlercheck.php?id=hiereineidhin DIREKT auf! Dann wird dir das Formular gezeigt, du kannst auswählen obs behoben ist oder nicht und dann speichern.

Das Script ist komplett mit Routine zum Schreiben der Daten in die Datenbank - du brauchst kein weiteres zusätzliches Script!
 
Zurück