php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-01-2006, 14:38
HenryH
 Newbie
Links : Onlinestatus : HenryH ist offline
Registriert seit: Jan 2003
Beiträge: 56
HenryH ist zur Zeit noch ein unbeschriebenes Blatt
Standard wie Tabellenspalte verschieben?

ich hab vor längerem mal ein Script geschrieben, das die Ausgabe der Daten in der Reihenfolge der vorhandenen Tabellenspalten vornimmt.
D.h. es werden mit mysql_list_fields() die vorhandenen Spalten ausgelesen und abgearbeitet.

Wie kann ich nun z.b. eine so aufgebaute Tabelle

Name | Vorname | Strasse | Ort | Abteilung

in diese Reihenfolge

Name | Vorname | Abteilung | Strasse | Ort

ändern, ohne die Spalte zu löschen und neu anzulegen, was natürlich den Verlust der Daten zur Folge hätte?

Umwege über CSV-Datei Export/Ändern/Import sind natürlich möglich, aber nur für den äußersten Notfall angedacht.

ALTER TABLE stellt keine Möglichkeit zu einer solchen Änderung bereit.

any ideas?

Danke vorab!
Mit Zitat antworten
  #2 (permalink)  
Alt 10-01-2006, 14:42
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Warum überhaupt mysql_list_fields()?

Warum nimmst du nicht einfach mysql_query() und weist die Ergebnisse mit mysql_result() zu?
__________________
it's not a bug,
it's a feature!
Mit Zitat antworten
  #3 (permalink)  
Alt 10-01-2006, 14:46
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: wie Tabellenspalte verschieben?

Die einfache Methode: Nutze PMA dafür, der bietet doch auch das "Verschieben" von Spalten an.

Die etwas kompliziertere: Bilde das, was PMA dabei auch im Hintergrund macht, nach - Daten in temporäre Tabelle kopieren (oder dumpen), anschließend Originaltabelle droppen und mittels CREATE-Statement mit veränderter Spaltenreihenfolge wieder erstellen, dann Daten wieder hineinladen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #4 (permalink)  
Alt 10-01-2006, 14:50
HenryH
 Newbie
Links : Onlinestatus : HenryH ist offline
Registriert seit: Jan 2003
Beiträge: 56
HenryH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das passiert im nächsten Schritt bei der Ausgabe der Datensätze. Die Daten werden in der Reihenfolge der Tabellenspalten (horizontal) angezeigt, vertikal dann die selektierten Datensätze ausgegeben.

Ist aber irrelevant. Das Script läuft seit längerem ohne Probleme, da soll auch nichts dran geändert werden. Hintergrund dieses Aufbaues war, problemlos weitere Felder an-/einfügen zu können ohne am Script Änderungen vorzunehmen.

edit: @wahsaga
sorry, was ist PMA?
Mit Zitat antworten
  #5 (permalink)  
Alt 10-01-2006, 14:55
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PMA = PHPMyAdmin
__________________
it's not a bug,
it's a feature!
Mit Zitat antworten
  #6 (permalink)  
Alt 10-01-2006, 14:55
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von HenryH
sorry, was ist PMA?
Hier gängige Abkrzng für phpMyAdmin.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 10-01-2006, 14:58
HenryH
 Newbie
Links : Onlinestatus : HenryH ist offline
Registriert seit: Jan 2003
Beiträge: 56
HenryH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, dann ists klar. Aber weder bei V 2.5.7 noch bei V 2.6.1, die ich auf dem Server am Laufen habe, gibts eine Option zum Verschieben von Spalten.

Hab ich da was übersehen? Wo hat sich die Option versteckt?
Mit Zitat antworten
  #8 (permalink)  
Alt 10-01-2006, 15:05
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.279
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: wie Tabellenspalte verschieben?

Zitat:
Original geschrieben von wahsaga
Die einfache Methode: Nutze PMA dafür, der bietet doch auch das "Verschieben" von Spalten an.

Die etwas kompliziertere: Bilde das, was PMA dabei auch im Hintergrund macht, nach - Daten in temporäre Tabelle kopieren (oder dumpen), anschließend Originaltabelle droppen und mittels CREATE-Statement mit veränderter Spaltenreihenfolge wieder erstellen, dann Daten wieder hineinladen.
Das ist mir neu ... wo ist die Funktion?!

Im übrigen .. einfacher als eine neue Tabelle anlegen:

Attribut "attr_neu" an entsprechender Position anlegen,
Code:
ALTER TABLE tabelle ADD attr_neu TYPEDEF AFTER wurst;
UPDATE tabelle SET attr_neu = attr_alt;
Attribut attr_alt löschen.
Code:
ALTER TABLE tabelle DROP attr_alt;
Attribut attr_neu in attr_alt umbenennen ...
Code:
ALTER TABLE tabelle CHANGE attr_neu attr_alt TYPEDEF;
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #9 (permalink)  
Alt 10-01-2006, 15:08
HenryH
 Newbie
Links : Onlinestatus : HenryH ist offline
Registriert seit: Jan 2003
Beiträge: 56
HenryH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Super

Da sieht man mal wieder, dass allzu kompliziertes Denken (wie in meinem Fall) den Blick auf die einfachsten Lösungen vernebelt...
Mit Zitat antworten
  #10 (permalink)  
