php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.12.2004, 01:20  
Erfahrener Benutzer
 
Registriert seit: 08.11.2003
Beiträge: 139
Calexico
Standard problem mit switch und der 8 & 9

Hej zusammen!

Ich übergebe per GET die nummer der monat also 1..12. diese nummer wird ausgelesen und umgewandelt in den Monatsnamen per switch(). sieht so aus:
Code:
switch($_GET["monat"]){
   case 01:
    $monat="Januar";
	break;
   case 02:
    $monat="Februar";
	break;
   case 03:
    $monat="März";
	break;
   case 04:
    $monat="April";
	break;
   case 05:
    $monat="Mai";
	break;
   case 06:
    $monat="Juni";
	break;
   case 07:
    $monat="Juli";
	break;
   case 08:
    $monat="August";
	break;
   case 09:
    $monat="September";
	break;
   case 10:
    $monat="Oktober";
	break;
   case 11:
    $monat="November";
	break;
   case 12:
    $monat="Dezember";
	break;
  }
dann das ganze noch ausgeben per echo und gut wäre. jetzt klappt das immer, außer beim ausgust und september. die schein er zu überspringen, denn bei beiden, d.h. $_GET["monat"]==8 || $_GET["monat"]==9, kommt die fehlermeldung, dass die variable $monat nicht existiert.

was ist falsch?

DANKE!

Calexico
Calexico ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.12.2004, 09:12  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

versuch es mal über '01' '02' etc weil das auf jeden fall sauberer wäre, weil du über get keine integer bekommst ud das was du da in deinem case hast sind ab 10 dezimal-zahlen und drüber bin ich mir nicht sicher als was er das interpretiert, wegen der vorangestellten 0 vieleicht als oktal, dann findet er sie nie

hmm ich würds eh bissel einfach lösen, bastel dir irgendwo ein array zusammen

nach dem schema

$Monate['1'] = 'Januar';
.
.
.
$Monate['12'] = 'Dezember';


und dann machst du ne if-überprüfung ob der wert zwischen 1 und 12 liegt und wenn ja, dann einfach
$monat = $Monate[$_GET['monat']];
robo47 ist offline  
Alt 30.12.2004, 09:18  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich weiß zwar nicht, was du eigentlich machen willst .. aber eventuell hilft dir auch das hier:
http://php.net/strftime

ansonsten:
PHP-Code:
<?php
  
   $month 
9;
   
   switch(
$month)
   {
       case 
1:
          echo 
'Januar';
          break;  

       case 
2:
          echo 
'Februar';
          break;  

       case 
3:
          echo 
'März';
          break;  

       case 
4:
          echo 
'April';
          break;  

       case 
5:
          echo 
'Mai';
          break;  

       case 
6:
          echo 
'Juni';
          break; 
 
       case 
7:
          echo 
'Juli';
          break;  

       case 
8:
          echo 
'August';
          break;  

       case 
9:
          echo 
'September';
          break;  

       case 
10:
          echo 
'Oktober';
          break;  

       case 
11:
          echo 
'November';
          break;  

       case 
12:
          echo 
'Dezember';
          break;  

       default:
         echo 
'Falscher Ausgangswert.';
   } 

?>
ausgabe: September
imported_Ben ist offline  
Alt 30.12.2004, 11:00  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Wer verstehen will, warum:

Code:
// snip
case 01:
//snip
Das obige, nämlich "01" ist keine reine, normale Dezimalzahl. Da liegt wohl der Hase im Pfeffer... So wie Ben es vorgeschlagen hat, ist es richtig

Guckst du hier: http://www.php.net/manual/en/language.types.integer.php
Stichwort oktal...
mepeisen ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
include - get - big problem Buschdieb PHP-Fortgeschrittene 6 14.04.2006 20:28
problem mit switch Smily0412 PHP Tipps 2006 3 13.04.2006 12:25
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Problem mit Switch PHP Tipps 2007 4 30.12.2005 14:04
2 switch abfragen in einer datei!? CHRIS PHP Tipps 2005-2 6 29.06.2005 20:17
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Switch / Case Problem PHP Tipps 2004 9 28.10.2004 11:18
Problem mit Switch PHP Tipps 2004 3 07.10.2004 14:28
Problem mit GET PHP Tipps 2004 5 29.09.2004 14:45
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
problem funktion case 12 monate, php case 1 - 9, php switch case januar februar

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.