php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.12.2004, 10:33  
Erfahrener Benutzer
 
Registriert seit: 19.11.2004
Beiträge: 196
Calli
Standard Tabelle erstellen

Hallo,

ich möchte gerne mit php eine Tabelle erstellen mit 4 Spalten und 4 Zeilen und nutze diesen Skirpt:

PHP-Code:
<?
print ("<table border='1'>");
    for (
$a=0;$a<4;$a++)  {
    print(
"<tr align='center'>");
    for (
$i=0;$i<4;$i++) {
    print (
"<td>");
    print (
"sackratte");
    print (
"</td>");
    print (
"</tr>");
    }
    }
?>
aber ich bekommen eine Tabelle mit einer Spalte und 16 Zeilen, warum?
Calli ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.12.2004, 10:39  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
<?
print ("<table border='1'>");
for ($a=0;$a<4;$a++) {
print("<tr align='center'>");
for ($i=0;$i<4;$i++) {
print ("<td>");
print ("sackratte");
print ("</td>");
print ("</tr>");
}
}
?>
nur eins was mir auffält, das
print ("</tr>");
sollte glaub ich hinter die nächste }

also so
Zitat:
<?
print ("<table border='1'>");
for ($a=0;$a<4;$a++) {
print("<tr align='center'>");
for ($i=0;$i<4;$i++) {
print ("<td>");
print ("sackratte");
print ("</td>");
}
print ("</tr>");
}
?>
robo47 ist offline  
Alt 22.12.2004, 12:00  
Gast
 
Beiträge: n/a
Standard

1.
Code:
print ("<td>"); 
print ("sackratte"); 
print ("</td>");
kannste auch zusammenfassen

Code:
echo "<td>sackratte</td>";
du musst nicht für jeden tag oder jedes wort einen neuen befehl schreiben...
 
Alt 22.12.2004, 14:02  
Erfahrener Benutzer
 
Registriert seit: 19.11.2004
Beiträge: 196
Calli
Standard

Ok, schonmal danke für eure hilfe und es hat auch schon soweit funktioniert. Nun will ich die Zeilen meiner DB in die Spalten einfügen. Problem ist jetzt wieder das selbe das er mir die vier Datensätze untereinander Schreibt (also in Zeilen), nicht aber in vier Spalten.

und so siehts aus:
PHP-Code:
 <?
$spalte
=4;
while (
$zeile=mysql_fetch_row($ergebnis)) {

for (
$i=0;$i<$spalte;$i++) {
   print(
"<tr align='center'>");
   print (
"<div style='font-family:verdana;color:#000000;font-size:10px'>");
   print(
"<td>");
   print(
$zeile[$i]);
   print (
"</td>");
   print (
"</div>");
  }
 print (
"</tr>");
}

print(
$zeile);
?>
Calli ist offline  
Alt 22.12.2004, 14:17  
Erfahrener Benutzer
 
Registriert seit: 01.08.2004
Beiträge: 113
Kofi
Kofi eine Nachricht über ICQ schicken
Standard

Die Lösung is imo wieder die gleiche^^. Du öffnest in der for Schleife zwar das <tr> Tag, schließt es aber nur einmal, nämlich ganz zum Schluss.
Das </tr> muss da halt einfach mit in die For-Schleife mit rein.

Übrigens, nach meinen Erfahrungen gibt es da manchmal ein wenig komische Ergebnisse, wenn man <table> und <div> Tags mischt, dann sind die Zellen teilweise etwas verschoben oder so. Ich würde alles mit <div> Tags machen.

Edit:/ Äh, ja, richtig, das "<tr align='center'>" muss aus der Schleife raus, und nicht das andere rein.
Kofi ist offline  
Alt 22.12.2004, 14:31  
Erfahrener Benutzer
 
Registriert seit: 19.11.2004
Beiträge: 196
Calli
Standard

Also der Code von einer ganz normalen HTML Tabelle mit vier Spalten sieht ja so aus:
Code:
<table width="175" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>
und wenn ich das jetzt richtig verstanden habe muss die forschleife jetzt vier mal durchlaufen werden, aber nur der <td></td> teil. Denn <tr> erstellt mir doch die nächste Zeile. Und wenn das passiert ist kann die Schleife geschlosssen werden.

