Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Hihi :) mit php eine txt und sql abfrage basteln

Mitglied: dax4fun

dax4fun (Level 1) - Jetzt verbinden

02.10.2014, aktualisiert 11.10.2014, 1274 Aufrufe, 7 Kommentare

Hi Folks,

ich will mir die Arbeit ein wenig erleichtern (versuche es zumindest)

soo die Frage :

nehmen wir an es gibt 10 Mitarbeiter die verschieden schnell sind beim Akten abarbeiten m1 m2 m3 ... m10 und die geben jeden Tag an wieviele Akten sie abgearbeitet haben.

das schaut dann in der mysqldb so aus für m1

01.
mitarbeiter,datum,spalte3, spalte4  
02.
1,2014-10-01,123,456 
03.
1,2014-10-02,224,557 
04.
1,2014-10-03,333,357
monat für monat

doch zur Zeit der Grippewelle gehen manche in den Krankenstand und lassen die Akten im Luftfall zurück

dann schaut das so aus bei Bsp. m1 alias 1
01.
table: mitarbeiter 
02.
1,2014-10-01,123,456 
03.
1,2014-10-02,224,557 
04.
1,2014-10-04,123,456 
05.
1,2014-10-05,224,557 
06.
1,2014-10-06,333,357
wo ist der Eintrag für 2014-10-03???

ich habe jetzt eine m.txt Datei wo drinen (untereinander) m1 m2 m3 (also die aktiven Mitarbeiter ) stehen und selecte in mitarbeiter wo m1 und datum 2014-10-01, 2014-10-02 03 04 05 06 usw.
will diese Arbeit per php abhacken welches mir die Datumslücken anzeigt
also suche in m.txt m1 raus dann schau in mysql ob m1 von datum 1 bis 31 jeden Tag aktiv ist und dann weiter zu m2, also alle die in der txt vorhanden sind

ich hoffe ich habe es ein bischen spannender gemacht da das auch verständlicher ist

Danke euch

Grüße dax



Mitglied: Arano
03.10.2014 um 17:12 Uhr
hallo dax
habe die re hand gerade in einer gipsschiene, was das tippen nicht einfacher macht

ja, ich würde es genau so machen !
das war doch die frage oder ? denn eine andere konnte ich nicht herauslesen.


~arano
Bitte warten ..
Mitglied: dax4fun
04.10.2014, aktualisiert um 14:54 Uhr
hi, @Arano

was ist denn passiert ???

eigendlich was ich brauche/suche ist ein in php :
suche in m.txt m1 (erster eintrag) raus dann schau in mysql ob m1 von datum 1 bis 31 vorhanden wenn nicht anzeigen und dann weiter zu m2, also alle die in der txt vorhanden sind.

ich hab es für für einen Tag geschaft/gebastelt aber kann es nicht für mehrene Tage anwenden
was ich jetzt habe ist dieses:
01.
$gestern=date("Y-m-d", time()-86400);  
02.
$aktive_mitarbeiter = array(); 
03.
mysql_connect($_db_host, $_db_username, $_db_passwort); 
04.
mysql_select_db($_db_datenbank); 
05.
 
06.
 $sql = "SELECT mitarbeiter FROM mitarbeiter_tbl WHERE mitarbeiter like '$mtxt%' and DATUM LIKE '$gestern%' ORDER BY mitarbeiter"; 
07.
 
08.
$result = mysql_query($sql) or die(mysql_error());; 
09.
 
