Rain
Lieutenant
- Registriert
- Mai 2003
- Beiträge
- 704
Hi, folgendes Problem:
Eine (Kontakte-)Datenbank besitzt bei mir als erstes eine Spalte "ID" und als weitere Spalten "Spalte1", "Spalte2", ... , "SpalteN" welche den Wert 0 oder 1 besitzen. Es ist quasi eine Zuordnung der ID's, ob die ID zu "Spalte" gehört (1) oder nicht (0) ... ich hoffe das klingt verständlich.
Auf eine PHP-Seite lese ich die jeweilige ID aus und hole alle Spalten mit ihren jeweiligen 0 bzw 1
Was ab dem 1. IF passiert ist eigentlich relativ uninteressant. Die Ausgabe ist allerdings echt unschön!
Er liest es doppelt aus! Erst den Key als numerische Bezeichnung und dann nochmal den Key als eigentliche Bezeichnung, wie es auch in der Datenbank steht.
Wie bekomme ich es hin, dass er nur die eigentliche Key-Bezeichnung aus der DB ausliest und nicht noch so nen numerischen Wert? Gelöst habe ich es bis jetzt immer, indem an der Stelle:
noch ne Überprüfung für einen zusätzlichen Zähler eingebaut habe (so n mod-operation, also nur jedes 2. Array - Element verarbeiten $i % 2 == 0), aber das is nicht sehr elegant denke ich
-----------------------------------------------------------
Nebenbei stehe ich noch vor einem 2. Problem:
Die Spalten neben ID heißen natürlich nicht Spalte1-SpalteN, sondern haben richtige Bezeichnungen. Ist es möglich eine alphabetische Ordnung zu erhalten? So werden die Spalten nur ausgelesen, wie sie zeitlich erstellt wurden. Oder ist es möglich das row-Array zu sortieren nach keys?
..
Ich bin für jede Hilfe dankbar!
EDIT: Ok, ksort ist schonmal ne lösung fürs 2. Problem
Eine (Kontakte-)Datenbank besitzt bei mir als erstes eine Spalte "ID" und als weitere Spalten "Spalte1", "Spalte2", ... , "SpalteN" welche den Wert 0 oder 1 besitzen. Es ist quasi eine Zuordnung der ID's, ob die ID zu "Spalte" gehört (1) oder nicht (0) ... ich hoffe das klingt verständlich.
Auf eine PHP-Seite lese ich die jeweilige ID aus und hole alle Spalten mit ihren jeweiligen 0 bzw 1
PHP:
$do = mysql_query("SELECT * FROM `kontakte_zugeh` WHERE ID='$id';");
$row = mysql_fetch_array($do);
foreach ($row AS $key => $value) {
if ($key!="ID") {
// AB HIER UNINTERESSANT FÜR PROBLEM
echo "<tr><th>".str_replace("_", " ", $key)."</th><td>";
if ($value == 1) echo "X";
else echo " ";
echo "</td></tr>";
}
}
Was ab dem 1. IF passiert ist eigentlich relativ uninteressant. Die Ausgabe ist allerdings echt unschön!
Code:
1 X
Spalte1 X
2 X
Spalte2 X
3
Spalte3
4
Spalte4
5 X
Spalte5 X
Er liest es doppelt aus! Erst den Key als numerische Bezeichnung und dann nochmal den Key als eigentliche Bezeichnung, wie es auch in der Datenbank steht.
Wie bekomme ich es hin, dass er nur die eigentliche Key-Bezeichnung aus der DB ausliest und nicht noch so nen numerischen Wert? Gelöst habe ich es bis jetzt immer, indem an der Stelle:
PHP:
if ($key!="ID") {
noch ne Überprüfung für einen zusätzlichen Zähler eingebaut habe (so n mod-operation, also nur jedes 2. Array - Element verarbeiten $i % 2 == 0), aber das is nicht sehr elegant denke ich

-----------------------------------------------------------
Nebenbei stehe ich noch vor einem 2. Problem:
Die Spalten neben ID heißen natürlich nicht Spalte1-SpalteN, sondern haben richtige Bezeichnungen. Ist es möglich eine alphabetische Ordnung zu erhalten? So werden die Spalten nur ausgelesen, wie sie zeitlich erstellt wurden. Oder ist es möglich das row-Array zu sortieren nach keys?
..
Ich bin für jede Hilfe dankbar!
EDIT: Ok, ksort ist schonmal ne lösung fürs 2. Problem
Zuletzt bearbeitet: