[MySQL] auswahl

mrtom

Well-known member
ID: 12439
L
31 Mai 2006
97
0
hallo,

will im moment gerade per mysql ne datenbank für kundenkontakte anlegen. nun eine frage dazu.
ich habe kunden, die entweder bereits kunden sind, oder nur potenzialkunden sind.
ich möchte bei einer auflistung eines kundens mit adresse etc. neben seiner anschrift ein jpg anzeigen lassen mit kunde.jpg für kunde oder potenzial.jpg für potenzielle Kunden, damit dies grafisch schnell ersichtlich ist.
Nun habe ich in meiner Tabelle z.b. Kundennummer, Anschrift etc. wollte nun ein Feld hinzufügen mit einer Nummer z.b. Integer .
Wenn diese 1 ist = Kunde und wenn 2= Potenzial. ist das so möglich, dass das Script abfragt und wenn 1= kunde.jpg anzeigt ansonsten bei 2=potenzial.jpg???

Wisst ihr wie ich das meine?
Oder ist es besser mit 2 Feldern . Einmal Feld Nr1 "Kunde" wo ja oder nein (J/N) drinsteht ...
 
hallo,[...]
Wisst ihr wie ich das meine?
Oder ist es besser mit 2 Feldern . Einmal Feld Nr1 "Kunde" wo ja oder nein (J/N) drinsteht ...

Hallo,

du könntest entweder:
:arrow: Ein Statusfeld (int) setzen und in der Schleife beim Ausgeben der Daten dann das entsprechende Bild
:arrow: Ein Statusfeld (int) setzen und in einer anderen Tabelle die dazupassenden Grafiken z.B. per INNER JOIN auslesen.
:arrow: Ein Feld mit dem Grafiknamen setzen und diese ausgeben (nicht empfohlen)

Physiklernende Grüße :p

Johnson
 
Huhu,
deine Überlegung ist richtig. Du lagst ein Feld an in dem du einen Wert hinterlegst.

Wenn du sicher bist, dass es bei den beiden Werten Kunde bzw. potentieller Kunde bleibt, dann kannst du das Feld auch vom Typ boolean machen. Also kunde = true, bzw. kunde = false für die potentiellen Kunden.

Wenn vielleicht später noch etwas dazu kommt, z.B. potentieller Kunde, Kunde und Premium-Kunde, dann ist deine Idee mit Integer schon genau richtig. Du könntest statt Integer auch den Datentyp enum nehmen. Eine Enumeration ist eine Aufzählung. Es sind dann also nur vordefinierte Werte in einem solchen Feld erlaubt.

Gruß, Zera
 
:arrow: Ein Statusfeld (int) setzen und in der Schleife beim Ausgeben der Daten dann das entsprechende Bild
:arrow: Ein Statusfeld (int) setzen und in einer anderen Tabelle die dazupassenden Grafiken z.B. per INNER JOIN auslesen.

Eine kleine Anmerkung dazu: Ich würde bei deinem Fall zur ersten Möglichkeit raten. Der Vorteil die Grafiken in der Datenbank zu speichern ist natürlich, dass du sie dort ändern kannst. Aber da in deinem Anwensungsfall die Grafiken wohl nicht häufig oder garnicht geändert werden wäre es nur eine zusätzliche Belastung der Datenbank durch den Join. Also mach die Fallunterscheidung lieber direkt im Code.

Gruß, Zera
 
Eine kleine Anmerkung dazu: Ich würde bei deinem Fall zur ersten Möglichkeit raten. Der Vorteil die Grafiken in der Datenbank zu speichern ist natürlich, dass du sie dort ändern kannst. Aber da in deinem Anwensungsfall die Grafiken wohl nicht häufig oder garnicht geändert werden wäre es nur eine zusätzliche Belastung der Datenbank durch den Join. Also mach die Fallunterscheidung lieber direkt im Code.

Da muss ich dir voll und ganz zustimmen - bei dem geschilederten Fall kommt wohl keine häufige Änderung. Vielleicht könnte man die 1. Möglichkeit dann noch mit dem Spaltentyp 'enum' ergänzen (thx, wäre ich selber gerade nicht draufgekommen).

Gruß
 
danke für die schnellen antworten auf meine noobie-frage ;) (werden sicher noch ein paar kommen)


Huhu,
Wenn vielleicht später noch etwas dazu kommt, z.B. potentieller Kunde, Kunde und Premium-Kunde, dann ist deine Idee mit Integer schon genau richtig.

werde es wohl so machen. muss die grafiken ja nicht in der db abspeichern. reicht ja wenn der wert drin ist und ich per if - abfrage zum wert passende bilddatei ausgebe (auch wenn ich noch nicht weiß wie die if-abfrage aussehen wird)
 
Ich weise dich nur ungern auf die Regeln hin:
Syntax für Thread-Titel einhalten, passenden Titel formulieren
Keine "???" oder "!!!" im Titel. Der Titel muss passend formuliert sein, also nicht "Hilfe ich hab ein Problem!". Verstoß kann mit Close geahnded werden !
Beim Erstellen eines Threads muss in eckigen Klammern die Sprache, in der das Problem vorkommt, im Titel angegeben werden. Bei allgemeinen Fragen entfällt dies natürlich.

Verwenden der Code-Tags
Wer Code postet, muss die entsprechenden vB-Codes
Code:
, [html] und [php] verwenden. Das vermeidet nicht nur ewiglanges Scrollen, sondern macht anderen Usern das Lesen leichter (Syntaxhighlighting).

Des Weiteren möchte ich auf die [URL="https://www.klamm.de/forum/misc.php?do=bbcode#php"]Info in der Forum-FAQ[/URL] hinweisen:
Das [php]-Tag kann [I][B]und soll[/B][/I] bitte auch für andere Sprachen, wie z.B. C, C++, Java und JavaScript verwendet werden.

[B]Genaue Problembeschreibung[/B]
Wenn man ein Problem hat, bitte eine genaue Beschreibung posten, was man vor hat. Zusätzlich dazu, was man schon alles ausprobiert hat und auftretende Fehlermeldungen. Bei Problemen mit MySQL-Queries bitte den Query-String und die Ausgabe von [URL="https://de.php.net/mysql_error"]mysql_error()[/URL] im Thread posten. Diese Regel trägt dazu bei, ein Problem schneller zu lösen.
Wir Moderatoren behalten uns das Recht vor, Postings ohne gesonderten Hinweis zu bearbeiten und an die [B]Regeln[/B] anzupassen.[/QUOTE]
 
würde bei solchen fällen definitiv zu enum greifen, jedenfalls solang ich weiß es kommt nix dazu. wenn man weiß dass sich die auswahl in gerraumer zeit erweitern kann ist man klug beraten man legt für den status ne extra tabelle an und joint diese wie johnson schon vorgeschlagen hat... das hat einfach den vorteil man muss am ende nicht an 58 stellen was ändern. sondern legt einfach nen neuen datensatz an... ist einfacher, schneller und weniger fehler anfällig. (was passiert wenn man irgendwo vergisst das zu ändern :roll:)

Ich weise dich nur ungern auf die Regeln hin:
und was interessiert uns das? schon mal was von pm gehört? :ugly: oder da gibts auch so nen link wie beitrag melden.