2017-04-21 2 views
1

Ich werde zuerst mit hallo beginnen und dass ich ein Anfänger an MSSQL und PHP bin, aber ich baue ein Projekt bei der Arbeit und benötige einige Anleitung.Wie man mit Daten von einer Auswahlfrage auf einer mssql Anordnung arbeitet

Was ich im Moment habe, ist eine funktionierende MS SQL Datenbank und eine Webseite, die Daten von dieser DB anzeigen wird. Die Verbindung und die Interaktion funktionieren im Moment und ich kann einfache Abfragen mit PDO durchführen und sie über eine PHP-Webseite anzeigen lassen.

Ich denke, was ich tun möchte, sollte ziemlich einfach sein, aber weiß nicht, wo ich anfangen soll zu fragen, da ich die richtige Terminologie noch nicht kenne und ich bin offen für Orte, die auch Hilfe suchen =)

OK - So, hier ist mein Problem:

$stmt = $pdo->prepare("SELECT TOP 25 * FROM tonerDel ORDER BY tonerID DESC"); 
$stmt->execute(); 
$result = $stmt->fetchAll(PDO::FETCH_BOTH); 

Dann habe ich eine für jede Schleife, die Daten aus dieser Abfrage anzeigt. Was ich gerne machen würde, ist mit den Daten in dieser Abfrage herumzuspielen.

Im Klartext möchte ich ein Feld aus einer Spalte anzeigen. Die letzte Toner-ID in der Liste (die höchste Nummer), um die Gesamtzahl der Lieferungen anzuzeigen, die unser Unternehmen bis heute durchgeführt hat.

Kann mir jemand in die richtige Richtung führen?

Ich bin wahrscheinlich dumm, habe aber seit 3 ​​Tagen versucht und ich komme nirgendwohin. Ich habe versucht, eine MAX-Funktion, aber der Code angezeigt, etwas in der Art des Treibers unterstützt dies nicht.

Einige Beispieldaten wie gewünscht (sieht ein bisschen chaotisch, wie ich die Kundennamen entfernt):

Last 25 deliveries:Total Deliveries: 
 
5732 \t 2017-04-20 \t LS4 \t KONICAC284 \t A4FK021014605 
 
5731 \t 2017-04-20 \t Ltd \t XEROX6605 \t 3188473848 
 
5730 \t 2017-04-20 \t BD6 \t KONICAC280 \t A0ED022002354 
 
5729 \t 2017-04-20 \t \t XEROX6605 \t 3188442977 
 
5728 \t 2017-04-20 \t T/A Whitegates \t OLIVMF222 \t A5C4321105153 
 
5727 \t 2017-04-20 \t \t KONICAC360 \t A0ED021004896

In diesem Fall möchte ich die letzte tonerID abzurufen, welche wäre 5732 wird in Zeile 1 oben angezeigt, da dies die letzte Lieferzeile ist, die als SELECT-Abfrage eingegeben wurde, um die letzten 25 Lieferungen in der DESC-Reihenfolge abzurufen.

+0

Bitte geben Sie einige Beispieldaten und das erwartete Ergebnis an. – GuidoG

+0

Wenn tonerID das einzige Feld ist, das Sie brauchen, dann verwenden Sie * nicht, aber verwenden Sie tonerID in Ihrem Auswahlbefehl. Wenn Sie nur die letzte wollen, dann fügen Sie LIMIT 1 an das Ende Ihrer Abfrage hinzu. – RST

+0

Das ist das Problem, ich wollte eine andere separate Abfrage speichern, nur um ein Stück Daten zu bekommen, die ich bereits im Array hatte. Also wird die obige Liste auf der Webseite angezeigt, dann können Sie sehen, wo Total Deliveries steht: - Ich wollte, dass die 5732 dort angezeigt wird, indem ich sie irgendwie aus dem Array nehme. –

Antwort

0

Es ist eine verwirrende Frage, aber es klingt so, als ob Sie die Spalte tonerID auswählen und die letzte Zeile innerhalb dieser Spalte auswählen möchten. Dies ist die Gesamtzahl der Lieferungen.

Um dies zu tun, können Sie die MAX-Funktion wie so verwenden:

$stmt = $pdo->prepare("SELECT MAX(tonerID) as totalTonerID FROM tonerDel"); 

Diese Abfrage wird die Datenbank für die höchste Zahl in tonerID im Wesentlichen suchen, die immer Ihre Gesamt sein sollten.

+0

Danke, dass du dir die Zeit genommen hast zu antworten. Richtig, also kann ich die vorhandene Abfrage nicht verwenden, muss ich 2 separate tun? Das war die Frage wirklich, kann ich zwei Dinge mit einer Abfrage machen? Wie ich bereits erwähnt habe, kam die MAX-Funktion mit einem Fehler zurück, aber ich werde es jetzt erneut versuchen. –

+0

Flipping heck, endlich hat es dank Ihrer Ratschläge zur Arbeit gebracht!Vielen Dank, ich werde posten, was ich unten gemacht habe. –

Verwandte Themen