EuroCent
Klappstuhl 2.0
Hallo zusammen,
also langsam hab Ich den verdacht, dass Ich vergesslich oder zu Blöde beim Suchen bin.
Also Ich habe folgendes vor:
Über ein Script lass ich mir Daten via JSON erstellen.
Diese sollen dann so gesplittet werden, das Ich daraus eine SQL Abfrage genieren kann.
Um euch auch zu Zeigen wie mein JSON aussieht:
Aktuell lese Ich es mir so aus:
Aussage von ECHO:
Per DEBUGGING:
Wie man erkennt, werden nur die 2ten Werte ausgegeben, nicht wie bei der ECHO - Variante, alle...
Nun Ich möchte eine SQL Abfrage damit aufbauen und die Werte die mehrfach vorkommen, müssen in der Abfrage auch mehrfach erscheinen.
Kommen nur einzelne Werte... dann logisch sollen nur die Werte auch einmal als SQL erstellt sein/werden
Beispiel SQL bei mehrfach werten:
Kann mir hier einer sagen ob es zu Umständlich ist, wie Ich es vor habe?
Falls zu Umständlich, wie kann Ich es einfacher Gestalten?
Vielen Dank
also langsam hab Ich den verdacht, dass Ich vergesslich oder zu Blöde beim Suchen bin.

Also Ich habe folgendes vor:
Über ein Script lass ich mir Daten via JSON erstellen.
Diese sollen dann so gesplittet werden, das Ich daraus eine SQL Abfrage genieren kann.
Um euch auch zu Zeigen wie mein JSON aussieht:
JSON:
[{"perMail":"0","reporttype":"Excel","perFTP":"0","perCSV":"0","datas":[{"feld_name":"feldWertA"},{"feld_name":"feldWertB"},{"von":"Email1"},{"von":"Email2"},{"an":"Email1"},{"an":"Email2"},{"cc":"Email1"},{"cc":"Email2"},{"bcc":"Email1"},{"bcc":"Email2"},{"replyto":"Email1"},{"replyto":"Email2"},{"Intervalldays":"montag"},{"intervall":"3"},{"start":"10"},{"show_from":"12.11.2018"},{"show_to":"01.01.2050"},{"csvSeparator":"pipeline"},{"mfid":"ZAHL"}]}]
Aktuell lese Ich es mir so aus:
PHP:
<?php
$excelData = $_POST['arrValue'];
$jsonData = json_decode($excelData);
$excelDatas = $jsonData['0']->datas;
$dataCount = count($excelDatas);
$werte_aus_array = array();
for($i = 0; $i < $dataCount; $i++) {
foreach($excelDatas[$i] as $key => $value) {
echo "{$key} => {$value}\r\n<br />";
$werte_aus_array[$key] = [$key => $value];
}
}
$werte_aus_array['mail'] = $jsonData['0']->perMail;
$werte_aus_array['reporting'] = $jsonData['0']->reporttype;
$werte_aus_array['ftp'] = $jsonData['0']->perFTP;
$werte_aus_array['csv'] = $jsonData['0']->perCSV;
printf('<pre>%s</pre>', print_r($werte_aus_array, true));
?>
Aussage von ECHO:
Code:
feld_name => Feld1
feld_name => Feld2
von => Email1
von => Email2
an => Email1
an => Email2
cc => Email1
cc => Email2
bcc => Email1
bcc => Email2
replyto => Email1
replyto => Email2
Intervalldays => montag
intervall => 3
start => 10
show_from => 12.11.2018
show_to => 01.01.2050
csvSeparator => pipeline
mfid => ZAHL
Per DEBUGGING:
Code:
Array
(
[feld_name] => Array
(
[0] => Feld2
)
[von] => Array
(
[0] => Email2
)
[an] => Array
(
[0] => Email2
)
[cc] => Array
(
[0] => Email2
)
[bcc] => Array
(
[0] => Email2
)
[replyto] => Array
(
[0] => Email2
)
[Intervalldays] => Array
(
[0] => montag
)
[intervall] => Array
(
[0] => 3
)
[start] => Array
(
[0] => 10
)
[show_from] => Array
(
[0] => 12.11.2018
)
[show_to] => Array
(
[0] => 01.01.2050
)
[csvSeparator] => Array
(
[0] => pipeline
)
[mfid] => Array
(
[0] => ZAHL
)
[mail] => 0
[reporting] => Excel
[ftp] => 0
[csv] => 0
)
Wie man erkennt, werden nur die 2ten Werte ausgegeben, nicht wie bei der ECHO - Variante, alle...
Nun Ich möchte eine SQL Abfrage damit aufbauen und die Werte die mehrfach vorkommen, müssen in der Abfrage auch mehrfach erscheinen.
Kommen nur einzelne Werte... dann logisch sollen nur die Werte auch einmal als SQL erstellt sein/werden
Beispiel SQL bei mehrfach werten:
SQL:
SELECT
[mf_id] as id,
[Feld1].[feld_wert] as Feld1,
[Feld2].[feld_wert] as Feld2,
[Feld1].[feld_wert] as Feld1,
[Feld2].[feld_wert] as Feld2,
[Feld1].[feld_wert] as Feld1,
[Feld2].[feld_wert] as Feld2,
[Feld1].[feld_wert] as Feld1,
[Feld2].[feld_wert] as Feld2,
etc...
FROM
[TABELLE_X] x
left join [TABELLE_Y] Feld1 on [x].[id] = Feld1.[id] AND Feld1.[feld_name] = 'Feldwert1'
left join [TABELLE_Y] Feld2 on [x].[id] = Feld2.[id] AND Feld2.[feld_name] = 'Feldwert2'
left join [TABELLE_Y] Feld1 on [x].[id] = Feld1.[id] AND Feld1.[feld_name] = 'Feldwert1'
left join [TABELLE_Y] Feld2 on [x].[id] = Feld2.[id] AND Feld2.[feld_name] = 'Feldwert2'
left join [TABELLE_Y] Feld1 on [x].[id] = Feld1.[id] AND Feld1.[feld_name] = 'Feldwert1'
left join [TABELLE_Y] Feld2 on [x].[id] = Feld2.[id] AND Feld2.[feld_name] = 'Feldwert2'
left join [TABELLE_Y] Email1 on [x].[id] = Email1.[id] AND Email1.[feld_name] = 'Email1'
left join [TABELLE_Y] Email2 on [x].[id] = Email2.[id] AND Email2.[feld_name] = 'Email2'
left join [TABELLE_Y] Email1 on [x].[id] = Email1.[id] AND Email1.[feld_name] = 'Email1'
left join [TABELLE_Y] Email2 on [x].[id] = Email2.[id] AND Email2.[feld_name] = 'Email2'
left join [TABELLE_Y] Email1 on [x].[id] = Email1.[id] AND Email1.[feld_name] = 'Email1'
left join [TABELLE_Y] Email2 on [x].[id] = Email2.[id] AND Email2.[feld_name] = 'Email2'
etc...
WHERE
DATEPART(WEEK, [versand_datum]) = DATEPART(WEEK, GETDATE() - 7)
and
DATEPART(YEAR, [versand_datum]) = DATEPART(YEAR, GETDATE())
and
[x].[id] = ZAHL
ORDER BY
versanddatum
Kann mir hier einer sagen ob es zu Umständlich ist, wie Ich es vor habe?
Falls zu Umständlich, wie kann Ich es einfacher Gestalten?
Vielen Dank