Alt 10-01-2006, 15:11
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

es ist aber auf jeden Fall besser auf "deprecated" Funktionen zu verzichten, mit SELECT-Abfrage kannst du die Reihenfolge nach Lust und Laune festlegen.
Mit Zitat antworten
  #11 (permalink)  
Alt 10-01-2006, 15:17
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.279
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von asp2php
es ist aber auf jeden Fall besser auf "deprecated" Funktionen zu verzichten,
???
Zitat:
Original geschrieben von asp2php
mit SELECT-Abfrage kannst du die Reihenfolge nach Lust und Laune festlegen.
Das ist klar ... aber grundsätzlich tut auch ein "schönes" Tabellen Layout zu einem "schönen" Datenbank-Entwurf ... und zu mehr Übersichtlichkeit.
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #12 (permalink)  
Alt 10-01-2006, 15:18
HenryH
 Newbie
Links : Onlinestatus : HenryH ist offline
Registriert seit: Jan 2003
Beiträge: 56
HenryH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von asp2php
es ist aber auf jeden Fall besser auf "deprecated" Funktionen zu verzichten, mit SELECT-Abfrage kannst du die Reihenfolge nach Lust und Laune festlegen.
Das passiert bei der Ausgabe der Datensätze. Die Anzeigenreihenfolge der Daten hat damit aber nichts zu tun und lässt sich mit SELECT hier auch nicht steuern.

Obwohl ich ja bereits die Lösung habe. Hier nochmal zum besseren Verständnis der Aufbau:

Tabelle:

Name | Vorname | Strasse | Ort | Abteilung


Ausgabe aus der DB

Name | Vorname | Strasse | Ort | Abteilung
Müller | Peter | Hauptstr.7 | Musterhausen | Lager
Meyer | Hans | Dorfstr.1 | Musterstadt | Verwaltung
...
...

Soll nun die Abteilung direkt hinter dem Vornamen ausgegeben werden muss die Reihenfolge der Tabellenspalten geändert werden.

Andernfalls müsste dem Script bekannt sein, welche Felder in der Tabelle vorhanden sind, und per Script oder Template die Anzeigereihenfolge gesteuert werden.
Mit Zitat antworten
  #13 (permalink)  
Alt 10-01-2006, 15:27
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von goth
???
Zitat:
Auszug aus Manual

mysql_list_fields

(PHP 3, PHP 4, PHP 5)
mysql_list_fields -- List MySQL table fields
Description
resource mysql_list_fields ( string database_name, string table_name [, resource link_identifier] )

Retrieves information about the given table name.

This function is deprecated. It is preferable to use mysql_query() to issue a SQL SHOW COLUMNS FROM table [LIKE 'name'] statement instead.
Mit Zitat antworten
  #14 (permalink)  
Alt 10-01-2006, 15:32
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.136
Quetschi wird schon bald berühmt werden
Standard

Weil ich grad mitles:

Ich wüsste auch gern wo in PMA ne Funktion zum Spalten verschieben ist - verwende 2.6.0 pl2 - gibts das erst später? Momentan gibts ja 2.7.irgendwas
Mit Zitat antworten
  #15 (permalink)  
Alt 10-01-2006, 15:35
HenryH
 Newbie
Links : Onlinestatus : HenryH ist offline
Registriert seit: Jan 2003
Beiträge: 56
HenryH ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Interessant, danke für den Hinweis. Hilft mir aber in dem Fall auch nicht weiter, da es in diesem Fall keine logisch erfassbare Sortierreihenfolge gibt.
Gut, ich könnte hier in einem Datensatz zu jedem Feld eine Prio ablegen. Eine gute Idee für zukünftige Scripte.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Vorteile eines flexiblen ERP Systems
Vorteile eines flexiblen ERP SystemsEin flexibles ERP System bietet in allen Unternehmensbereichen die Grundlage für eine erfolgreiche Verwaltung, Organisation und Planung aller Prozesse.

01.12.2021 | Berni

Software für alle Arten von digitalen Marktplätzen
Software für alle Arten von digitalen MarktplätzenDigitale Marktplätze sind nicht nur im B2C Geschäft seit Jahren etabliert, sondern erfreuen sich mit Kleinanzeigen-Märkten auf lokaler und regionaler Ebene auch im privaten Bereich wachsender Beliebtheit.

09.11.2021 | Berni


 

Aktuelle PHP Scripte

kostenloser PHP-Editor Codelobster ansehen kostenloser PHP-Editor Codelobster

Kostenloser PHP, HTML, CSS, JavaScript editor (IDE) - Codelobster PHP Edition

06.12.2021 Berni | Kategorie: PHP ENTWICKLUNGSUMGEBUNG
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

09.11.2021 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Newsletter Script SuperWebMailer ansehen PHP Newsletter Script SuperWebMailer

Die webbasierte PHP Newsletter Software SuperWebMailer ist die optimale Lösung zur Durchführung eines erfolgreichen E-Mail-Marketings. Zur Nutzung des PHP Script-Pakets ist eine eigene Webpräsenz/Server mit PHP 5 oder neuer, MySQL 4 oder neuer und die

28.10.2021 mirko_swm | Kategorie: PHP/ Mail
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:35 Uhr.