SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 17.11.2008, 01:24:51
moa2 moa2 ist offline
Anfänger
 
Registriert seit: Nov 2008
Alter: 42
Beiträge: 4
HTML-Tabelle mit mehreren Spalten erstellen

Hallo,

ich habe gestern mit php angefangen und komme leider nicht weiter. Ich habe schon Stunden rumgesucht und rumgelesen um mein Problem selber zu lösen, komme aber leider nicht weiter. Ich vermute einfach, dass ich den Wald vor lauter Bäumen nicht sehe und es sicherlich eine einfache Lösung gibt, auf die ich einfach nicht komme.

Ich habe eine mySQL Tabelle (tabelle) mit zwei Spalten (ID und Bild) und n Zeilen:
ID Bild
1 1.jpg
2 2.jpg
3 3.jpg
usw. bis n usw.

nun möchte ich eine Tabelle ausgeben die so aussieht:
HTML-Code:
<table>
<tr><td>1.jpg</td><td>2.jpg</td><td>3.jpg</td></tr>
<tr><td>4.jpg</td><td>5.jpg</td><td>6.jpg</td></tr>
<tr><td>7.jpg</td><td>8.jpg</td><td>9.jpg</td></tr>
usw. bis die Tabelle zu ende ist (bis n.jpg)
</table>
Mein Ansatz sieht wie folgt aus:
PHP-Code:

$sql 
"SELECT * FROM tabelle ORDER BY ID";
$result  =  mysql_query($sql);

echo 
"<table>";

 while (
$ar=mysql_fetch_array($result,MYSQL_ASSOC)){
      echo 
"<tr><td>",$ar["Bild"],"'></td><td>",$ar["Bild"]+1,"'></td><td>",$ar["Bild"]+2,"'></td></tr>\n";
 }
echo 
"</table>"
Die erste Zeile sieht auch gut aus, aber in der Zweiten fängt er wieder mit Bild 2.jpg an.
Wenn man logisch drüber nachdenkt ist es ja auch klar, aber wie kann man so eine Tabelle realisieren?

Ich bin für jeden Tipp dankbar.

Schöne Grüße
Christof
Mit Zitat antworten
  #2  
Alt 17.11.2008, 07:19:19
Benutzerbild von agent47
agent47 agent47 ist offline
Anfänger
 
Registriert seit: Nov 2008
Alter: 35
Beiträge: 106
AW: HTML-Tabelle mit mehreren Spalten erstellen

weil du bei jedem durchlauf eine neue zeile erzeugst, du musst eine zählvariable einbauen so das immer erst nach dem 3. durchlauf die aktuelle zeiel beendet und eine neue gestartet wird.
Mit Zitat antworten
  #3  
Alt 17.11.2008, 10:23:42
moa2 moa2 ist offline
Anfänger
 
Registriert seit: Nov 2008
Alter: 42
Beiträge: 4
AW: HTML-Tabelle mit mehreren Spalten erstellen

Hallo,

vielen lieben dank erstmal an agent47. Das ist schon mal die richtige Richtung.
Also muss das Ganze etwa so aussehen. Oder?
PHP-Code:
$sql "SELECT * FROM tabelle ORDER BY ID";
$result  =  mysql_query($sql);

echo 
"<table><tr>";

 while (
$ar=mysql_fetch_array($result,MYSQL_ASSOC)){

echo 
"<td>",$ar["Bild"],"'></td>";
"Hier eine Funktion die jedes dritte Mal folgendes ausgibt {
echo "
</tr><tr>";
 }
}

echo "
</tr></table>"; 
Jetzt habe ich nachgeschaut was Zählvariablen sind, damit kann man den Wert einer Variablen erhöhen $i++; (bzw. erniedrigen$i--;).

Aber so richtig läuchtet es mir leider nicht ein. Vielleicht hat ja jemand noch einen Tipp oder ein Beispiel?

Danke schon mal
Christof
Mit Zitat antworten
  #4  
Alt 17.11.2008, 11:01:05
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: HTML-Tabelle mit mehreren Spalten erstellen

