php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-11-2019, 00:42
Pajoma
 Registrierter Benutzer
Links : Onlinestatus : Pajoma ist offline
Registriert seit: Nov 2019
Beiträge: 1
Pajoma befindet sich auf einem aufstrebenden Ast
Standard Mysql Select, Sum, Where, Group Problem.

Guten Abend,

leider komme Ich mit einem Script nicht weiter und ersuche deshalb hier im Forum Hilfe.

Ich habe eine Tabelle in meiner Datenbank, aufgebaut ist diese wie folgt.

Datum,User,Material,Anzahl

13.11.2019, UsernameXYZ, MaterialABC, 106
13.11.2019, UsernameABC, MaterialXYZ, 101
13.11.2019, UsernameXYZ, MaterialABC, 102
13.11.2019, UsernameABC, MaterialXYZ, 109

Jetzt möchte Ich eigtl. das der UsernameXYZ der per Drop Down Menü ausgewählt wird $_POST das auf Ihn eingetragene Material mit der gesamten Anzahl angezeigt bekommt.

Ich habe schon einiges probiert, bekomme es aber nicht zu laufen.

Hier mal ein Code Snipped:

if($_POST['techniker'] != "") {

$techniker = $_POST['techniker'];
echo 'X'.$techniker.'';
$sql = "SELECT material, SUM(anzahl) AS sum_anzahl FROM " . $lager . "log WHERE techniker ='Christopher' GROUP BY Christopher";
$query = mysqli_query( $myconnect, $sql);
while ($data = mysqli_fetch_array($query)) {
$zeit = $data['datum'];
$name = $data['user'];
$artikel = $data['material'];
$anzahl = $data['anzahl'];
$monat = $data['monat'];
$sum_anzahl = $data['sum_anzahl'];

Echo ‚Bla Bla,;
}

Ich danke für ein bisschen Unterstützung!!!
Mit Zitat antworten
  #2 (permalink)  
Alt 14-11-2019, 21:56
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.744
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Uijuijui. Ganz schlechtes Datenbankdesign. Du solltest dich erst mal mit dem Thema Normalisierung beschäftigen. Dann ist das auch mit den Abfragen viel einfacher.

Gruß
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 15-11-2019, 09:12
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 169
chorn befindet sich auf einem aufstrebenden Ast
Standard

Das ist ja ein SQL-Problem, daher solltest du den ganzen PHP-Code erstmal weglassen. Wenn du willst, dass dir jemand hilft, solltest du auch immer ein nachvollziehbares Beispiel liefern, hier fehlen Testdaten. Für PHP kannst du mit PDO einfach eine temporäre SQLite Datenbank anlegen und da Daten reinballern, die stehen dann auch im PHP-Code

PHP-Code:
$pdo = new PDO('sqlite::memory:'); 
Und es gibt auch Onlinetools: http://sqlfiddle.com/#!17/d14ee/2

Ausserdem bekommst du mit deinem SELECT direkt einen SQL-Fehler, weil GROUP BY einen Spaltennamen/Ausdruck erwartet, und keinen Wert, der Wert steht im WHERE. Sowas solltest du dir auf deinem Testsystem immer anzeigen lassen

PHP-Code:
mysqli_report(MYSQLI_REPORT_ERROR MYSQLI_REPORT_STRICT); 
MySQL hat die blöde Eigenschaft bei GROUP BY wichtige Fehlermeldungen zu unterdrücken und stattdessen zufällige Ergebnisse zu liefern. Wenn du gruppierst musst du darauf achten, dass jede Spalte die du auswählst entweder im GROUP BY steht, oder über eine Aggregatfunktion (sum, avg, concat, ...) läuft - das fehlt bei "material", hier würdest du unter MySQL ein zufälliges Material bekommen, in anderen Datenbanken endet das in einer Fehlermeldung.
Mit Zitat antworten
  #4 (permalink)  
Alt 24-11-2019, 02:39
highrise
 Registrierter Benutzer
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 264
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Peter: Ich neige dazu, dir zu widersprechen, da wir ansonsten ja nichts über die Anwendung wissen.
Wenn der Name eines Materials eindeutig und unveränderlich ist, und gleiches auch für einen Benutzer gilt (also beides als eindeutiger Kennzeichner geeignet ist) dann sind die Daten normalisiert.
Dazu bedarf es keiner zusätzlichen numerischen ID. Das darf durchaus ein String sein, der dann auch gerade bei sowas einfachem die Lesbarkeit für den Menschen deutlich erhöht.
Wenn der Name darüber hinaus sogar die einzige Eigenschaft eines Benutzers und Materials ist, dann wäre eine weitere Normalisierung sogar nachteilig sein. (Übernormalisierung)

Die Anwendung ist ja ziemlich trivial.

Viele Grüße
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #5 (permalink)  
Alt 24-11-2019, 10:25
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.668
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von highrise Beitrag anzeigen
@Peter: Ich neige dazu, dir zu widersprechen, da wir ansonsten ja nichts über die Anwendung wissen.
Wenn der Name eines Materials eindeutig und unveränderlich ist, und gleiches auch für einen Benutzer gilt (also beides als eindeutiger Kennzeichner geeignet ist) dann sind die Daten normalisiert.
Dazu bedarf es keiner zusätzlichen numerischen ID. Das darf durchaus ein String sein, der dann auch gerade bei sowas einfachem die Lesbarkeit für den Menschen deutlich erhöht.
Wenn der Name darüber hinaus sogar die einzige Eigenschaft eines Benutzers und Materials ist, dann wäre eine weitere Normalisierung sogar nachteilig sein. (Übernormalisierung)
Usernamen und Materialnamen können sich ändern. Also nach meiner jahrelangen Erfahrung als Software-Entwickler werden "unveränderliche" Dinge oft veränderlich. Und dann ist es wesentlich einfacher, wenn man das von Grund auf vorgesehen hat, als später hinterher die halbe Anwendung umkrempeln muss.

Zum Beispiel der User "erika_musterfrau" könnte geheiratet haben und jetzt "erika_mustermann" heißen.

Selbst "IDs", die von einem anderen System importiert wurden, haben sich schon oft genug geändert. Deswegen würde ich Fremd-IDs auch nie als Primärschlüssel verwenden, sondern als zusätzliche Spalte mitführen.

Geändert von h3ll (24-11-2019 um 10:29 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 24-11-2019, 13:01
highrise
 Registrierter Benutzer
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 264
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

h3ll, woher weißt du, dass sie sich ändern können? Du kennst doch die Anwendung gar nicht.

Wieso benötigt Erika einen neuen Benutzernamen, weil sich ihr tatsächlicher Nachname geändert hat? Und mal ganz auf die Spitze getrieben Stelle ich die Frage, ob seit DSGVO der Nachname überhaupt im Benutzernamen reflektiert sein sollte, denn er ist nicht notwendig.

Für die hier vorgestellte Anwendung ist das so völlig in Ordnung.

Die Erklärung von chorn beantwortet die Frage ja auch ganz hervorragend.
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #7 (permalink)  
Alt 24-11-2019, 18:46
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.668
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von highrise Beitrag anzeigen
h3ll, woher weißt du, dass sie sich ändern können? Du kennst doch die Anwendung gar nicht.
Und du bist Hellseher und kannst in die Zukunft blicken?

Zitat:
Zitat von highrise Beitrag anzeigen
Wieso benötigt Erika einen neuen Benutzernamen, weil sich ihr tatsächlicher Nachname geändert hat?
Eventuell hat Erika Mustermann sich von Max Mustermann scheiden lassen und möchte nicht mehr mit ihrem Benutzernamen an ihren Ex-Mann erinnert werden? Willst du es ihr verbieten?

Zitat:
Zitat von highrise Beitrag anzeigen
Und mal ganz auf die Spitze getrieben Stelle ich die Frage, ob seit DSGVO der Nachname überhaupt im Benutzernamen reflektiert sein sollte, denn er ist nicht notwendig.
Bin kein Rechtsanwalt, aber in vielen Firmen ist sowas üblich. In der Firma, in der ich arbeite, enthält auch der Benutzername den Nachnamen. Und nicht nur das, der Benutzername enthält sogar den Abteilungsnamen. Also wenn ein Mitarbeiter in eine andere Abteilung wechselt, ändert sich auch sein Benutzername.
Mit Zitat antworten
  #8 (permalink)  
Alt 24-11-2019, 18:54
highrise
 Registrierter Benutzer
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 264
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du hast Recht und ich hab meine Ruhe.
Schade, dass sich auch nach mehreren Jahren hier nicht viel geändert hat.
Ich bin dann mal wieder weg. Bis in ein paar Jahren vielleicht in der Hoffnung, dass einige Scriptkiddies hier doch noch erwachsen werden.
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #9 (permalink)  
Alt 24-11-2019, 19:05
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.668
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von highrise Beitrag anzeigen
Du hast Recht und ich hab meine Ruhe.
Schade, dass sich auch nach mehreren Jahren hier nicht viel geändert hat.
Ich bin dann mal wieder weg. Bis in ein paar Jahren vielleicht in der Hoffnung, dass einige Scriptkiddies hier doch noch erwachsen werden.
Wenn deine einzige Reaktion auf Fakten ist die beleidigte Leberwurst zu spielen, solltest du dich besser von Foren fern halten, das tut dir nicht gut.
Mit Zitat antworten
  #10 (permalink)  
Alt 24-11-2019, 19:52
highrise
 Registrierter Benutzer
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 264
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das Problem ist, dass deine Fakten keine Fakten sind, sondern Vermutungen, und du das nicht einsieht. Stattdessen fragst du nach meinen hellseherischen Fähigkeiten. Die gibt es nicht, aber zur Lösung des akuten Problems sind die auch gar nicht nötig.

Es geht hier um ein klar definiertes Problem, und nicht um geratene möglicherweise zukünftig eintretende Derivate. Es geht auch nicht um eine Bewertung des design, denn dazu fehlen einfach viel zu viele Parameter, die der Fragesteller schlicht nicht mitgeteilt hat.

Und an der Stelle muss man nun einem offensichtlichen Anfänger nicht gleich noch zwei neue Probleme eröffnen, wo es nicht notwendig ist. Aufgrund der vorliegenden Informationen reicht der Grad der Komplexität aus. Vielleicht ergibt sich mit zunehmender Anforderung auch zunehmender Bedarf an Normalisierung oder sonstigem, aber zum gegeben Problem genügt das so.

Um genau eine Schraube in Brett zu drehen, benötigst du genau einen passenden Schraubendreher. Klar könnte es in Zukunft änder Schrauben geben, und Wechselbits sind ganz toll, oder ein Akkuschrauber, aber das ist alles nur geraten. Für das akute Problem genügt ein 1,- Euro Schraubendreher vom wühltisch. Möglicherweise brauche ich dann doch irgendwann einen Akkuschrauber für 99 Euro, und muss damit klarkommen, dass ich mir den 1Euro hätte sparen können, wenn ich gleich den Akkuschrauber gekauft hätte... andersherum kann ich aber ggf 98 Euro sparen, wenn ich jetzt einfach nur das akute Problem betrachte...

Es liegt nicht an den Foren, es liegt immer nur an ihren Mitgliedern ... und du hast mir gerade eindrucksvoll gezeigt, dass ich mich hier nicht wohlfühle.

Ich bedanke mich dafür, dass du mir das vorschlägst, was ich ja ohnehin schon angekündigt hatte.
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php/mysql: Select SUM > Anzahl der verrechneten Sätze ermitteln sublevel1980 PHP Developer Forum 2 12-03-2012 16:37
MySql Select mit Group by marc75 SQL / Datenbanken 9 12-08-2009 13:19
Problem mit SELECT, SUM und WHERE Sirius SQL / Datenbanken 8 21-09-2003 22:30
Problem mit SELECT, SUM und WHERE Phil98 SQL / Datenbanken 13 12-08-2003 12:53
Kombination GROUP BY / SUM??? TobiaZ SQL / Datenbanken 11 04-01-2003 16:23

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

jqPlot jQuery Plotting Plugin ansehen jqPlot jQuery Plotting Plugin

jqPlot ist ein plotting und charting plugin für das jQuery Javascript framework

06.11.2019 Berni | Kategorie: AJAX/ Framework
WYSIWYG Editor

WYSIWYG Editor zum Einbinden in PHP Scripte.

21.10.2019 Stephan_1972 | Kategorie: PHP/ WYSIWYG
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

10.10.2019 Stephan_1972 | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:21 Uhr.