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 PhP-Funktion zum Abrufen von Daten aus 2 Mysql-Tabellen

Mitglied: TheAlex

TheAlex (Level 1) - Jetzt verbinden

13.02.2018 um 16:16 Uhr, 330 Aufrufe, 6 Kommentare, 1 Danke

Halli Hallo Hallöle,

Ich habe 2 MySQL-Tabellen, eine in der die user abgelegt sind. Aus dieser möchte ich lediglich den Usernamen abrufen, um mit diesem dann aus einer 2 Tabelle andere werte abzurufen.

Allerdings bin ich mir nicht sicher wie ich dies am einfachsten lösen kann.


Mein bisheriger Code:

01.
<?php 
02.
 
03.
require_once('db_config.php'); 
04.
 
05.
class USERLIST 
06.
{	 
07.
 
08.
	private $conn; 
09.
	 
10.
	public function __construct() 
11.
12.
		$database = new Database(); 
13.
		$db = $database->dbConnection(); 
14.
		$this->conn = $db; 
15.
16.
	 
17.
	public function runQuery($sql) 
18.
19.
		$stmt = $this->conn->prepare($sql); 
20.
		return $stmt; 
21.
22.
	 
23.
	 
24.
	public function getUsernames() 
25.
26.
		try 
27.
28.
			$stmt = $this->conn->prepare("SELECT user_name FROM users"); 
29.
			$stmt->execute(); 
30.
			$userList=$stmt->fetchAll(); 
31.
			 
32.
				 
33.
			 
34.
35.
		catch(PDOException $e) 
36.
37.
			echo $e->getMessage(); 
38.
39.
40.
	 
41.
42.
?>
Danke für jede Mithilfe
Mitglied: wiesi200
13.02.2018 um 16:31 Uhr
Hallo,

sowas macht kein Mensch in der form. Sorry
Dafür gibt es innerhalb der Datenbank "JOIN".

Geht viel schneller und einfacher.
Bitte warten ..
Mitglied: TheAlex
14.02.2018, aktualisiert um 13:33 Uhr
danke für den tipp weisi, das ergebnis der funktion soll sein das am ende eine tabelle erzeugt werden soll die in der ersten spalte die nutzernamen ausgibt, und dahinter dann zwei spalten mit den wünschen der user(dienst bzw dienstfrei). wie genau müsste ich dann mit dem Join arbeiten?

Für die ausgabe benötige ich dann ein array das alle daten des Users enthällt.

Danke für eure mithilfe^^

//edit

Bis jetzt habe ich es so:

01.
	public function getUserDienst($mnum) 
02.
03.
		try 
04.
05.
						$stmt = $this->conn->prepare("SELECT mitarbeiter, cal_day FROM ma_wishes, users WHERE mitarbeiter=user_name AND cal_mon=:mnum AND ma_wish='Dienst' ORDER BY user_id"); 
06.
			$stmt->bindparam(":mnum", $mnum); 
07.
			$stmt->execute(); 
08.
			$list=$stmt->fetchall(); 
09.
			 
10.
			print_r ($list);	 
11.
			 
12.
13.
		catch(PDOException $e) 
14.
15.
			echo $e->getMessage(); 
16.
17.
	}
Allerdings bin ich gerade am überlegen wie ich den Usernamen als Index bekomme. Die Tabelle sollte am ende so aussehen:

Mitarbeiter | Dienst | Dienstfrei | Anzahl der Dienste |

Die ausgabe ist derzeit folgendermaßen:

01.
Array 
02.
03.
    [0] => Array 
04.
05.
            [user_name] => testuser 
06.
            [0] => testuser 
07.
            [cal_day] => 12 
08.
            [1] => 12 
09.
10.
 
11.
    [1] => Array 
12.
13.
            [user_name] => testuser 
14.
            [0] => testuser 
15.
            [cal_day] => 20 
16.
            [1] => 20 
17.
18.
 
19.
    [2] => Array 
20.
21.
            [user_name] => Administrator 
22.
            [0] => Administrator 
23.
            [cal_day] => 01 
24.
            [1] => 01 
25.
26.
 
27.
    [3] => Array 
28.
29.
            [user_name] => Administrator 
