Hallo zusammen,
ich habe ein Formular mit 3 select-Feldern. Monat, Kunde und Mitarbeiter.
Bisher war es so, dass wenn zB Kunde =0 war, keine Datensätze gewählt wurden. So, nun kann es aber Sinn machen, dass man zB vom Mitarbeiter alle Tätigkeiten haben möchte, zB im Mai 2021 oder aber auch den gesamten Dtaenbestand der letzten 3 Jahre.
Was ich also bräuchte, ist sowas wie
Ich hatte gesehen, dass es so was ähnliches mit case gibt, aber das war nur für die Ergebnisse. Also was weiß ich case monat=10 jahrezeit = Herbst.
Es sind also 3 select Felder, Kunde, Monat, Mitarbeiter.Diese werden per POST ans Formular geschickt. Nun kann ich natürlich auch das Ganze mit php lösen und sagen,
ABer das muss doch eleganter gehen.
Any idea?
mfG
tsunami
ich habe ein Formular mit 3 select-Feldern. Monat, Kunde und Mitarbeiter.
PHP-Code:
select taetigkeiten.*,taetigkeiten.id as tid, mitarbeiter.kuerzel,mitarbeiter.ausbildung,mitarbeiter.name as mitarbeiter,kunden.*,kunden.id as kid, infoarten.name as infoart
from infoarten,taetigkeiten,mitarbeiter,kunden
where taetigkeiten.kunde=%s
and taetigkeiten.ausfuehrender=%s
and taetigkeiten.ausfuehrender=mitarbeiter.id
and infoarten.id=taetigkeiten.informationsart_id
and taetigkeiten.kunde=kunden.id
and datum like '%s%%' order by datum
Was ich also bräuchte, ist sowas wie
PHP-Code:
select taetigkeiten.*,taetigkeiten.id as tid, mitarbeiter.kuerzel,mitarbeiter.ausbildung,mitarbeiter.name as mitarbeiter,kunden.*,kunden.id as kid, infoarten.name as infoart
from infoarten,taetigkeiten,mitarbeiter,kunden
where if(kunde==0;mache nichts;ansonsten kunde == 4)
and if(taetigkeiten.ausfuehrender==0;mache nichts;ansonsten taetigkeiten.ausfuehrender==21
and infoarten.id=taetigkeiten.informationsart_id
and taetigkeiten.kunde=kunden.id
and if(datum==0;mache nichts; ansonsten datum like '2021-05%' order by datum
-- phpMyAdmin SQL Dump
-- version 4.9.0.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Erstellungszeit: 14. Mrz 2022 um 10:40
-- Server-Version: 10.3.16-MariaDB
-- PHP-Version: 7.2.20
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `dok-o`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `taetigkeitendemo`
--
CREATE TABLE `taetigkeitendemo` (
`id` int(11) NOT NULL,
`datum` datetime NOT NULL,
`kunde` int(5) NOT NULL,
`ausfuehrender` int(11) NOT NULL,
`prioritaet` int(1) NOT NULL,
`informationsart_id` int(1) NOT NULL,
`beschreibung` text COLLATE latin1_german1_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `taetigkeitendemo`
--
ALTER TABLE `taetigkeitendemo`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `taetigkeitendemo`
--
ALTER TABLE `taetigkeitendemo`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-- version 4.9.0.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Erstellungszeit: 14. Mrz 2022 um 10:40
-- Server-Version: 10.3.16-MariaDB
-- PHP-Version: 7.2.20
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `dok-o`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `taetigkeitendemo`
--
CREATE TABLE `taetigkeitendemo` (
`id` int(11) NOT NULL,
`datum` datetime NOT NULL,
`kunde` int(5) NOT NULL,
`ausfuehrender` int(11) NOT NULL,
`prioritaet` int(1) NOT NULL,
`informationsart_id` int(1) NOT NULL,
`beschreibung` text COLLATE latin1_german1_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `taetigkeitendemo`
--
ALTER TABLE `taetigkeitendemo`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `taetigkeitendemo`
--
ALTER TABLE `taetigkeitendemo`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
PHP-Code:
if($($kunde_id=0) and $datum==0 and $mitarbeiter==0){ $sql=...)
if($($kunde_id!=0) and $datum==0 and $mitarbeiter==0){ $sql=...)
if($($kunde_id=0) and $datum!=0 and $mitarbeiter==0){ $sql=...)
if($($kunde_id!=0) and $datum==0 and $mitarbeiter==0){ $sql=...)
...
Any idea?
mfG
tsunami
Kommentar