PHP Datenbank Spalten zählen / Output XML

  • Themenstarter Themenstarter Tyr_xyz
  • Beginndatum Beginndatum
T

Tyr_xyz

Hallo zusammen,

ich habe eine Datenbank in xampp mit PHP erstellt. Ich bin Anfänger, aber dafür schon relativ weit damit. Was mir allerdings etwas Kopfschmerzen bereitet sind folgende Probleme:

Ich erstelle mit meiner PHP ein XML-File, welches in Tabellen aufgebaut ist. Der Tabellenkopf sieht dann z.B. so aus:

<Control xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/" aid:table="table" aid:trows="4" aid:tcols="2">
...

Die Zellen der Tabelle werden dann mit den Inhalten der Datenbank befüllt. Dies geschieht durch $writestring und z.B. '.$row->output_current.'

Also im Ganzen:
<Control xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/" aid:table="table" aid:trows="4" aid:tcols="2">
<Output_current aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="179">'.$row->output_current.'</Output_current>

Nun ist es allerdings so, dass sich die Anzahl der Tabellenreihen (im XML-File) (oben "aid:trows") entsprechend der Anzahl an Tabellenspalten in der Datenbank orientiert. Daher muss dieser Wert durch eine Variable belegt werden, da ich sonst den Wert nachträglich in der XML-Datei anpassen müsste. Ich brauche also eine Funktion, die eine Art Countbefehl der Tabellenspalten in der Datenbank ausführt.

Hat jemand eine Idee?


----------


Ein weiteres Problem habe ich damit, dass ich durch die writestrings zwar die Inhalte korrekt ausgegeben bekomme, jedoch auch alle leeren Felder der Datenbanktabellen. Gibt es einen Befehl, der bewirkt: "Leere Inhalte/Tags (in der XML-Ausgabe) löschen"?
 
Wenn du die Daten mittels mysql_query aus der DB ausliest, kannst du mit mysql_num_fields() die Anzahl Felder ermitteln
 
Danke saftmeister und yaslaw,

zuerst zu Dir saftmeister: Es ging schon in die richtige Richtung, jedoch fehlt dort ein Befehl für das Zählen der Spalten. Das möchte ich erreichen. Wahrscheinlich brauche ich sogar einen Befehl bei dem ich zusätzlich noch -2 (Minus 2) Rechnen kann, da zwei Felder bei der tabellengenerierung wegfallen müssen.

@ yaslaw: ich versuche es direkt mal und gebe Dir/Euch anschließend sofort feedback.

Danke nochmal!
 
Hey zusammen,

danke yaslaw,

es hat tatsächlich funktioniert. Es war ja sowas von easy und ich kam net drauf. Hatte zwar dieselbe Funktion schon einmal verwende, jedoch dort einen dummen Fehler gemacht. So hat Dein Anstoß dafür gesorgt, dass ich das Ganze nochmal überdacht und die korrekte Lösung nun vor mir habe.

Ich brauche aber dennoch nochmal Eure Hilfe, denn ich muss noch eine Rechenoperation mit dem Ergebnis durchführen:

Die entsprechende Zeile ist:

$writestring ='
<Electrical_data xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/" aid:table="table" aid:trows="'.mysql_num_fields($result).'" aid:tcols="2">';
...

Ich möchte nun "mysql_num_fields($result)" Minus 2 und zusätzlich durch zwei teilen. Also quasi:
((mysql_num_fields($result))-2)/2

Weiß jemand den Lösungsansatz?


Danke!
 
@saftmeister: Das Problem war, dass man innerhalb der Tabellendeklaration keine Rechenoperationen durchführen kann.


Ich habe die Lösung selbst gefunden! Außerdem habe ich das ergebnis noch aufgerundet und somit ist alles palletti******!


Danke allen nochmal!
 
Zurück