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:
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
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:
PHP:
$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;}
}
}
Die Sortierung:
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