Connect failed: Connection timed out

[GastForen Programmierung/Entwicklung PHP und MySQL Zahl als Monat "zurückschreiben"

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

Zahl als Monat "zurückschreiben"

macmac
Beiträge gesamt: 394

2. Aug 2015, 17:06
Beitrag # 1 von 8
Bewertung:
(9001 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Grüsst euch
ich kann folgendes Problem nicht lösen:
Ich gebe den Monatnamen als Zahl in die mysql DB ein (01-12). Dies, um eine Sortierung zu veranlassen bei der Ausgabe (2015-02-28), das heisst also dass in der Zelle "monat" 02 steht.
Bei der Ausgabe möchte ich Dienstag, 28. Februar 2015 ausgeben, das ist lesefreundlicher (also quasi eine Rückformulierung erstellen).
Das ging bisher, aber nun wurde mit der Einführung mysqli die Syntax geändert und ich kann diese Umformulierung nicht mehr herbeiführen, also:

"SELECT ... monat,...";
....
echo "$row->monat";

Das klappt, aber nun möchte ich eine if-Schlaufe einfügen:

if $row->monat IST 02 schreibe "Februar"

Nur mit der neuen Syntax ($row->monat) komme ich hier nicht mehr weiter etwa:

if ($row->monat) == "02" { echo "Ferbruar";}
elseif .....

Ich weiss, dass es völlig falsch ist, aber bspw. Zellen unter bestimmten Bedingungen umzuschreiben bei der Ausgabe finde ich nicht, sondern nur Ausgaben unter bestimmten Bedingungen.
So könnte ich auch mal eingeben, dass wenn "Herr" in einer Zelle steht, ich bei der Ausgabe "Sehr geehrter Herr" umformulieren möchte...

Wie muss ich mit der neuen Schreibweise diese if-Abfrage korrekt schreiben?


Besten Dank für die Hilfe.
X

Zahl als Monat "zurückschreiben"

MurphysLaw
Beiträge gesamt: 588

3. Aug 2015, 13:21
Beitrag # 2 von 8
Beitrag ID: #541702
Bewertung:
(8920 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also ich würd's in etwa so machen:
Code
$monate = array("dummy", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember); 

echo(monate[$row->monat]);


;-)


als Antwort auf: [#541690]

Zahl als Monat "zurückschreiben"

Intermedia
Beiträge gesamt: 1287

4. Aug 2015, 08:35
Beitrag # 3 von 8
Beitrag ID: #541735
Bewertung:
(8873 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

zunächst mal hierzu :
Zitat if-Schlaufe

http://www.if-schleife.de/

Mach ein Array in dieser Form:

Code
$monat = Array("01"=>"Januar","02"=>"Februar"); 

echo $monat['02'];


oder das hier: http://php.net/...ime.formats.date.php

Bei der Anrede ist es das gleiche Prinzip mit dem Array.


Gruß Sven


als Antwort auf: [#541690]

Zahl als Monat "zurückschreiben"

macmac
Beiträge gesamt: 394

4. Aug 2015, 09:39
Beitrag # 4 von 8
Beitrag ID: #541738
Bewertung:
(8862 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Euch besten Dank, ich habe beide Lösungen versucht, komme aber nicht zum Ziel.

Es liegt an der Schreibweise, die ich nicht hinkriege:

Die Spalte in der Tabelle heisst 'monat'

in der alten Schreibeweise klappte diese Abfrage (!!) ohne Murren

if ($row[monat]=="01") echo" Januar";
elseif ($row[monat]=="02") echo" Februar ";
usw.

So erhielt ich das lesbare Datum, 03. Januar 2015

Wende ich das in der neuen Ausgabe-Schreibweise an

echo "$row->monat";

folgt die Fehlermeldung

Use of undefined constant monat - assumed 'monat' in ..... on line 103

Ein $monat habe ich doch nirgends, folglich kann ich die vorgeschlagenen Lösungen nicht anwenden – ich meine, dass doch die Spalte 'monat' als Variable geschrieben werden muss. Aber eben wie??


als Antwort auf: [#541735]

Zahl als Monat "zurückschreiben"

MurphysLaw
Beiträge gesamt: 588

4. Aug 2015, 10:06
Beitrag # 5 von 8
Beitrag ID: #541743
Bewertung:
(8855 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Eigentlich müsste es ja ohnehin so heißen:
Code
echo($row['monat']) 


Funzt denn das?


als Antwort auf: [#541738]

Zahl als Monat "zurückschreiben"

Intermedia
Beiträge gesamt: 1287

4. Aug 2015, 11:01
Beitrag # 6 von 8
Beitrag ID: #541750
Bewertung:
(8839 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ähhhmmmmm... ich glaube dir fehlen die absoluten Grundlagen.

so wird das nichts.
Code
echo "$row->monat"; 


wenn dann schon so:
Code
echo $row->monat; 

aber ich bezweifel das du den Inhalt als Objekt hast, entsprechend deiner
mageren Infos denke ich mal das es so aussehen muß:

Code
echo $row['monat']; 


da der Wert in einem Array steht.

Antwort auf: Ein $monat habe ich doch nirgends


genau aus diesem Grund hab ich dir ja das Beispiel gemacht.

Ich mach mal einen Blindflug (mit meinem Ansatz), dann könnte es in etwa so funktionieren:

Code
echo $monat[$row['monat']] 



Gruß Sven


als Antwort auf: [#541738]

Zahl als Monat "zurückschreiben"

macmac
Beiträge gesamt: 394

4. Aug 2015, 11:12
Beitrag # 7 von 8
Beitrag ID: #541752
Bewertung:
(8831 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja Sven, mir fehlen die Grundlagen, ich bin absoluter Autodidakt... tut mir leid.

Aber ich habe die Lösung (wie immer: früher oder viel später als Profis) gefunden:

"SELECT monat..." // dann die ganze while Schleife mit den Textteilen aus der DB

while... etc. {

$monat = ($row->monat); // DA lag der Hund, die Formulierung ist so nun korrekt

if ($monat=="01") echo" Januar";
elseif ($monat=="02") echo" Februar ";
usw. bis Dezember
}

Nun klappts: Samstag, 02. Februar 2015.

Nun könnte ich noch das 02 durch 2 ersetzen.

Die Inputs haben die Lösung gebracht.

Danke dennoch an alle.

Macmac


als Antwort auf: [#541750]
(Dieser Beitrag wurde von macmac am 4. Aug 2015, 11:17 geändert)

Zahl als Monat "zurückschreiben"

Intermedia
Beiträge gesamt: 1287

4. Aug 2015, 11:30
Beitrag # 8 von 8
Beitrag ID: #541754
Bewertung:
(8815 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit deinen 12 Bedinungen geht das natürlich.

Bei meiner Methode kannst du das in 2 Zeilen erledigen.

Gruß Sven


als Antwort auf: [#541752]
X