You are not logged in.

  • Login

1

Sunday, March 9th 2008, 4:46pm

Mehrere Datensätze bearbeiten

Hallo.
Könnte mir bitte kurz jemand helfen? Ich würde gerne aus einer MySQL-Tabelle die Werte mehrerer Einträge auslesen und dann NUR BESTIMMTE Datensätze bearbeiten. Wie kann ich das jetzt machen, dass ich nur bestimmte Einträge zur Bearbeitung auswählen kann?

Danke!

2

Sunday, March 9th 2008, 5:22pm

Mit einer Checkbox mit name in Arrayschreibweise:

HTML Code

1
2
3
<input type="checkbox" name="foo[]" value="1" /> eins
<input type="checkbox" name="foo[]" value="2" /> zwei
<input type="checkbox" name="foo[]" value="3" /> drei


In PHP stehen dir die Werte dann in einem Array zur Verfügung:

PHP Quellcode

1
print_r($_POST['foo']);

3

Sunday, March 9th 2008, 5:23pm

Und wenn ich von Anfang an nicht weiß, wie viele Datensätze es sind? `Wie kann ich die Checkbox-Value`s dynamisch nummerieren? Und wie leite ich dann weiter zum bearbeiten?
Danke aber ^^

4

Sunday, March 9th 2008, 6:47pm

Wie kann ich die Checkbox-Value`s dynamisch nummerieren

es war schon so geplant, dass du sie dynamisch nummerierst ;)
Sollte eigentlich klar sein, wie das funktioniert. Ich zeig dirs mal am Beispiel eines assoziativen Arrays:

PHP Quellcode

1
2
3
4
5
6
7
8
$ass = array(
	1 => 'eins',
	5 => 'fuenf'
);
 
forach($ass as $key => $value) {
	echo '<input type="checkbox" name="foo[]" value="'.$key.'" /> '.$value;
}

5

Tuesday, March 18th 2008, 4:04pm

Ich hab grad null Ahnung, wie das gehen soll... Danke trotzdem :S

Ok, tut mir leid, aber es muss schnell gehen. Bitte gebt mir einen Code, bei dem man sowas wie oben beschrieben ausführen kann. Alle Datensätze auslesen (bel. Anzahl), diese als Tabelle auflisten und dann EINEN bestimmten bearbeiten. Tut mir leid, wenn ich nerve, aber es muss schnell gehen...

This post has been edited 1 times, last edit by "Waldi" (Mar 18th 2008, 4:14pm)


6

Tuesday, March 18th 2008, 6:35pm

Das Beispiel von Donut mit dem assoziativen Array ist eigentlich ganz simpel. Das Array ist hier nur Platzhalter für die zuvor ausgelesenen Einträge. Wenn du diese also kennst, weil du sie aus der Datenbank ausgelesen hast, kannst du sie auch dynamisch in ein Array packen.

7

Tuesday, March 18th 2008, 6:52pm

Und wie kann man

1 => 'eins',
5 => 'fuenf'

verstehen? Außerdem, wie weiß er nach dem Anklicken der Checkbox, um welche Variablen es geht?

8

Tuesday, March 18th 2008, 7:05pm

1 => 'eins',
5 => 'fuenf'

... bedeutet:

PHP Quellcode

1
2
$ass[1] = 'eins';
$ass[5] = 'fuenf';


Du weist, um welche Variable es geht, weil du über das Attribut value jeder Checkbox einen klaren wiedererkennbaren Namen bzw. eine ID gegeben hast. Wenn also nu das Formular zum Ändern der Einträge abgesendet wurde, erhällst du $_POST['foo'][0], $_POST['foo'][1], etc. die zu ändernden Daten.

foo[] im Namen ist eine Art Trickvariante, die dir ermöglicht, nicht jeder Checkbox einen festen Namen geben zu müssen. PHP erkennt, dass es sich um zusammengehörige $_POST-Variablen handelt und packt sie alle in ein extra Array, hier: $_POST['foo'] (ähnlich $foo[] = 'Neues Array mit automatische Keyzuweisung')

9

Wednesday, March 19th 2008, 12:51pm

Würde das funktionieren? -->

PHP Quellcode

1
2
3
4
5
6
7
8
daten = mysql_query('SELECT ID,datum,nachricht FROM nachrichten');
$row=mysql_fetch_assoc($daten)
 
 
forach($row as $key => $value) {
	echo "<table> <tr> <td> " . ($row[datum]) . "</td>	<td>" . ($row[nachricht]) . "</td> <td>" . "</td></tr></table><br />";
	echo '<input type="checkbox" name="foo[]" value="'.$key.'" /> '.$value;
}


Ich kann nicht teste, das Skript ist nicht für mich persönlich, deswegen würd ichs gerne von euch wissen ^^ Danke :)

10

Wednesday, March 19th 2008, 5:53pm

Ich kann nicht teste, das Skript ist nicht für mich persönlich, deswegen würd ichs gerne von euch wissen

Früher oder später musst du es doch ausprobieren ;)
Scriptsprachen entwickelt man als Anfänger üblicherweise nach dem Trial and Error Prinzip.

Heißt übrigens foreach nicht forach

11

Thursday, March 20th 2008, 10:28pm

Problem mit Checkboxen und Textfeldern gelöst...

Similar threads

Social bookmarks