Wenn ich die arbeitsweise richtig kapiert habe müsste der PHP script dazu so aussehen:
PHP-Code:
<? 
$spalten
=4
while (
$zeile=mysql_fetch_row($ergebnis)) {
    print(
"<tr align='center'>");
    for (
$i=0;$i<$spalten;$i++) {
    print (
"<td>");
    print (
"<div style='font-family:verdana;color:#000000;font-size:10px'>");
    print (
$zeile[$i]);
    print (
"</div>");
    print (
"</td>");
    }
   print (
"</tr>");
  }   
 
?>
Das ergebnis bleibt aber eine Tabelle mit vier Zeilen und einer Spalte.
Calli ist offline  
Alt 22.12.2004, 14:50  
Gast
 
Beiträge: n/a
Standard

Hi,

machs doch mal so:

PHP-Code:

echo "<tr>\n";
while (
$zeile=mysql_fetch_row($ergebnis)) {
   for (
$i=0;$i<$spaltenanzahl;$i++) {
      echo 
"<td style=\"font-family:verdana;color:#000000;font-size:10px\">".$zeile[$i]."</td>\n";    
  }   
echo 
"</tr>\n";

Bei klappt es eine Tabelle mit 4 Spalten zu erzeugen.

mfg koelle
 
Alt 22.12.2004, 15:03  
Erfahrener Benutzer
 
Registriert seit: 19.11.2004
Beiträge: 196
Calli
Standard

mhhhh, hab ich ausprobiert, aber leider ohne nennenswerten erfolgt.
Wichtig: ich hab in meiner SQL Tabelle nur eine Spalte mit 4 Zeilen.

sonst wäre das auslesen ja auch garkein Problem
Calli ist offline  
Alt 22.12.2004, 15:37  
Erfahrener Benutzer
 
Registriert seit: 19.11.2004
Beiträge: 196
Calli
Standard

Also irgendwas mache ich definitv falsch. Ich habe mal ($zeile[$i]) durch ("test") ersetzt. Ich erhalte jetzt eine Tabelle mit 4 Zeilen und vier Spalten. Kann sich das irgendwer erklären woraus sich die Tabelle zusammen setzt?
Calli ist offline  
Alt 22.12.2004, 15:51  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Meine Fresse, wie kann man in so wenig Codezeilen soviele Fehler produzieren.

Code:
$spalte=0;
while ($zeile=mysql_fetch_row($ergebnis)) {
  if ($spalte==0) print("<tr align='center'>");
  print ("<td style='font-family:verdana;color:#000000;font-size:10px'>");
  print($zeile[0]);
  print ("</td>");
  $spalte++;
  if ($spalte==4) {
    print("</tr>");
   $spalte=0;
  }
}
if ($spalte>0) {
  while ($spalte<4) {
    print("<td></td>");
    $spalte++;
  }
  print ("</tr>");
}
DiBo33 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Tabelle via Variablen erstellen Funky_ Datenbanken 2 13.06.2006 13:24
Tabelle mit Variable erstellen karl PHP Tipps 2006 2 16.05.2006 21:35
Tabelle Automatisch erstellen Zangelo PHP Tipps 2006 5 03.05.2006 23:06
Tabelle in phpmyadmin erstellen und in Dreamweaver 8 einfüge PHP Tipps 2006 21 07.03.2006 21:35
tabelle erstellen ipanema Datenbanken 3 12.09.2005 20:43
[Erledigt] Tabelle erstellen, zu viele Felder Datenbanken 4 07.09.2005 17:46
spielplan, und Tabelle erstellen alias_zappler PHP Tipps 2005-2 3 01.08.2005 00:25
code-schnipsel -> tabelle richtig erstellen, aber wie? PHP Tipps 2005 1 08.05.2005 03:45
mysql tabelle erstellen - name variable möchtegernchegga PHP Tipps 2005 10 24.04.2005 21:01
Aus Spielen Tabelle erstellen PHP Tipps 2005 4 21.04.2005 22:06
Statistik aus der DB bzw. aus der Tabelle erstellen! PHP Tipps 2005 8 10.03.2005 14:05
Tabelle erstellen, Fehlermeldung Datenbanken 1 25.11.2004 10:09
[Erledigt] Join-Anweisung mit der selben Tabelle erstellen! Datenbanken 1 17.10.2004 12:55
tabelle aus formular erstellen Datenbanken 0 26.08.2004 14:43
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
tabelle in php erstellen print, c tabelle erstellen über print, tabelle mit print erstellen, tabelle mit div erstellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.