PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Tabellarische Ausgabe von SQL Abfrage (http://www.selfphp.de/forum/showthread.php?t=17538)

TaranTimo 30.08.2007 09:46:10

Tabellarische Ausgabe von SQL Abfrage
 
Hallo! ich bins mal wieder! :)

Nachdem das wichtigste mit eurer Hilfe mitlerweile läuft ( ein dickes Danke nochmal! ) stehe ich jetzt vor einem neuen Problem.

Folgendes Szenario:

In ein Formular gibt man eine SysID ein. Diese wird an eine auswerten.php weitergeleitet. Diese Zeigt nun das komplette System an ( Das funktioniert schon wunderbar) doch nun soll es auch noch die angeschlossenen Drucker Tabellarisch ausgeben. Nun habe ich schon eine passende SQL Abfrage erstellt mit allen Daten die ich brauche:


PHP-Code:

$sql2 " SELECT
                 rd.DruckID, rd.sysID ,d.DruckID, d.Freigname, d.Modell, d.Quelle, d.IP 
                        FROM 
                          rechner_drucker rd, drucker d 
                        WHERE 
                        rd.SysID= {$_POST['sysid']} AND d.DruckID = rd.DruckID;" 


Mein Problem liegt jetzt darin das ganze geordnet auszugeben... Die Tabelle sollte wie folgt aussehen:

| DruckID | Modell | Quelle | IP | Freigabe Name |
----------------------------------------------------------
| ID 1 | Mod1 | Q1 | IP1 | FreigName 1 |
| ID 2 | Mod2 | Q2 | IP2 | FreigName 2 |

usw......

Eine SysID kann ja beliebig viele DruckIDs haben...manchmal nur eine, keine oder mal 15.


Ich habe es bis jtzt nur geschafft die Nummern nebeneinander auszugeben.

Nun hoffe ich dass einer von euch PHP Profis mir nen Tip bzw Denkansatz geben kann um das ganze zu realisieren! Bis jetzt habt ihr mich ja noch nie hängen lassen!:)

Danke schonmal für eure Mühe!

Raketenmann 30.08.2007 11:43:35

AW: Tabellarische Ausgabe von SQL Abfrage
 
Du brauchst zwei Schleifen. Die äußere durchläuft die Zeilen des Ergebnisses und gibt ein <tr> vor und ein </tr> nach der inneren Schleife aus. Die innere Schleife durchläuft die Spalten, der jeweiligen Zeile, des Ergebnisses und gibt die Inhalte in <td>s aus.

Vor der äußeren Schleife <table> ausgeben, und danach </table>...

...schon hast du deine Tabelle.

TaranTimo 03.09.2007 12:16:04

AW: Tabellarische Ausgabe von SQL Abfrage
 
Hi Raketenmann!

Danke für den Denkansatz! Nur besteht das Problem dass ich das ganze in der Vorgegebenen HTML Maske ausgeben soll! Und diese sieht leider wirklich so:


| DruckID | Modell | Quelle | IP | Freigabe Name |
----------------------------------------------------------
| ID 1 | Mod1 | Q1 | IP1 | FreigName 1 |
| ID 2 | Mod2 | Q2 | IP2 | FreigName 2 |


aus.

Ich habe jetzt als Notlösung erstmal folgendes gemacht:

PHP-Code:

<table bordercolor="#558488" bgcolor="#558488" border="3">
            <tbody>
              <tr>
                <td><font face="Copperplate Gothic Bold" color="white" size="4">DruckID</font></td>

                <td><font face="Copperplate Gothic Bold" color="white" size="4">Modell</font></td>

                <td><font face="Copperplate Gothic Bold" color="white" size="4">Quelle</font></td>

                <td><font face="Copperplate Gothic Bold" color="white" size="4">IP Adresse</font></td>

                <td><font face="Copperplate Gothic Bold" color="white" size="4">Freigabe Name</font></td>
              </tr>

              <tr>
                <td><font face="Copperplate Gothic Bold" color="white" size="4"><?PHP 
 $result2 
mysql_db_query 'telit'$sql2 );
  while(
$spalte2 mysql_fetch_assoc($result2)) {
  echo 
$spalte2['DruckID']."<br><td>"; } ?></font></td>

                <td><font face="Copperplate Gothic Bold" color="white" size="4"><?Php                $result2 mysql_db_query 'telit'$sql2 );
   while(
$spalte2 mysql_fetch_assoc($result2)) {
   echo 
$spalte2['Modell']."<br>"; } ?></font></td>

                <td><font face="Copperplate Gothic Bold" color="white" size="4"><?Php $result2 mysql_db_query 'telit'$sql2 );
 while(
$spalte2 mysql_fetch_assoc($result2)) {
    echo 
$spalte2['Quelle']."<br>"; } ?></font></td>

                <td><font face="Copperplate Gothic Bold" color="white" size="4"><?Php $result2 mysql_db_query 'telit'$sql2 );
