[GastForen Programmierung/Entwicklung PHP und MySQL Ausgabe Array in Tabelle und Formular

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

13. Mai 2008, 13:52
Beitrag # 1 von 13
Bewertung:
(7257 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

ich möchte ein Array, welches aus einem Formular heraus erstellt wird als Tabelle (vorschau) und Formular (bearbeiten) ausgeben.



Code
echo '<table ><tr>'; 
foreach ($_POST['array'] as $key => $value) echo '
<th>'.$key. '</th>';
echo '
</tr>';

echo '<tr>';
foreach ($value as $vvalue) echo '
<td>'.$vvalue. '</td>';
echo '
<tr>';


echo '</table><br>';



Die Ausgabe der keys(Spaltenköpfe) wird richtig ausgegeben, nur bei der Ausgabe der Werte vom Formular gibt es Probleme.
Er gibt immer nur den letzten Wert der ersten Eingabezeile aus, die vorigen Werte garnicht und auch nicht die werte aus den folgenden Zeilen.

Bei der Überprüfung mit print_r($Array) werde aber alles Werte ausgegegeben.

Istzustand:

Feldnamea
wert1
wert2
wert3
Feldnameb
wert1
wert2
wert3


Sollzustand:

Feldnamea Feldnameb Feldnamec
wert1 wert1 wert1
wert2 wert2 wert2
wert3 wert3 wert3


Wo ist der Fehler?
Gruss
X

Ausgabe Array in Tabelle und Formular

duesi
Beiträge gesamt: 8

31. Mai 2008, 15:59
Beitrag # 2 von 13
Beitrag ID: #352447
Bewertung:
(7125 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wie ist denn dein Array von den Dimensionen her aufgebaut?


als Antwort auf: [#350038]

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

4. Aug 2008, 10:30
Beitrag # 3 von 13
Beitrag ID: #361334
Bewertung:
(6870 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich stelle meien frage mal anders. ich habe ein Formular in PHP erstellt, welches die eingegebenen Werte in ein mehrdimensionales Array schreibt.

Doch bevor die Werte in der DB gespeichert werden sollen sie auf einer Vorschauseite angezeigt werden. Ich habe versucht es mit foreach zu machen:

echo '<table border=0 cellspacing=10 ><tr>';
foreach ($_SESSION['name'] as $key => $value)
echo '<th>'.$key. '</th>';
echo '</tr>';
// Daten

echo '<tr>';


foreach ($value as $vvalue)
echo ' <td>'. $vvalue . '</td>';
echo '<tr>';

// Ende
echo '</table><br>';

Aber so schreibt er mir immer "nur" das letzte Element aus dem Array, in die Tabelle.

Was muss ich ändern, damit alle Werte in die Tabelle geschrieben werden?

Tabelle (Vorschauseite):

Spalte1 Spalte2 Spalte3...
Wert1 Wert1 Wert1
Wert2 Wert2 Wert2
Wert3 .... ....
. . .

Wert n Wert n Wert n

Das Array habe ich folgendermaßen aufgebaut:

Array[Spalte1][ ]
Array[Spalte2][ ]
Array[Spalte4][ ]
Array[Spalte5][ ]
Array[Spalte6][ ]
Array[Spalte7][ ]
Array[Spalte8][ ]
Array[Spalte9][ ]

Bin für jede Hilfe dankbar.

Gruss


als Antwort auf: [#352447]

Ausgabe Array in Tabelle und Formular

oesi50
  
Beiträge gesamt: 2315

4. Aug 2008, 11:14
Beitrag # 4 von 13
Beitrag ID: #361341
Bewertung:
(6858 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ede,

bau dein Array so auf:

Code
Array[][Spalte1] 
Array[][Spalte2]
Array[][Spalte4]
Array[][Spalte5]
Array[][Spalte6]
Array[][Spalte7]
Array[][Spalte8]
Array[][Spalte9]



als Antwort auf: [#361334]

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

4. Aug 2008, 11:42
Beitrag # 5 von 13
Beitrag ID: #361347
Bewertung:
(6853 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo Oesi,

danke für den Tipp. Der hat mich doch ein Stück weiter gebracht.

Code
echo "<table with=550 border=1 cellspacing=10 ><tr>"; 
echo "<th >Spalte1</th>";
echo "<th >Spalte2</th>";
echo "<th >Spalte3</th>";
echo "<th >Spalte4</th>";
echo "<th >Spalte5</th>";
echo '</tr>';
foreach ($_SESSION['Array'] as $key => $value)
// echo '<tr>';
// echo '<td>' .$value. '</td></tr>';
// foreach (array_keys($value) as $key)
foreach ($value as $vvalue)
// print_r($vvalue);
echo '<tr> <td>'. $vvalue . '</td>';
echo ' <td>'. $vvalue . '</td>';
echo ' <td>'. $vvalue . '</td>';
echo ' <td>'. $vvalue . '</td>';
echo ' <td>'. $vvalue . '</td></tr>';
// echo '</tr>'


Die Ausgabe der Tabelle sieht nun folgendermaßen aus:

Spalte1 Spalte2 Spalte3 Spalte4 Spalte5
Wert1
Wert4

Wert2Spalte2
Wert2Spalte3
Wert2Spalte4
Wert2Spalte5
Wert3Spalte2
Wert3Spalte3
Wert3Spalte4
Wert3Spalte5
Wert4Spalte2
Wert4Spalte3
Wert4Spalte4
Wert4Spalte5

Werte1Spalte5 Werte2Spalte5 Werte3Spalte5 Werte4Spalte5 Werte5Spalte5

Finde einfach den Fehler nicht...


als Antwort auf: [#361341]

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

4. Aug 2008, 14:35
Beitrag # 6 von 13
Beitrag ID: #361380
Bewertung:
(6819 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
bin wieder ein kleines Stück weiter gekommen. Es werden nun alle Werte untereinander in der Spalte 1 ausgegeben.
Wie bekomme ich es hin das er nach 5 Werten, also $key[4], die werte in eine neue Zeile schreibt?


als Antwort auf: [#361347]

Ausgabe Array in Tabelle und Formular

oesi50
  
Beiträge gesamt: 2315

4. Aug 2008, 15:35
Beitrag # 7 von 13
Beitrag ID: #361396
Bewertung:
(6810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du brauchst 2 Schleifen.
Eine äußere für die Zeilen, eine innere für die Spalten.

for 1. äußere Schleife
..print <tr>
..for 2. innere Schleife
....print <td>Wert</td>
..endfor 2. Schleife
..print </tr>
endfor 1. Schleife


als Antwort auf: [#361380]

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

5. Aug 2008, 11:29
Beitrag # 8 von 13
Beitrag ID: #361500
Bewertung:
(6759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich bekomme das nicht so richtig hin:

Code
  	 
for ($i = 0; $i < count ($_SESSION['Array']); $i++) {
foreach ($_SESSION['Array'][$i] as $key => $value)
echo"<tr><th>$key </th>";
echo "<tr><td>$value </td>";
for ($j = 0; $j <= 5; $j++) {
echo"</tr></tr>";
}
}


Die Augabe sieht jetzt so aus:

Spalte1
Wert1
Spalte2
Wert2
.
.
.

Ich schaffe es nicht, das er die Keys einmal als Tabellenkopf (waagerecht) ausgibt und dann die Werte in die entsprechende Spalte ausgibt.

Gruss


als Antwort auf: [#361396]

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

5. Aug 2008, 12:58
Beitrag # 9 von 13
Beitrag ID: #361515
Bewertung:
(6739 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Problem ist gelöst. Danke Oesi für deine Hilfe !!!!!


als Antwort auf: [#361500]

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

22. Aug 2008, 10:46
Beitrag # 10 von 13
Beitrag ID: #363511
Bewertung:
(6563 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

nachdem das mit dem Ausgeben des Arrays super klappt habe ich noch eine Frage. Und zwar das Array wird ja mit Werten gefüllt die in ein Formular eingegeben werden.

Code
<td> 
<input name="te_ke[][Spalte2]" type="text" maxlength="20" size="20" value="">
</td> <td>

<input name="te_ke[][Spalte3]" type="text" maxlength="6" size="6" value="" >
</td>
<td>

<input name="te_ke[][Spalte4]" type="text" maxlength="6" size="6" value="" >
</td>


ich möchte vermeiden, dass Leerzeilen in das Array geschrieben.
Spalte1 mit der id kommt aus einer Auswahlliste.Wird also autom. ausgefüllt. Wie kann ich, wenn in Spalte 2 und Spalte 3 und Spalte nichts eingetragen wird verhindern, dass diese Zeile ins Array geschrieben werden? Mit dem Formular werden immer 4 neue Elemente an das Ende des Arrays geschrieben.

Ausgabe wäre ja:
Spalte1 Spalte2 Spalte3 Spalte4
3 test test test
2 abc abc abc
1

Meine Idee ist:

gehe ans Ende des Array
if (Spalte 2 and Spalte 3 and Spalte 4 == ""){
unset ( letzten 4 Elemten )
}
else
{
schicke Formular ab
}

Das Problem ist wie erreiche ich das letzte Element
im Array und wie überprüfe ob die letzten 3 Elemente leer sind. Und wie lösche ich die 4 letzten Elemente dann.


als Antwort auf: [#361515]

Ausgabe Array in Tabelle und Formular

oesi50
  
Beiträge gesamt: 2315

22. Aug 2008, 11:42
Beitrag # 11 von 13
Beitrag ID: #363533
Bewertung:
(6550 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
schau dir mal array-slice an

http://de3.php.net/...tion.array-slice.php

Das letzte Element ist:
array_slice($input, -1, 1);

das vierte von hinten:
array_slice($input, -4, 1);

Zum Abschneiden:
http://de3.php.net/...ion.array-splice.php

die letzten 4 abschneiden:

array_splice($input, 0, -4)


als Antwort auf: [#363511]
(Dieser Beitrag wurde von oesi50 am 22. Aug 2008, 11:44 geändert)

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

22. Aug 2008, 11:48
Beitrag # 12 von 13
Beitrag ID: #363538
Bewertung:
(6548 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Meine "Lösung":

$anzahl = count ($_SESSION['Array']);

$ende = $anzahl - 1;
$ende1 = $ende - 1;
$ende2 = $ende - 2;
$ende3 = $ende - 3;

if($_SESSION['te_ke'][$ende] != "0" & $_SESSION['Array'][$ende1] != "0"){

unset($_SESSION['Array'][$ende]);
unset($_SESSION['Array'][$ende1]);
unset($_SESSION['Array'][$ende2]);
unset($_SESSION['Array'][$ende3]);
}

Es geht auch, was mich aber wundert! Denn der Ausdruck:

$_SESSION['Array'][$ende] != "0"

bedeutet doch ungleich 0, oder?

und wenn nun in den letzten beiden Elementen eine 0 (Standardvalue) steht funktioniert das Löschen.
Wo ist da mein Fehler?


als Antwort auf: [#363511]

Ausgabe Array in Tabelle und Formular

ede125
Beiträge gesamt: 45

22. Aug 2008, 12:38
Beitrag # 13 von 13
Beitrag ID: #363553
Bewertung:
(6534 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Problem erkannt.

Komme ja garnet so ohne weiteres an die value heran, also ist die if anweisung immer wahr und er löscht mir die letzten 4 Elemente.


als Antwort auf: [#363538]
X