30.
            [0] => Administrator 
31.
            [cal_day] => 24 
32.
            [1] => 24 
33.
34.
 
35.
    [4] => Array 
36.
37.
            [user_name] => Administrator 
38.
            [0] => Administrator 
39.
            [cal_day] => 4 
40.
            [1] => 4 
41.
42.
 
43.
)
Wie bekomme ich jetzt alle cal_day in ein array zu dem Nutzer? Könnte mir eventuell array_merge helfen?
Bitte warten ..
Mitglied: ganymed
15.02.2018 um 15:58 Uhr
Ich glaube den Problem liegt im Verständnis von Relationalen Datenbanken und deren Abfrage.
Voraussetzung ist, dass deine Tabellen verknüpft werden können.

Deine Tabelle users muss mindestens folgende Spalten haben.
ID -> eindeutige einzigartige Zahl (Primärschlüssel)
mitarbeiter -> Name des Mitarbeiters

Deine Tabelle ma_wishes muss folgendermaßen aussehen
ID -> eindeutige einzigartige Zahl (Primärschlüssel)
MID -> ID des Mitarbeiters mit dem dieser Datensatz verknüpft ist (Fremdschlüssel)
cal_day ->Der Wert den du haben möchtest

In deiner SQL Abfrage werden die Tabellen dann verknüpft und das sieht dann so aus
SELECT users.mitarbeiter, ma_wishes.cal_day FROM users, ma_wishes WHERE users.ID = ma_wishes.MID AND ...{Deine Weiteren Einschänkungen}...;

Dabei ist users.ID = ma_wishes.MID die Verknüpfung der Tabellen.
Für Einsteiger ist das einfacher zu verstehen. Die Sache mit dem [INNER] JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN solltest du dir dann aber auch aneignen.

Gruß ganymed
Bitte warten ..
Mitglied: TheAlex
15.02.2018 um 20:52 Uhr
soweit schonmal danke, dann werde ich wohl das mit dem Fremdschlüssel mal in angriff nehmen! deine erklärung ist gut und verständlich. Danke dafür.

Bin einfach zu lange aus PHP raus als das ich mich noch so gut daran erinnern könnte! Da ich leider (sieht nicht jeder so) eher der Mensch bin der alles im Praktischem lernt anstatt stunden lang texte zu lesen die nur so vor Fachausdrücken und komplizoerten erklärungen strotzen

Sobald ich das gestestet habe, und es mir das Ergebnis liefert das ich brauche markiere ich deinen Beitrag auch mit dem Button "Zur Lösung beigetragen" als dankeschön
Bitte warten ..
Mitglied: TheAlex
15.02.2018, aktualisiert 17.02.2018
Ich bekomme jetzt folgende ausgabe:

01.
Array 
02.
03.
    [0] => Array 
04.
05.
            [mitarbeiter] => Administrator 
06.
            [0] => Administrator 
07.
            [cal_day] => 01 
08.
            [1] => 01 
09.
            [ma_wish] => Dienst 
10.
            [2] => Dienst 
11.
12.
 
13.
    [1] => Array 
14.
15.
            [mitarbeiter] => Administrator 
16.
            [0] => Administrator 
17.
            [cal_day] => 04 
18.
            [1] => 04 
19.
            [ma_wish] => Dienst 
20.
            [2] => Dienst 
21.
22.
 
23.
    [2] => Array 
24.
25.
            [mitarbeiter] => Administrator 
26.
            [0] => Administrator 
27.
            [cal_day] => 24 
28.
            [1] => 24 
29.
            [ma_wish] => Dienst 
30.
            [2] => Dienst 
31.
32.
 
33.
    [3] => Array 
34.
35.
            [mitarbeiter] => testuser 
36.
            [0] => testuser 
37.
            [cal_day] => 3 
38.
            [1] => 3 
39.
            [ma_wish] => Frei 
40.
            [2] => Frei 
41.
42.
 
43.
    [4] => Array 
44.
45.
            [mitarbeiter] => Administrator 
46.
            [0] => Administrator 
47.
            [cal_day] => 9 
48.
            [1] => 9 
49.
            [ma_wish] => Frei 
