mit Checkboxen Datensätze speichern

schlimbim

Grünschnabel
Hallo;

bevor ich dieses Thema angelegt, habe ich das Forum durchsucht und entweder bin ich zu dumm dazu oder ich versteh die Möglichkeit nicht, wie ich mein Vorhaben umsetzten kann.

Mein Ziel ist es:

aus der Datenbank werden alle Datensätze ausgegeben und am ende ist jedes Mal eine
Checkbox.
Die Funktion:
Der Anwender kann eine beliebige (also theoretisch auch alle) Checkboxen markieren.
Klickt dann auf senden, auf der nächsten Seite sollen alle angeklickten Checkboxen, einmal aus einer Tabelle gelöscht werden und zum anderen in eine andere gespeichert.

Wozu braucht man so etwas?
auf der ersten Seite werden dem Benutzer alle Hardwareteile aufgelistet.
Nun sind aber möglicherweise einige Teile defekt.
Durch das markieren (an klicken der Checkbox) der Teile werden diese aus der Tabelle gelöscht und in eine einer anderen gespeichert (damit der Benutzer in einer Art Historie sich ansehen kann welche Hardwareteile insgesamt kaputt gegangen sind.

Mein Ansatz:
PHP:
while($row=mysql_fetch_array($result)){

echo "<td>".$row['festplatten_id']."</td><td>".$row['eigenschaft']."</td> <td>".$row['lagerort']."</td><td><input type='checkbox' name='idc[]' value='".$row['name']."'></td> ";
alle Datensätze mit der Checkbox.

auf der nächsten Seite:
PHP:
$idc=$_POST['idc'];
damit habe ich angefangen und alles mögliche versucht um meinem Ziel näher zu kommen.
langsam glaube ich, dass ich das nicht schaffe weil ich entwender zu dumm bin oder weil man das so gar nicht umsetzen kann, wie ich mir das vorgestellt habe.

ich danke.
 
Hi

Jetzt kannst du das Array ganz normal mit einer foreach, for oder while Schleife durchlaufen.
PHP:
foreach ($array as $key => $value) {
   echo $key . '<br>';
   echo $value . '<br>';
}


Beim durchlaufen der Schleife kannst du dir einen SQL-Query zusammenbauen.

Mit print_r() oder var_dump() kannst du dir den Inhalt von Arrays ausgeben lassen.

Mfg Akkie
 
Das problem ist:

ich krieg den Namen schon rausgelesen, aber immer nur den letzten und nicht alle, die angeklickt wurden.
vielleicht mache ich das ganze falsch?
PHP:
foreach ($idc as $key => $value) {
    if (Bedingung) {
        echo $value . " \n";

    }
};
egal was ich für/in die Bedingung setzt, ich erhalte immer nur die letzte angeklickte Checkbox
:confused:

Und selbst wenn ich es schaffen würde, dass dort alle Namen stehen würden, so müsste ich immernoch irgendwie diesen Array durchsuchen.

ich wäre sehr dankbar wenn jmd. mir helfen könnte :)

Mit freundlichen Grüßen
schlimbim
 
Hi

Klick doch mal Bitte 5 Checkboxen an und gib auf der nächsten Seite die Daten mit

print_r($_POST['data]);

aus. Danach Postest du hier mal bitte die Ausgabe.
Ich versteh auch nicht wieso du eine Bedingung in die Schleife einbauen willst.

Ich weiß nicht ob du weiß was überhaupt beim abschicken des Formulars passiert.
In dem Array, ich nenne es mal data, befinden sich nur die Einträge die du auch angeklickt hast. Mehr nicht.

Mfg Akkie
 
oh man,

ich weiß auch nicht was ich da wieder für einen Bock geschossen habe...

nun klapt es ein bisschen.

die Ausgabe:


Array ( [0] => Maxtor Bla bla [1] => Samsung GigaMB [2] => Asus 100 [3] => Segeate )

kann man diese Namen auch irgendwie in variablen speichern, damit ich dann
die SQL Abfrage hinbekomme?
$sql=SELECT FROM...usw.

oder eher nicht?

aber schon mal danke für deine Hilfe
 
Hallo!

Kleines Beispiel gefällig?
PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
     <input type="checkbox" name="idc[]" value="Maxtor Bla bla"> Maxtor Bla bla<br>
     <input type="checkbox" name="idc[]" value="Samsung GigaMB"> Samsung GigaMB<br>
     <input type="checkbox" name="idc[]" value="Asus 100"> Asus 100<br>
     <input type="checkbox" name="idc[]" value="Segeate"> Segeate<br>
     <input type="submit" name="send" value="Abschicken">
</form>
 
<?php
if(isset($_POST['send']) AND !empty($_POST['idc'])) {
     $i = 0;
     while($i <= count($_POST['idc'])) {
         echo $_POST['idc'][$i]."<br>";
         $i++;
     }
}
?>
Gruss Dr Dau
 
danke dr Dau

hat noch ein paar Macken, aber ich kriegs schon hin denk ich jedenfalls.

Aber ich hab fest gestellt, dass ich noch ein anderes Problem habe, bei dem ich nicht weiter komme.
War mir aber nicht sicher, ob ich dafür ein neues Thema erstellen soll. (habe es aber nicht gemacht)

- Das Problem:
Diese Liste, wo der Benutzer die Bauteile markieren kann, ist nicht definiert.
das bedeuten:
eine Seite vorher bekommt der Benutzer eine Liste mit Tabellen, wo er sich eine aussuchen kann, in der er Bauteile als defekt markieren kann, die dann wiederum in der Log Tabelle gespeichert werden.

Als Beispiel:
PHP:
<select name="unterkategorie" size="1">
// wählt eine Tabelle aus der Liste aus, die er bearbeiten möchte.

Auf der zweiten Seite:
PHP:
$unterkategorie=$_POST['unterkategorie']

$query = "SELECT * FROM $unterkategorie ";
	$result = mysql_query($query);


$anz = mysql_num_fields($result);
echo	$anz;

echo "<table border='1'><tr>";

for($x = 0; $x < $anz; $x++){
$name = mysql_field_name($result,$x);

echo    "<td>$name </td>";

}

HTML:
<table border='1'><tr><td>festplatten_id </td><td>eigenschaft </td><td>lagerort </td><td>einheit </td><td>wert </td><td>name </td><td>status </td><td>anschluss </td><td>datum </td>

 <br><br>

es klappt ja schon, dass er die Spalten Namen, der Tabelle ausgibt.
Aber ich kriegs einfach nicht hin, die restlichen Datensätze aus der Datenbank zu lesen.
hab schon mit der while / for Schleife probiert.
kommt aber nichts gescheites raus :(

Ich hoffe, dass mir jmd. helfen kann :)
 
Zurück