while(
$spalte2 mysql_fetch_assoc($result2)) {
echo 
$spalte2['IP']."<br>"; } ?></font></td>

                <td><font face="Copperplate Gothic Bold" color="white" size="4"><?Php $result2 mysql_db_query 'telit'$sql2 );
while(
$spalte2 mysql_fetch_assoc($result2)) {
echo 
$spalte2['Freigname']."<br>"; } ?></font></td>
              </tr>
            </tbody>
          </table>

Nur ist das Problem dass wenn der Modellname zu lang ist natürlich alles verschoben ist.
Mir fällt auch einfach nicht ein wie ich das Problem lösen kann! :(
Ja ich weiß PHP Anfänger sind nervig..;)

defabricator 03.09.2007 12:33:26

AW: Tabellarische Ausgabe von SQL Abfrage
 
Warum versuchst Du, jeweils alle Zeilen in ein Spaltenelement (td) zu quetschen? Ist das die Vorgabe? Das wäre bescheuert, aber mindestens eine Diskussion wert.

TaranTimo 03.09.2007 12:42:42

AW: Tabellarische Ausgabe von SQL Abfrage
 
Ja ich habe die HTML Seite als Vorlage, die Datenbank hab ich selber entwickelt und das PHP macht mich fertig..;)

Ich bin auch in dem Schleifendenken einfach noch nicht so drin!

Welche Lösung würdest du denn vorschlagen??

Raketenmann 03.09.2007 12:44:11

AW: Tabellarische Ausgabe von SQL Abfrage
 
Zitat:

Zitat von TaranTimo (Beitrag 106078)
Ja ich weiß PHP Anfänger sind nervig..;)

...aber nichts im Vergleich zu HTML Anfängern ;-)

Zitat:

Zitat von TaranTimo (Beitrag 106078)
Nur ist das Problem dass wenn der Modellname zu lang ist natürlich alles verschoben ist.

Du hast auch nicht das gemacht, was ich dir geraten hatte! ;-P

Es war keine Rede davon eine Tabellenzeile zu erzeugen und darin alle Inhalte untereinander zu schreiben. So wird das nix...

Die Änderungen:
1. Du versprichst, nie wieder das <font>-Tag zu verwenden.
2. Probiers mal mit dieser Struktur:

PHP-Code:


echo '
<table cellpadding="4" cellspacing="0" border="1">
<tr> 
<td>DruckID</td> 
<td>Modell</td> 
<td>Quelle</td> 
<td>IP Adresse</td> 
<td>Freigabe Name</td> 
</tr> '
;

$sql='';  // Hier den Query nachtragen (der Inhalt von $sql2 aus deinem QT)

$result=mysql_query($sql); 
while(
$spalten=mysql_fetch_array($result,MYSQL_NUM)) 
    {
        echo 
'<tr>';
        for(
$z=0;$z<count($spalten);$z++)
            {
                echo 
'<td>'.$spalten[$z].'</td>';
                    
            }
        echo 
'</tr>';
    } 
  
echo 
'</table>'

Deine Formatierungen sind in dem Bsp verschwunden, bzw. musst du selber reinbauen, aber lies erstmal was über CSS...

EDIT:
Ach, sehe ich jetzt erst. Du musst das so machen? Na dann schreib halt die <font>-Tags wieder rein... Aber gegen ein paar zusätzliche Tabellenzeilen wird dein Vorlagengeber ja wohl nichts haben.

defabricator 03.09.2007 12:46:07

AW: Tabellarische Ausgabe von SQL Abfrage
 
Zitat:

Zitat von TaranTimo (Beitrag 106087)
Welche Lösung würdest du denn vorschlagen??

Die von Raketenmann gezeigte ;)

TaranTimo 03.09.2007 12:54:11

AW: Tabellarische Ausgabe von SQL Abfrage
 
Wow das ging schnell!:)

Seh ich genauso! Hauptsache das läuft! Werde mich einfach selber noch in Css und HTML einlesen und das ganze nochmal überarbeiten!

Aber ein dickes Danke nochmal an euch beide und ganz besonders an dich Raketenmann!:)

TaranTimo 03.09.2007 13:13:22

AW: Tabellarische Ausgabe von SQL Abfrage
 
Hat sich erledigt...war zu dumm..:)

defabricator 03.09.2007 13:17:11

AW: Tabellarische Ausgabe von SQL Abfrage
 
Was ist an den NULL Werten problematisch?
Brauchst Du an den Stellen in der Tabelle statt nichts ein &nbsp; ?


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:19:24 Uhr.

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