Spalte herausfinden
Peter
- php
0 Viennamade0 Peter0 Viennamade0 Peter0 Viennamade0 Peter0 Viennamade0 Peter
0 Tom0 Viennamade0 Tom
Hallo,
Ich habe einen Werte (z.b. 1) in irgendeiner Spalte meiner Datenbank. Nun möchte ich rausfinden in welcher dieser Wert ist...
Kann mir jemand helfen?
Hallo,
Ich habe einen Werte (z.b. 1) in irgendeiner Spalte meiner Datenbank. Nun möchte ich rausfinden in welcher dieser Wert ist...
Also erstens ein "SELECT * FROM xyz" und dann mit einer äußeren Schleife durch die Datensätze, mit einer inneren Schleife durch die Feldwerte.
Syntaktisch ist das vom DB-Produkt abhängig, manche DBs bieten auch Spezialbefehle die performanter sind als der beschriebene Weg.
So Du nicht viel Erfahrung mit Datenbanken hast, solltest Du den Tabellenaufbau hinterfragen, Deiner Frage liegt entweder eine ungewöhnliche Aufgabe oder ein unorthodoxer Tabellenaufbau zugrunde.
Gruß
Viennamade
Also erstens ein "SELECT * FROM xyz" und dann mit einer äußeren Schleife durch die Datensätze, mit einer inneren Schleife durch die Feldwerte.
Das habe ich nicht ganz verstanden. Was meinst du mit einer äußeren und inneren Schleife?
Also erstens ein "SELECT * FROM xyz" und dann mit einer äußeren Schleife durch die Datensätze, mit einer inneren Schleife durch die Feldwerte.
Das habe ich nicht ganz verstanden. Was meinst du mit einer äußeren und inneren Schleife?
Hallo,
ich meine wenn Deine Datensätze zB. so aussehen:
Maier, Angelika, Wien
Huber, Fritz, Salzburg
Manner, Beate, München
dann muß eine äußere Schleife den Datensatzzeiger durch die Datensätze ("Maier", "Huber", "Manner") bewegen. Ist der Datensatzzeiger bei "Maier", dann muß die innere Schleife die Felder ("Maier", "Angelika", "Wien") mit dem von Dir gesuchten Wert vergleichen.
Beste Grüße
Viennamade
Ja also ich habe es so:
Spalte 1 | Spalte 2 | Spalte 3
1 | 0 | 2
Jetzt möchte ich dass er mir "Spalte 1" ausgibt, wenn ich nach "1" Suche und wenn ich nach "2" suche sollte er "Spalte 3" ausgeben
Ja also ich habe es so:
Spalte 1 | Spalte 2 | Spalte 3
1 | 0 | 2Jetzt möchte ich dass er mir "Spalte 1" ausgibt, wenn ich nach "1" Suche und wenn ich nach "2" suche sollte er "Spalte 3" ausgeben
Hallo,
sorry, aber ich verstehe nicht ganz, ist in deinem Resultset nur ein Datensatz drinnen, oder sind mehrere Datensätze drinnen?
Gruß
Viennamade
Spalte 1 | Spalte 2 | Spalte 3
1 | 0 | 2
Genau so sieht die Struktur aus. Ein Datensatz. Mehrere Spalten und eine Reihe...
Spalte 1 | Spalte 2 | Spalte 3
1 | 0 | 2Genau so sieht die Struktur aus. Ein Datensatz. Mehrere Spalten und eine Reihe...
Naja, ich denke, eine if/then/else-Abfrage bietet sich an:
Wenn Spalte 1 == 1
ergebnis = "Spalte 1"
wenn aber Spalte 2 == 1
ergebnis = "Spalte 2"
wenn aber Spalte 3 == 1
ergebnis = "Spalte 3"
ansonsten
ergebnis = "keine Spalte stimmt überein"
Ein syntaktisch korrektes Bespiel findet Du hier:
http://www.dynamicwebpages.de/php/control-structures.elseif.php
Gruß
Viennamade
Naja, ich denke, eine if/then/else-Abfrage bietet sich an:
Gut das hatte ich auch schon überlegt. Allerdings ist das bei vielen Spalten recht viel Arbeit. Ich war mir nicht sicher ob es dafür einen Befehl oder eine andere Möglichkeit gibt. Danke auf jeden Fall erstmal...
Naja, ich denke, eine if/then/else-Abfrage bietet sich an:
Gut das hatte ich auch schon überlegt. Allerdings ist das bei vielen Spalten recht viel Arbeit. Ich war mir nicht sicher ob es dafür einen Befehl oder eine andere Möglichkeit gibt. Danke auf jeden Fall erstmal...
Hallo,
OK, dann bietet sich mysql_fetch_row an, diese Funktion liefert Dir einen Datensatz als Array.
Die Zellen dieses Array kannst Du dann mit einer Schleife durchlaufen. Bei Übereinstimmung einer Array-Zelle mit dem gesuchten Wert soll die Schleife verlassen werden.
http://www.dynamicwebpages.de/php/function.mysql-fetch-row.php
http://www.dynamicwebpages.de/php/control-structures.do.while.php
Gruß
Viennamade
Hello Viennamade,
Ich habe einen Werte (z.b. 1) in irgendeiner Spalte meiner Datenbank. Nun möchte ich rausfinden in welcher dieser Wert ist...
Also erstens ein "SELECT * FROM xyz" und dann mit einer äußeren Schleife durch die Datensätze, mit einer inneren Schleife durch die Feldwerte.
Aber für diese Schleifen ist doch die Datenbank zuständig. Wieso sollte Peter sich die ganzen Daten redundant ins PHP holen, wenn er doch nur den Datansatz (oder sogar nur dessn ID) benötigt, in dem der gesuchte Wert steckt?
Select ID, $concatlist from $table where LIST like '%$wert%';
Ist der gesuchte Wert ein String:
$fields = Liste aller Stringfelder der Tabelle
$concatlist = "concat($fields) as LIST"
Ist der gesuchte Wert ein Numeric:
$_fields = array der Namen der numerischen Felder
$fields = implode(",",$_fields);
Select ID, $fields from $table where
$_fields[0] = '$wert' or
$_fields[1] = '$wert' or
$_fields[2] = '$wert' or
...
So ungefähr müsste man das finden
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom!
Ich habe einen Werte (z.b. 1) in irgendeiner Spalte meiner Datenbank. Nun möchte ich rausfinden in welcher dieser Wert ist...
Also erstens ein "SELECT * FROM xyz" und dann mit einer äußeren Schleife durch die Datensätze, mit einer inneren Schleife durch die Feldwerte.
Aber für diese Schleifen ist doch die Datenbank zuständig. Wieso sollte Peter sich die ganzen Daten redundant ins PHP holen,
... ... weil ich auch mal antworten wollte und ich durch Deine Verbesserung meiner Antwort doch noch was gelernt habe und diese Redundanzen künftig vermeide:-)
Danke
Viennamade
Hello Viennamade,
Aber für diese Schleifen ist doch die Datenbank zuständig. Wieso sollte Peter sich die ganzen Daten redundant ins PHP holen,
... ... weil ich auch mal antworten wollte und ich durch Deine Verbesserung meiner Antwort doch noch was gelernt habe und diese Redundanzen künftig vermeide:-)
Yo, das ist ja hier auch so gedacht, dass man seine Ideen äussert und Andere dazu auch noch was schreiben und nachher entsteht ein Gesamtkunstwerk. Übrigens ist es für den Fragesteller manchmal wirklich wertvoller, auch andere Denkschritte zu erfahren, die durchaus schon einen Lösungsweg zeigen, aber nicht unbedingt optimal sind. Mich hat das dann schon oft davor bewahrt, es doch noch auf die andere Weise zu versuchen.
Ich hoffe, Du nimmst mir meinen Einwand dann auch nicht übel? ;-)
Liebe Grüße aus http://www.braunschweig.de
Tom