50.
            [2] => Frei 
51.
52.
 
53.
)
Wie bekomme ich jetzt die werte der User zusammen wenn der dienstwunsch identisch ist? So das ich am ende ein array habe?
Quasi :
01.
Array 
02.
03.
    [0] => Array 
04.
05.
            [mitarbeiter] => Administrator 
06.
            [dienst] => 9, 12, 15 
07.
            [frei] => 13, 19,  23 
08.
09.
    [1] => Array 
10.
11.
            [mitarbeiter] => testuser 
12.
            [dienst] => 12, 19, 25 
13.
            [frei] => 13, 20,  23 
14.
15.
)
Den Query habe ich jetzt folgendermaßen:
01.
$stmt = $this->conn->prepare("SELECT ma_wishes.mitarbeiter, ma_wishes.cal_day, ma_wishes.ma_wish FROM users, ma_wishes WHERE users.user_id = ma_wishes.mid AND ma_wishes.cal_mon=:mnum ORDER BY ma_wishes.cal_day ASC");
habe jetzt noch folgendes getestet:
01.
			$test = array_column($list, 3);
Jedoch macht er jetzt ja keinen Unterschied welcher User es ist. wie kann ich hier unterscheiden lassen?
Bitte warten ..
Mitglied: TheAlex
18.02.2018, aktualisiert 19.02.2018
Um es vllt zu vereinfachen mal ein bild der DB:
database - Klicke auf das Bild, um es zu vergrößern

Ich benötige eine möglichkeit mit der es möglich ist folgende Ausgabe zu erzeugen:

01.
Mitarbeiter |   Dienst    | Frei     |  Anzahl D/F | 
02.
 $user   |  $Dienst  |  $Frei  |    $d/$f         |
Quasi eine Tabelle, nur wie bin ich mir nicht ganz sicher?


Für jede hilfe bin ich dankbar!

Habe den Query nun hierrauf angepasst:
01.
SELECT mitarbeiter, cal_day, ma_wish FROM ma_wishes WHERE cal_mon=:mnum GROUP BY mitarbeiter ORDER BY cal_day +0 ASC
Jedoch gibt er mir nun nurnoch das erste ergebnis aus, das problem ist aber das ich ja alle werte zu dem nutzer benötige!
Bitte warten ..
Ähnliche Inhalte
PHP

MySQL Select in Kombination mit einer PHP-Funktion

Frage von icegetPHP2 Kommentare

Hallo liebe Community, ich habe folgendes Problem: Ich habe eine PHP-Funktion. Diese nennt sich getWeekFromID. Diese gibt anhand einer ...

Debian

Mysql Tabellen updaten von 2 Server

Frage von chatgodDebian1 Kommentar

Hallo liebe Kollegen, ich hab ein Problem und finde derzeit keine Lösung dafür, und ich hoffe das mir jemand ...

PHP

MYSQL Abfrage von 2 identischen Tabellen

gelöst Frage von datadexxPHP5 Kommentare

Hi an alle MYSQL Profis, ich hätte folgende Frage. Ich habe 2 Tabellen (kstamm, ustamm), diese sind vom Aufbau ...

PHP

PHP Tabellen automatisch nach Gruppen ID aus MYSQL erstellen

Frage von KyrinjaPHP8 Kommentare

Hallo liebe Gemeinde, ich sitze z.Z an einer Fahrzeugübersicht für unsere Feuerwehr. Hier würde ich gerne Tabellen dynamisch je ...

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 10 StundenBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 2 TagenHumor (lol)5 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 2 TagenExchange Server8 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 3 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke43 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Netzwerke
SSH - Wieso werde ich nach VPN Verbindung rausgeschmissen?
Frage von VernoxVernaxNetzwerke10 Kommentare

Hallo, ich habe es endlich geschafft mein Handy mit einer VPN Verbindung an meinen Router anzuschließen. Nach der Login ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft10 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...

Windows Server
Freigaben per Default nur für Domänen-Benutzer
Frage von tierwoWindows Server8 Kommentare

Hallo gibt es eine Möglichkeit, einen Server 2016 so zu konfigurieren (z.B. per GPO), dass Freigaben die erstellt werden ...