Kompliziertes MySQL-Problem

Tobisan

Grünschnabel
Hallo Profis

Ich habe folgende Tabelle:

ID
7polig ---> true/false
13polig "
Modell1 --->Text
Modell2 "
Modell3 "
Modell4 "
Modell5 "
Modell6 "

1.Problem:
Ich möchte entweder 7polig ODER 13polig angezeigt bekommen - je nachdem welcher true ist (immer nur einer von Beiden)

Ausserdem möchte ich, dass wenn true bzw. 1 zurückgegeben wird, ein x statt der 1 in die mit php generierte Tabelle eingesetzt wird!

Geht das?

2.Problem:
In den 6 Modell-Spalten können verschiedene Artikel sein oder auch gar keine. Ich möchte, dass nur die Felder ausgelesen werden, die mit $artikel (z.B. BMW) übereinstimmen! Wenn z.B. in Modell1 BMW und in Modell2 VW steht, dann nur Modell1 und die restlichen nicht (die leeren ja sowieso nicht!)

Das mit der Übereinstimmung bekomme ich ja mit LIKE hin, aber wie kann ich selektieren welche NICHT angezeigt werden sollen?

3.Problen:
Wenn Blinküberwachung true ist soll ein x, wenn false ein "-" in die Tabelle!

Kann man das mit einer Art Array machen, der dann nur die "Korrekten" Variablen in die SELECT-Abfrage reinpackt? Oder irgenwie mit Schleifen oder if/else oder foreach oder oder oder


Kennt sich da jemand mit aus

Gruss

Tobisan
 
Hallo,

Zu Problem 1:
-je nachdem für welchen Datentyp du dich in deinem DB-Design entschieden hast mußt du auch den weiteren Verlauf beachten - es ist meines erachtens nicht möglich und auch nicht sinnvoll verschiedene Datentypen auswerten und überschreiben (updaten) zu wollen.

Wenn du für 7 bzw. 13-polig dich für einen Zahlentyp (bsp. int 1/0 für true/false) entschieden hast mußt du auch dabei bleiben - sonst gibts kuddelmuddel in deiner DB.

Wenn Du versucht eine Zahl mit einem Satzzeichen zu ersetzen wird die DB streiken - das sollte sie auch.

Zu Problem 2:
- probier mal NOT LIKE "bmw"


LG
 
Hi

Zu1 und 3: ich möchte nichts in der DB überschreiben oder ändern - ich will, dass wenn der Rückgabewert 1 ist, ind der html Tabelle statt 1 ein x hingeschrieben wird.

(1 = true und 0 = false)

Zu2: verstehe nicht, was Du damit sagen willst - ich will ja gerade, dass die NOT LIKE ignoriert werden - also "übersprungen" werden...
 
Hallo

kleines Mißverständnis....
zu 1 und 3

CODE:

<php

if ($DeineTrueVariable == 1) {

$DeineEchoVariable = 'x';

}
else {

$DeineEchoVariable ='-';

};

echo '

<table>
<tr>
<td>'.$DeineEchoVariable.'</td>
</tr>
</table>';

?>

Ich hoffe das war deine Frage.

zu 2:
da versteh ich dein Problem nicht ganz, wenn du alle deine BMW's angezeigt bekommst erscheinen alle anderen wie VW's ect. doch sowieso nicht in deiner Ausgabe.

Vielleicht hab ich ja auch ein kleines Verständnisproblem.

LG
 
Hallo WyonKia

Erst mal danke für den 1. Teil ;-) das werde ich mal so ausprobieren...

Das Problem mit den Marken ist so:

| ID | Modell 1 | Modell 2 | Modell 3 | Artikel-Nr | etc...
-------------------------------------------------------------------------------------
| 1 | Audi A4 | BMW 1er | "leer" | 1234 |
-------------------------------------------------------------------------------------
| 2 | BMW 3er | BMW 5er | VW | 56589 |


Wenn ich z.B. den 1er BMW als Suchparameter wähle, muss ich ja erst mal alle Spalten von Modell 1 bis 3 durchsuchen lassen! Dann findet er sie in Modell 2 - so, nun will ich alle Infos aus der Zeile anzeigen, aber nicht (in diesem Fall) Modell 1 und Modell 3!

Mit MySQL weiss ich nicht wie da der SELECT Befehl aussieht oder ob das machbar ist... aber könnte man nicht die gesamte Abfrage in ein Array schreiben und dann mit array_filter die ungewünschten rauslöschen lassen und danach per echo den Rest in die Tabelle schreiben lassen?
 

Neue Beiträge

Zurück