10.
$file = fopen("m.txt", "r"); 
11.
while(!feof($file)){ 
12.
    $mtxt = fgets($file); 
13.
	$aktive_mitarbeiter[] = trim($shoptxt); 
14.
15.
 
16.
while($row = mysql_fetch_array($result)) { 
17.
 
18.
if (in_array($row[0], $aktive_mitarbeiter)) { 
19.
	//echo "Eintrag Vorhanden " . $row[0] . "<br />"; 
20.
} else { 
21.
	echo "Eintrag nicht Vorhanden " . $row[0] . "<br />"; 
22.
23.
 
24.
25.
 
26.
 
27.
fclose($file); 
28.
 
29.
?>
Das Funkt aber halt nur für gestern wie kann ich es auf einen Monat ausdehnen ???
Bitte warten ..
Mitglied: Arano
06.10.2014 um 12:50 Uhr
Moin moin!

Tja,,, ich habe mir im lager die rechte hand gequetscht.
auch wenn die filmreihe etwas anderes darstellt - den kampf: mensch gegen maschine, verliert der mensch.
stahl ist einfach härter als knochen.
wird aber wieder !


So.
um den ganzen monat zu erhalten brauchst du bloß das datum auf den monat reduzieren.
aus '2014-10-06'
wird '2014-10' und
dann warst du mit deinem query schon auf dem richtigen weg. also das SELECT ... LIKE '2014-10%'.
darüber bekämst du dann alle einträge deren datum mit '2014-10' beginnt und das wären alle des passenden monats.
lediglich das datum musst du auch auslesen, sonst kannst du hinterher nicht mehr erkennen welche tage dabei waren und welche nicht.

natürlich wäre daduch die auswertung aufwendiger geworden. denn nun muss nicht nur geprüft werden ob der mitarbeiter dabei war, sondern auch ob alle tage dabei sind.
die tage die dann fehlen schieben wir samt namen in ein array und "spucken" es am ende einfach auf das display.

du hast schon ein wenig glück das ich die kaputte hand habe, denn ich kann kaum etwas anderes mache so das ich mir die zeit irgendwie vertreiben muss ...laaangweilig... und dabei kommt dann sowas herraus.
allerdings habe ich das nur getippt, mit einer hand und mit links !


~Arano


01.
<?php 
02.
 
03.
 
04.
$strDateYM = date("Y-m"); //   =   '2014-10' 
05.
 
06.
 
07.
/* DATEN ERMITTELN *
08.
/* mysql *
09.
 
10.
$strQuerySelectAllThisMonth = "SELECT `mitarbeitername`,`datumdeseintrags` 
11.
                                 FROM `mitarbeiter_tbl` 
12.
                                WHERE `datumdeseintrags` LIKE '".$strDateYM."%' 
13.
                             ORDER BY `mitarbeitername` ASC, 
14.
                                      `datumdeseintrags` ASC"; 
15.
$myretAllThisMonth = mysql_query( $strQuerySelectAllThisMonth ); 
16.
// ...vernünftige fehlerbehandlung... 
17.
 
18.
 
19.
/* file / mitarbeiterliste *
20.
 
21.
$arrMAs = file('m.txt'); //   =  array('ma1','ma2','ma3', ...) 
22.
// ...vernünftige fehlerbehandlung... 
23.
 
24.
 
25.
 
26.
 
27.
/* DATEN AUFBEREITEN *
28.
 
29.
// data array initzialisieren 
30.
$arrData = array(); 
31.
foreach( $arrMAs as $strMa
32.
    $arrData[$strMa] = array(); 
33.
    // z.B $arrData = array
34.
    //                       'ma1' => array(), 
35.
    //                       'ma2' => array() 
36.
    //                      ); 
37.
 
38.
// db daten in data array 
39.
while( $arrDbData=mysql_fetch_assoc($myretAllThisMonth) ) 
40.
    $arrData[$arrDbData['mitarbeitername']][] = $arrDbData['datumdeseintrags']; 
41.
    // z.B $arrData = array
42.
    //                       'ma1' => array(0=>'2014-10-01',1=>'2014-10-02',2=>'2014-10-03',3=>'2014-10-05', 4=>... ),   // beachte das der 04. fehlt ! 
43.
    //                       'ma2' => array(0=>'2014-10-01',1=>'2014-10-02',2=>'2014-10-03',3=>'2014-10-04', 4=>... )    // hier ist alles okay 
44.
    //                      ); 
45.
 
46.
// leeres fehlen array 
47.
$arrNotExist = array(); // leeres array bedeutet das keine "fehler" gefundwen wurden bzw. die db ist vollständig. 
48.
 
49.
 
50.
 
51.
 
52.
/* DATEN AUSWERTEN *
53.
 
54.
// prüfe für jeden MA... 
55.
foreach( $arrMAs as $strMa
56.
57.
    // ...jedes datum   ACHTUNG ACHTUNG: wochenende, urlaub, krank, feiertage, sozialtage, "andereaufgaben", monatsende30/31, februar/28, schaltjahre, ...... 
58.
    // ...jedes datum   ACHTUNG ACHTUNG: wochenende, urlaub, krank, feiertage, sozialtage, "andereaufgaben", monatsende30/31, februar/28, schaltjahre, ...... 
59.
    for( $intDay=1; $intDay<=31; $intDay++ ) 
60.
61.
        // einstellig zu zweistellig (1=>01  /  int zu str) 
62.
        $strDay = $intDay<10 ? '0'.$intDay : $intDay
63.
        if( !in_array($strDateYM.'-'.$strDay,$arrData[$strMa]) ) 
64.
65.
            // dieses datum fehlt in der liste des mitarbeiters 
66.
            $arrNotExist[] = $strMa.' - '.$strDateYM.'-'.$strDay
67.
68.
69.
70.
 
71.
 
72.
 
73.
 
74.
/* DATEN AUSGEBEN *
75.
 
76.
if( !empty($arrNotExist) ) 
77.
78.
    echo 'F&uuml; die folgenden Einträge wurden keine Daten in der Datenbank gefunden !'
79.
    foreach( $arrNotExist as $strMaAm
80.
        echo $strMaAm.'<br>';   //   =   "name - datum<br>" 
81.
82.
else 
83.
84.
    echo 'Alles ist sauber.'
85.
86.
 
87.
 
88.
?>
Bitte warten ..
Mitglied: dax4fun
11.10.2014, aktualisiert um 15:54 Uhr
hi , @Arano

Danke für deine Super Arbeit und deine echt ordentlich vorbildliche Art

sag erst mal wie gehts deiner Hand??? Den Terminator Satz fand ich Super

zu dem php irgendwo schleicht sich ein Leerzeichen rein beim Array ausgabe mit var dump
01.
 "556009 " [1]=> string(7) "556011 " [2]=> string(7) "556014 " [3]=>
ist das Leerzeichen der Grund ? oder kann es sein, weil die Mitarbeiter eigentlich '555123','555456','555146' heißen und nicht ma1 ma2 st??

wie ich das php von mir gebastelt hab funktionierte die Auswertung erst nach dem einbauen
01.
$aktive_mitarbeiter[] = trim($shoptxt);
Mit freundlichen Grüßen
dax
ps: hatte einen Fehlalarm, meine Frau hat in 2 Tagen Geburtstermin, mit Schlafen ist da nichts
Bitte warten ..
Mitglied: Arano
LÖSUNG 11.10.2014, aktualisiert um 17:08 Uhr
Hallo,

Danke! Danke!
Joar, ansich geht es meiner Hand ganz gut, die Ärztin ist mit dem Heilungsprozess mehr als zufrieden. Wie du siehst kann ich auch schon wieder Tippen bzw. ich bin die Gipsschine für die ganze Hand los. Habe jetzt nur noch eine am Finger Wiki-Stacksche-Schine (allerdings nicht wegen der Sehne sondern wegen der Nagelkranzfrakturen (und was anderem))
Den Terminator Satz fand ich Super face-smile
"I'll be BACK !" wird dann mein erster Satz wenn ich wieder auf der Arbeit bin *gg*

Ich fang mal "hinten" an.
Das die Mitarbeiter unterm Strich "nur anders heißen" sollte keine Rolle spielen.
Ich nehme mal an das du mit var_dump() die Variabel $arrMAs ausgegeben hast !?
Nein, das Leerzeichen hat keine Funktion bzw. es sollte gar nicht da sein !

Ich weiss aber auch schon wo es her kommt !
Wenn die MA-Datei mit der Funktion file() eingelesen wird, landet auch der Zeilenumbruch in dem Array-Element (\n | \r\n | \r Linux | Windows | Mac).
Aber das können wir mit dem entsprechendem Flag unterbinden.
01.
$arrMAs = file( 'm.txt',  FILE_IGNORE_NEW_LINES  ); //   =  array('ma1','ma2','ma3', ...) 
Das entspricht dann quasi dem trim() das du verwendet hattest.


Hey, dann wird das bei euch in den nächsten Tagen ja richtig schön, freue mich für Euch !


Wünsche euch ein schönes Wochenende
~Arano
Bitte warten ..
Mitglied: dax4fun
11.10.2014 um 17:16 Uhr
jep und jep und jep

es war das Leerzeichen

Danke *juhuuu* und eine gute Genesung
Bitte warten ..
Mitglied: Arano
11.10.2014 um 17:23 Uhr

Das freut mich puhh... keine weiteren versteckten Fehler

Danke!
Möge euer "Wurm" gesund und munter sein, alles Gute !


~Arano
Bitte warten ..
Ähnliche Inhalte
PHP
Mit PHP SQL Array Abfrage
gelöst Frage von gamerffPHP3 Kommentare

Hallo Forum, ich bin grade an einem Projekt dran ein Telefonbuch mit Mysql, PHP und HTMl zu erstellen. Ich ...

PHP
PHP Dropdownmenü mit SQL-Abfrage
gelöst Frage von tobmesPHP4 Kommentare

Hi Experten, ich glaube mein Titel ist etwas verwirrend, aber mir fällt gerade nichts besseres ein :) Also hier ...

PHP

SQL Abfrage - PHP Ausgabe ständig zentriert

gelöst Frage von kooninPHP1 Kommentar

Hallo liebe Gemeinde, ich habe folgendes SQL Query für die Abfrage unserer Softwarelösung. In meinen Ausgabetabellen, habe ich aber ...

PHP

Abfrage SQL

gelöst Frage von dudeldoedelPHP3 Kommentare

Hallo zusammen, kann man das in einer SQL Abfrage erreichen ??? Feldwert lautet: {"565":{"textinput":{"comment":"1400"}}} als Ergebnis soll ausgelesen werden ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...