Beiträge von Faustus

    Guten Morgen,


    ich habe ein kleine Problem und weiß noch nicht, wie ich es lösen kann.


    Eine SQL Abfrage holt mir Daten aus einer Tabelle

    SQL
    1. SELECT datum, name, punkte FROM vs_punkte WHERE name = :name ORDER BY datum DESC

    Ich erhalte dann folgende Tabelle

    Datum Name Punkte
    10.10.2020 Faustus

    99

    03.10.2020 Faustus 90
    25.09.2020 Faustus 75


    Ich hätte jetzt aber gerne noch eine weitere Spalte für die Differenz zur letzten Punktzahl des letzten Datums.

    Wie kann ich hier ie Differenz berechnen.

    Danke sehr und viele Grüße


    Faustus

    Hi, m.scatello


    danke für den Denkanstoss. Ich werde dies entsprechend mal versuchen und bei mir anbauen. Da hatte ich wohl eine Denkblockade.


    Für diejenigen, die es interessiert, es müsste für mien Beispiel so lauten.

    Code
    1. $result[] = $array[$i].' '.$array[$i+1];


    Grüße


    Faustus

    Guten Morgen,


    ich habe eine Fragem wie ich die Inhalte von 2 Array Keys verbinden kann.

    PHP
    1. $arr = array("Datum deiner Bestellung:", "gestern 14:00:00", "Dein Paket ist angekommen:", "heute 15:00:00",);
    2. $count = count($arr);

    Bei dem obigen Beispiel würde das Array wie folgt aussehen.

    In den ungeraden Keys steht immer ein Text, in den geraden Datum und Uhrzeit. Diese beiden Elemten (Text und Datum/Uhrzeit) sollen aber in einem Key.


    Code
    1. Array
    2. (
    3. [0] => Datum deiner Bestellung:
    4. [1] => gestern 14:00:00
    5. [2] => Dein Paket ist angekommen:
    6. [3] => heute 15:00:00
    7. )


    Ich würde aber gerne erreichen, dass [1] an [0] gefügt wird, [3] an [2] usw.

    Code
    1. Array
    2. (
    3. [0] => Datum deiner Bestellung: gestern 14:00:00
    4. [1] => Dein Paket ist angekommen: heute 15:00:00
    5. )

    Jemand eine Idee, wie ich das erreichen kann?


    Danke sehr und vile Grüße


    Faustus

    Aufgegeben habe ich nicht. Ich musste nur etwas machen.

    Bin jetzt aus dem Urlaub zurück und setze mich nochmal dran. Ich gucke mir das später nochmal an.

    Schon mal vielen Dank für eure Antworten.

    Hi,


    danke für die Antworten. War über das Wochenende nicht am Rechner, daher eine späte Antwort.


    Die IDs sind wohl immer gleich. Wird in TIERE eine ID eingefügt, wird dies auch so in die andere Tabelle geschrieben. So erkläre ich mir das zumindest, da die IDs nach meiner Prüfung immer so vergeben sind. Leider ist das nicht meine Datenbank bzw. ich darf zum Testen die Daten benutzen.


    Ich habe es jetzt so gemacht, dass immer ein Link erstellt wird. Klickt man darauf, wird man auf die Info Seite geleitet. Dort wird dann geprüft, ob es Zusatzinfos gibt. Wenn ja, werden diese aufgelistet. Wenn es keine Zusatzinfos gibt, wird eine Aufforderung eingeblendet, diese Zusatzinfos zu pflegen.

    Hallo,


    vielen Dank für all die Antworten.


    Die Liste soll komplett ausgegeben werden, unabhängig, ob es weitere Infos gibt, oder nicht.


    Die Tabellenstruktur sieht so aus (stammt nicht von mir)

    tiere

    id int(5) AUTO_INCREMENT

    tiername varchar(40)

    erdat date

    ernam varchar(10)

    activ boolean


    eigenschaften

    id int(5)

    latein varchar(40)

    land varchar(30)

    kontinent varchar(20)

    groesse int(5)

    einheit_gr varchar(3)

    gewicht int(5)

    einheit_ge varchar(3)

    .

    .

    .



    Reicht das euch, oder braucht ihr noch mehr Informationen?


    Danke sehr


    Grüße


    Faustus

    Hallo,


    ich beschäftige mich gerade mit Arrays.

    Habe hierzu eine Frage.


    Ich habe 2 Abfragen

    Code
    1. $sql = $db->prepare("SELECT id, tiername FROM tiere ORDER BY tiername");
    2. $sql->execute();
    3. foreach ($sql as $row] {
    4. echo $row['tiername];
    5. }

    Hier sollen alle Werte ausgegeben werden.

    Es gibt aber noch eine zweite Tabelle, in der weitereführende Informationen zu einem Tier angelegt sind. Hierbei ist wichtig, dass es nicht zu jedem Tier weitere Informationen gibt


    Code
    1. $sql_info = $db->prepare("SELECT id FROM eigenschaften");
    2. $sql_info->execute();
    3. $result = $sql_info->fetchAll();


    Ich würde es jetzt gerne umsetzen, dass in der Liste, aus der ersten Abfrage, der Tiername als Link dargestellt wird, wenn das Tier in der Tabelle Eigenschaften vorkommt.


    Folgendes habe ich probiert


    Code
    1. foreach ($sql as $row] {
    2. if (array_search($row['tiername'], $result)) {
    3. <a href="info.php?id='.$row['id'].'">'.$row['tiername'].'</a>';
    4. }
    5. else {
    6. $row['tiername'];
    7. }
    8. }

    Es erscheint keine Ausgabe als Link, sondern immer nur der Tiername als Text.

    Was mache ich falsch?


    Danke sehr


    Grüße


    Faustus

    Nochmals Dank an Sempervivum.

    Den Code habe ich angepasst und das Array erweitert, um meinen Ausgabe besser aufbereitet zubekommen.


    Nun habe ich noch etwas herumprobiert und gesucht, weil ich noch etwas anderes ausprobieren wollte/muss bei einer Ausgabe.

    Da bin ich auf einen andere Beitrag gestoßen, in dem man es nur mit der SQL Abfrage hinbekommen hat. Hier gab es aber das Problem, dass die Abfrage statisch war, d.h. für jede Spalte muss zwingend ein Datensatz vorliegen.

    Ist dies ein generelles Problem von PIVOT? Wenn ja, müsste man es ja über PHP lösen können.

    Ich kann gerne dazu mal das Beispiel raussuchen bzw. auf meine Datenstruktur abändern.


    Eigentlich sollte dies ja ein Problem sein, welches viele Anfänger haben.

    Guten Morgen liebes Forum,


    ich bschäftige mich etwas mit PHP und SQL. Dabei lernt man ja Tabellen auszugeben, was an sich auch kein Problem für mich darstellt.


    Jetzt habe ich aber folgendes Problem. Ich würde gerne die Taballe nicht, wie normal, Zeile für Zeile untereinander ausgeben lassen, sondern nebeneinander. Ich vertausche quasi Zeilen und Spalten.

    Die Tabelle unten kann ausgeben.


    MATNR MTART WERKS NETGW
    4711 FERT 0001 0,5
    4711 FERT 0002 0,6
    4711 FLUS 0003 20,00
    4711 PULV 0004 1,25



    Ich würde aber gerne lieber so etwas probieren.


    4711 0001
    0002
    0003
    MTART FERT FERT FLUS
    NETGW 0,5
    0,6 20,00


    Hat jemand eine Idee, wie man das umsetzen könnte?


    Danke sehr.


    Faustus