ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
408
408
EMPFEHLEN
-
Hallo liebe Forenmember,
ich ersuche um eine Möglichkeit die Ausgabe von "SHOW COLUMNS..." nach eigenem System zu sortieren.
Grundlage:
1. In der Datenbank Kontaktdaten gibt es die Felder Privat, Dienstlich, Mobil und Email
2. Die Datenbank ist mittel alter Table erweiterbar ( also einfügen Privat2, Email3 etc)
Nun die Fragestellung:
Wie kann ich mysql anweisen zunächst SHOW COLUMNS FROM Kontaktdaten LIKE "P%" dann LIKE "D%" etc.?
Da es sich um eine vom User erweiterbare Datenbank handelt sollen gleiche Columns nacheinander ausgegeben werden. Sortieren nach Alphabet ist keine ideale Lösung für mich. Den Umweg über ein "key" würde ich gerne vermeiden.
Der CODE:
Die Sortierung:PHP-Code:$sql3 = 'SHOW COLUMNS FROM ma_Kontaktdaten WHERE FIELD LIKE "P%"';
$res3 = $db->query($sql3);
$a = 0;
while($row3 = $res3->fetch_assoc()) {
$sql4 = 'SELECT '.$row3['Field'].' FROM Kontaktdaten WHERE ma_id = "'.$ma_id.'"';
$res4 = $db->query($sql4);
$row4 = $res4->fetch_assoc();
$field = $row3['Field'];
if($field != 'ma_id') {
$a++;
if(($row4[$field] != '') OR ($row3['Field'] == 'Privat') OR ($row3['Field'] == 'Dienstlich') OR ($row3['Field'] == 'Mobil') OR ($row3['Field'] == 'Email')) {
echo '<td style="border-right: 0; visibility:visible">'.$field.'</td><td style="border-left: 0"><input type="text" name="kontakt['.$field.']" value="'.$row4[$field].'" /></td>';
}
if($a > 1) { echo '</tr><tr>'; $a=0;}
}
}
1. LIKE "PRIVAT%"
2. LIKE "DIENSTLICH%"
3. LIKE "Mobil%"
4. LIKE "Email%"
5. der Rest
Im Voraus vielen herzlichen Dank an die vielen engagierten Helfer, hat mir bereits sehr oft geholfen dank der SuFu
Gruß Sakana
-
SHOW COLUMNS ist hier meiner Meinung nach der komplett falsche Ansatz....
SHOW COLUMNS bzw. die MySQL Meta Tables sind für Administrative Aufgaben gedacht.
In solchen Anwendungsfällen löst man benötigte Felder n:m auf und macht daraus 2 Tabellen eine für "Spaltennamen" die andere für die eigentlichen "Spaltenwerte" und joint anschließend. Dann gehen auch solche Scherze....
-
Hi
Mach doch 5 Abfragen mit dem jeweiligen Filter und verknüpf sie per UNIONGrüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
Benutz dafür einfach nicht SHOW COLUMNS sondern die information_schema tabellen.
Code sql:1
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'DBName' AND TABLE_NAME = 'ma_Kontaktdaten' AND COLUMN_NAME LIKE 'P%'
und nun kannst du die einelnen abfragen einfach mit unions zusammen führen.
Code sql:1 2 3 4 5
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'DBName' AND TABLE_NAME = 'ma_Kontaktdaten' AND COLUMN_NAME LIKE 'P%' UNION ALL SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'DBName' AND TABLE_NAME = 'ma_Kontaktdaten' AND COLUMN_NAME LIKE 'D%' UNION ALL ...
-
Guten Morgen Nico und Chibisuke und Seeking
habs zwar noch nicht probiert, aber klappt sicher, super von euch beiden. Herzlichen Dank. Manchmal kommt man auf die einfachsten Sachen nicht
Naja, wenn man sich mehrere Jahre nicht mehr mit proggen beschäftig hat...
Gruß Sakana
-
du könntest es auch in einem Statement machen, wenn du dir eine Sortierhilfe baust - weiß nicht was du vor hast aber die Abbildung von n:m mit einer extra Tabelle ist sicher besser.
Code sql:1 2 3 4 5 6 7 8 9 10
SELECT * CASE WHEN xx LIKE "PRIVAT%" THEN 1 WHEN xx LIKE "DIENSTLICH%" THEN 2 WHEN xx LIKE "Mobil%" THEN 3 WHEN xx LIKE "Email%" THEN 4 ELSE 5 END AS Sort FROM .... ORDER BY Sort
m.f.g
b. zimmel
Ähnliche Themen
-
Ganz kurze Frage: SHOW COLUMNS außer...
Von knallbernd im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 12.07.07, 15:06 -
Ganz kurze Frage: SHOW COLUMNS außer...
Von knallbernd im Forum PHPAntworten: 4Letzter Beitrag: 12.07.07, 15:06 -
MySql Columns - Namen herausfinden!
Von time-master im Forum PHPAntworten: 2Letzter Beitrag: 12.12.05, 13:46 -
MySql: Table 'mysql.host' doesn't exist | <- ?
Von cardex im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 13.08.02, 08:38 -
SHOW TABLE STATUS von was?
Von Der Held im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 20.02.02, 07:56





Zitieren

Login





