Tablle mit While- Schleife erstellen

Pinky

Erfahrenes Mitglied
Hallo liebe Leute

ich habe ein kleines CM- System aufgebaut und stehe zur Zeit vor einem While- Schleifenproblem. In einem ersten Schritt muss der User definiere, wie viele Zeilen & Spalten er gerne hätte. Danach schickt er diese Informationen ab und es sollte eigentlich die gewählten Tabellenfelder erzeugen (Textfelder). Folgenden Code habe ich versucht, die Spaltenzahl funktioniert auch, doch leider erstellt es mir die Zeilen nicht (<table> </table> steht ausserhalb der Tabelle - die Zeilen & Spalen werden nach Absenden des Formulars in Sessions gespeichert). Hier der Code:

PHP:
$r = 1;
$c = 1;
			while ($r <= $_SESSION[row]) {
				echo '<tr>';
					while ($c <= $_SESSION[col]) {
					echo '<td><textarea cols="10" id="form_feld" name="row_'.$r.'-col_'.$c.'"></textarea></td>';
					$c++;
					}
				echo '</tr>';
			$r++;
			}

Herzlichen Dank für jegliche Antwort
Euer Pinky
 
Hi!

Versuch es mal so:
PHP:
$r = 1;
$c = 1;
            while ($r <= $_SESSION[row]) { // ist das richtig? Versuch mal so:  $_SESSION['row']
                echo '<tr>';
                    while ($c <= $_SESSION[col]) { // hier auch  $_SESSION['col']
                    echo '<td><textarea cols="10" id="form_feld" name="row_'.$r.'-col_'.$c.'"></textarea></td>';
                    $c++;
                    }
                echo '</tr>';
            $r++;
            }

Edit: Da war wieder einer schneller... dann kann ich mir die weiteren Ausführungen sparen..

Viele Grüße,
Jacka
 
Zuletzt bearbeitet:
Hallo Pinky,

nachdem die erste Zeile erstellt worden ist, enthält $c den gleichen Wert wie $_SESSION[col], also musst du nach der zweiten while $c wieder auf 1 setzen.

Code:
$r = 1;
$c = 1;
            while ($r <= $_SESSION[row]) {
                echo '<tr>';
                    while ($c <= $_SESSION[col]) {
                    echo '<td><textarea cols="10" id="form_feld" name="row_'.$r.'-col_'.$c.'"></textarea></td>';
                    $c++;
                    }
                $c = 1;
                echo '</tr>';
            $r++;
            }
 
Oh, liebe Tuorials- Schreiber, ihr seid einfach super. Klappt wunderbar. Es lag nicht an diesen Zeichen ', sondern ich musste $c = 1; neu zuweisen, wie Homer geschreiben hat.

Herzlichen Dank & einen wunderschönen Sonntag wünscht
Pinky
 
Tablle mit While- Schleife nun aus Datenbank holen

Liebe Leute

EXKURS: Ich weiss nicht, ob ich für das ein neues Thema eröffnen soll, wenn euch das lieber ist, mach ich das gerne!

wie ihr oben lesen könnt, versuchte ich eine Tabelle automatisch richtig zu erstellen. Nun, es funktioniert alles wunderbar. Doch jetze möchte ich, dass die Tabelle automatisch auch so angezeigt wird, sobald sie gespeichert wird und in einem späteren Stadion, auch bearbeitet werden kann.

Um habe eine MySQL- Tabelle erstellt, die nur die entsprechenden Daten für eine Tabelle speichert. Diese enthält unter anderem die Position des Eintrages in der Tabelle, d.H. in die MySQL- Tabelle wird automatisch die Felder Zeile & Spalte ausgefüllt (Bsp.: Eintrag bei Zeile: 3; Eintrag bei Spalte:2 - d.H. die Zelle befindet sich in der dritten Zeile bei der zweiten Spalte).

Ich versuchte folgenden Code, der auch nicht schlecht funktioniert, doch leider zeigt es mir den ersten Datensatz, also die Zeile & Spalte 1 nicht an:

PHP:
$tbl_tmp = mysql_fetch_assoc($tbl_res);
$zeile = mysql_fetch_array(mysql_query('SELECT count(distinct(`zeile`)) FROM `admin_tabellen`'));
$spalte = mysql_fetch_array(mysql_query('SELECT count(distinct(`spalte`)) FROM `admin_tabellen`'));
$r = 1;
$c = 1;
echo "<table>";
	while ($r <= $zeile[0]) {
	echo '<tr>';
	while ($c <= $spalte[0] && $tbl_tmp = mysql_fetch_assoc($tbl_res)) {
	        echo '<td>'.$tbl_tmp[text].'</td>';
		$c++;
	}
	echo '</tr>';
	$c = 1;
	$r++;
	}
echo '</table>';

Wies jemand, woran das liegen kann? Wenn ich die PHP Seite anzeigen lasse, so zeigt es mir alle Datensätze, nur den ersten nicht...!

Herzlichen Dank für jegliche Hilfe
Euer Pinky
 
Zuletzt bearbeitet:
Hallo Leute

hab ich versucht, doch leider funtkioniert das nicht. Habe übrigens alle Varianten versucht:

nur $r = 0; gesetz -> die anderen auf 1
nur $c = 0; gesetzt -> die anderen auf 1
beide $r = 0; & $c = 0; gesetzt -> danach $c = 1;
...

Im Grunde genommen weis ich auch, dass ein Array bei 0 beginnt, doch da es mit den Startwerten nicht funktionierte war ich ein wenig perplex...!

Weitere freundliche Vorschläge :)?
Herzlichen Dank & lieber Gruss
Euer Pinky
 
Ups, ja das ist ein Fehler. Habe viele verschiedene Varianten versucht, und so hat sich wohl etwas eingeschlichen.

Aber das beisst sich eigentlich überhaupt nicht! Oder?
 
Zurück