Zitat:
Zitat von moa2 Beitrag anzeigen
Aber so richtig läuchtet es mir leider nicht ein. Vielleicht hat ja jemand noch einen Tipp oder ein Beispiel?
in einem der ersten kapitel des handbuchs werden die grundlegenden operatoren besprochen:

http://de3.php.net/manual/de/languag...arithmetic.php

dort steht auch was über modulo, und genau der hilft dir weiter.
Mit Zitat antworten
  #5  
Alt 17.11.2008, 11:51:37
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: HTML-Tabelle mit mehreren Spalten erstellen

Es geht auch ohne modulo ;-)


PHP-Code:
<?php
error_reporting
(E_ALL);
ini_set('display_errors'TRUE);

class 
Pager
{
  private 
$perpage  1// Elemente pro Seite
  
private $anzahl   0// insgesamt vorhandene Elemente

  
public function __construct($anzahl,$perpage=1)
  {
    if(
$anzahl  0) throw new Exception('Negative Anzahl!');
    if(
$perpage 1) throw new Exception('Min 1 Element per Page!');
    
$this->anzahl   = (int)$anzahl;  // integer erzwingen
    
$this->perpage  = (int)$perpage// integer erzwingen
  
}
  
  public function 
pages() // anzahl Seiten
  
{
    return (int)
ceil($this->anzahl/$this->perpage);
  }
  
  public function 
page($index// gibt den ausgewählten Ausschnitt
  
{
    
$index  = (int)$index// integer erzwingen
    
if($index 1) throw new Exception('Index to low!');
    
$index--; // normalisieren
    
$offset $this->perpage $index;
    if(
$offset >= $this->anzahl)
        throw new 
Exception('Index out of Range!');
    return array(
'offset'=>$offset,'count'=>$this->perpage);
  }
}


/* den brauchst du hier nicht
class ArrayPager extends Pager
{
  private $array = array(); // alle Elemente

  public function __construct(Array &$array, $perpage=1)
  {
    parent::__construct(count($array),$perpage);
    $this->array = array_values($array); // Index normalisieren
  }

  public function page($index) // gibt den ausgewählten Ausschnitt
  {
    $bereich = parent::page($index); // auschnitt berechnen
    return array_slice($this->array,$bereich['offset'],$bereich['count']);
  }
}
*/

class LimitPager extends Pager
{
  public function 
page($index// gibt den ausgewählten Ausschnitt
  
{
    
$bereich =  parent::page($index); // ausschnitt holen
    
return ' LIMIT '.$bereich['offset'].','.$bereich['count'] ;
  }
}


function 
navigation($max$page)
{
  
$result  '';
  for (
$i=1;$i<=$max;$i++)
    if(
$page == $i// aktuelle Seite bekommt keinen Link
     
$result .= " <b>$i</b> \n";
    else 
$result .= " <a href='?page=$i'>$i</a> \n";
  return 
$result;
}

function 
tabelle(Array $array$rows$cols,$abschneiden=TRUE)

  
$ende FALSE // helper um überflüssige Tabellenzeilen zu vermeiden
  
$result  '';
  
$result  .= "<table>\n";
  for (
$r=0;$r<$rows;$r++)
  {
    if(
$ende && $abschneiden) break; // Tabelle vorzeitig beenden
    
$result  .= "  <tr>\n";
    for (
$c=0;$c<$cols;$c++)
    {
      
$i        $r $cols $c;
      if(
$i >= count($array)) $ende TRUE // Array leer
      
$value    = empty($array[$i])?'&nbsp;':$array[$i]; // Zelle leer
      
$result  .= "    <td> $value </td>\n";
    }
    
$result  .= "  </tr>\n";
  }
  
$result  .= "</table>\n";
  return 
$result;
}

//--------------------------------------



$rows           5// Zeilen der Tabelle
$cols           5// Spalten der Tabelle
$perPage        $rows $cols;

if(!
mysql_connect("localhost""user""passwort"))
   throw new 
Exception("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
if(!
mysql_select_db("deinedb"))
  throw new 
Exception("Die Datenbank existiert nicht.");

$seite  = isset($_GET['page'])?(int)$_GET['page']:1// aktuelle Seite bestimmen
$seite  max(1,$seite); // Seite 1 ist die kleinste mögliche


// Anzahl aller Möglichen in Erfahrung bringen
$sql    " SELECT COUNT(*) AS anzahl FROM tabelle";
$result mysql_query($sql);
$row    mysql_fetch_assoc($result);

$pager  = new LimitPager($row['anzahl'],$perPage);
$sql    " SELECT Bild FROM tabelle ORDER BY ID ".$pager->page($seite);
$result mysql_query($sql);

$array  = array();
while(
$row mysql_fetch_assoc($result)) $array[] = $row['Bild'];
array_walk($array,'htmlentities'); // Sonderzeichen HTML codieren




//--------------------------------------




?>
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  <title>Blätterfunktion</title>
 </head>
   <body>
     <h1> <?php echo "Seite $seite von ".$pager->pages()?> </h1>
      <?php echo navigation($pager->pages(),$seite)?>
      <hr>
      <?php echo tabelle($array,$rows,$cols)?>
   </body>
</html>
*ungetestet*
Aus meiner Sammlung und leicht für dieses Problem angepasst.
von daher: *ungetestet*

Geändert von DokuLeseHemmung (17.11.2008 um 14:04:05 Uhr)
Mit Zitat antworten
  #6  
Alt 17.11.2008, 12:01:49
moa2 moa2 ist offline
Anfänger
 
Registriert seit: Nov 2008
Alter: 42
Beiträge: 4
AW: HTML-Tabelle mit mehreren Spalten erstellen

Hallo,

vielen Lieben dank, ich hab zwar jetzt keinen Modulo Operator verwendet, aber dank eurer Tipps bin ich auf eine Lösung gekommen:

PHP-Code:
$sql "SELECT * FROM tabelle ORDER BY ID";
$result  =  mysql_query($sql);
$num=1;

echo 
"<table><tr>";

 while (
$ar=mysql_fetch_array($result,MYSQL_ASSOC)){

echo 
"<td>",$ar["Bild"],"'></td>";

if(
$num==3){
    echo 
"</tr><tr class='td1' ALIGN='left' VALIGN='middle'>";
    
$num=0;
 }
     
$num++;
  }
 }
}

echo 
"</tr></table>"
Jetzt funktioniert es. Vielen Dank. Jetzt wo es fertig ist, eigentlich ganz einfach. Aber ich fange gerade an. Ist mein dritter Programmier und PHP Tag. Wenn man manchmal nicht einmal genau weiss wonach man sucht ist es schon schwierig.

Schöne Grüße
Christof
Mit Zitat antworten
  #7  
Alt 17.11.2008, 12:07:13
moa2 moa2 ist offline
Anfänger
 
Registriert seit: Nov 2008
Alter: 42
Beiträge: 4
AW: HTML-Tabelle mit mehreren Spalten erstellen

Hallo DokuLeseHemmung,

danke auch an dich, da muss ich erst einmal durchblicken. Schaue es mir aber gleich an.

Schöne Grüße
Christof
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ausgabe in mehreren Spalten (Schachbrett) vamp MySQLi/PDO/(MySQL) 3 18.08.2008 11:57:32
Tabelle in Forum-Post erstellen DerKontro HTML, CSS und JavaScript Help! 3 23.10.2007 16:03:32
Abfrageproblem - 2 Spalten mit einer Tabelle verknüpfen grone MySQLi/PDO/(MySQL) 2 09.11.2006 21:14:37
aus mehreren html dateien statistik (mit php?) erstellen TeK PHP für Fortgeschrittene und Experten 7 10.06.2005 17:08:52
Formulardaten mit PHP auswerten und in eine HTML Tabelle eintragen lassen? thomas_taubert PHP Grundlagen 4 06.10.2004 15:24:19


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:07:14 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt