[GastForen Programmierung/Entwicklung PHP und MySQL Variablenbildung in for oder while schlaufe nach Abfrage aus DB

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Variablenbildung in for oder while schlaufe nach Abfrage aus DB

lachaca
Beiträge gesamt: 2

25. Jan 2005, 16:08
Beitrag # 1 von 5
Bewertung:
(717 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich mache eine Datenbankabfrage um zu bestimmen, wieviele Bestellungen an jedem Tag des Monats (mit Umsatz) gemacht werden. Abfrage und Anzeige funktionieren auch einwandfrei. Was ich aber möchte, ist die Daten in Variablen packen ($zähler_tag_xx) wobei xx für den Tag stehen soll. D.h. es gibt max 31 Variablen (oder eben soviele wie Tage mit Umsatz gefunden werden. Der Wert der Variable soll aus "count(Datum)" kommen. Die einzelnen Daten habe ich auch schön in Tabellenform, aber ich krieg sie nich in die einzelnen variablen ??

Datenbanktabelle welche folgende Felder gebraucht werden:
Datum , Rechnungsbetrag

Code (entweder mit for oder while Schlaufe...)

Datenbanktabelle welche folgende Felder gebraucht werden:
Datum , Rechnungsbetrag

mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE(mysql_error());
mysql_select_db($sqldb);
$result = mysql_query("SELECT Datum,count(Datum), Rechnungsbetrag FROM bestellung
WHERE Datum LIKE '$jahr-$monat-%' group by Datum");
// While Schlaufe*****************************
while($row = mysql_fetch_array($result)) {
// Anzahl der Felder ermitteln
$j = mysql_num_fields($result);

// Variable definieren (Anzahl wie Einträge gefunden....
// Für jeden tag soll also eine Variable definiert werden, die den Wert aus der Spalte Datum enthält
// xx = Tag aus substr..... $zähler_tag_xx = substr($row[1];

// Ausgabe der Daten (nur Test)
echo "&nbsp;&nbsp;am $row[0] sind $row[1] Bestellungen mit Sfr: $row[2] gemacht worden<br>"; }

// Oder for Schlaufe*******************************
$zeilen = mysql_num_rows($result);
for ($lo=0;$lo<$zeilen;$lo++) {
$row = mysql_fetch_row($result);

//hier müsen die variablen definiert werden:
// $zähler_tag_01 , 02 etc sollen aus $zähler_tag_xx (xx = Tag im Monat -> substr($row[0], 8, 2);)
// wird aus dem Datumsfeld (2004-29-06) gewonnen
//
// Wert (substr($row[1];) ist die anzahl Bestellungen
//
// Für jeden tag soll also eine Variable definiert werden, die den Wert aus der Spalte Datum enthält
// xx = Tag aus substr.....

$zähler_tag_xx = substr($row[1];
$zähler_tag_02 = substr($row[1];
.
.
.
$zähler_tag_31 = substr($row[0], 8, 2);

// Ausgabe der Daten (nur Test)
echo "&nbsp;&nbsp;am $row[0] sind $row[1] Bestellungen mit Sfr: $row[2] gemacht worden<br>"; } // end for Schlaufe


Wer hat einen Tipp!!!!
Danke und Gruss
Marcel
X

Variablenbildung in for oder while schlaufe nach Abfrage aus DB

Pozor
Beiträge gesamt: 892

25. Jan 2005, 16:50
Beitrag # 2 von 5
Beitrag ID: #139321
Bewertung:
(717 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

nur zu den Variablen:

Es ist etwas einfacher, wenn du anstatt den vielen Variablen
nur eine hast: ein Array natürlich:

$zähler_tag[1] = 'value';
$zähler_tag[2] = 'value';
.
.

wenn du alle werte nacheinander auslesen möchtest:

//falls du die Tage nicht aufeinanderfolgend eingefügt hast
ksort($zähler_tag);

foreach($zähler_tag as $tagnumber => $tagvalue)
{
//do some stuff
}

Gruss Stefan

"KISS - KEEP IT SIMPLE, STUPID"
Ein paar Debuggingtricks:
http://www.boelsterli.biz/test/hds/debugging.php


als Antwort auf: [#139301]

Variablenbildung in for oder while schlaufe nach Abfrage aus DB

tkshorty
Beiträge gesamt: 13

26. Jan 2005, 08:50
Beitrag # 3 von 5
Beitrag ID: #139453
Bewertung:
(717 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
$j=0;

while($row = mysql_fetch_array($result))
{
$zaehler_tag[$j]=substr($row[0], 8, 2);
$j++;
}

dann brauchst du auch gar net die datensätze zu zählen


als Antwort auf: [#139301]

Variablenbildung in for oder while schlaufe nach Abfrage aus DB

lachaca
Beiträge gesamt: 2

26. Jan 2005, 09:18
Beitrag # 4 von 5
Beitrag ID: #139465
Bewertung:
(717 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
das mit dem $j geht leider nicht so einfach. Ich brauche an Stelle des $j nicht einfach nur die hochgezählte Zahl (1,2,3,4) sondern
den Tag der aus dem Feld Datum genommen wird
(Bsp. Datum 2005-10-03 - brauche ich 03 als $j). wenn ich also im Monat 10 an folgenden Tagen 03, 07 und 14. Bestellungen gemacht worden sind, dann bauche ich folgende Variablen:

$zahler_tag_03 = 23 (Wert aus der Abfrage count(Datum) )
$zahler_tag_07 = 28 (d.h. hier werden die Bestellungen gezählt
$zahler_tag_14 = 4 (entsprechend der Anzahl Einträge pro Datum)

d.h. es kann mehr oder weniger Variablen geben, entsprechend den Tagen an denen eine Bestellung gemacht wurde.
Hoffe jemand versteht was ich meine.
Hier ein weiterer Lösungsansatz, der abe leider kein Erfolg gebracht hat. Vielleicht sieht ja da jemand meinen Fehler...


SELECT Datum,COUNT(Datum), SUM(Rechnungsbetrag) FROM bestellung WHERE Datum LIKE '$jahr-$monat-%'
GROUP BY Datum

// Variable definieren (Anzahl wie Einträge gefunden....
// Für jeden tag soll also eine Variable definiert werden,
// die den Wert aus der Spalte Datum enthält
// Hier wird der Tag aus dem Datum ausgelesen
// Wenn das Datum also 2005-01-25 enthält, enthält die Variable
// $intTag danach "25"
$intTag = (int)substr($row[0], -2)
// Hier werden nun die Angaben in die Arrays $zähler und
// $rechnungsbetrag geschrieben.
$zähler_tag[$intTag] = $row[1];
$rechnungsbetrag[$intTag] = $row[2];

foreach($zähler as $intKey=>$intValue)
{
// $intKey enthält nun immer den Array-Key (also den Tag)
// und $intValue den Wert, also entweder die Anzahl Bestellungen
// im Fall von $zähler und den Rechnungsbetrag bei $rechnungsbetrag
echo $zähler[$intKey] . " " . $rechnungsbetrag[$intKey] . "<br>";
}


als Antwort auf: [#139301]

Variablenbildung in for oder while schlaufe nach Abfrage aus DB

tkshorty
Beiträge gesamt: 13

26. Jan 2005, 10:33
Beitrag # 5 von 5
Beitrag ID: #139487
Bewertung:
(717 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
achso sag das doch
while($row = mysql_fetch_array($result))
{
$t=substr($row[0], 8, 2);
$zaehler_tag[$t]=$row[1];
}

die kannst du dann z.B mit $zaehler_tag['07'] aufrufen



als Antwort auf: [#139301]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/