Ankündigung

Einklappen
Keine Ankündigung bisher.

Zufallsauswahl aus Texten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zufallsauswahl aus Texten

    Ich versuche gerade in ungefähr so etwas zu erstellen:


    PHP-Code:

    $staedte 
    = ["Muenchen, "Hannover"];

    $zuf_stadt = $staedte[mt_rand(0, count($staedte)-1)];

    if(
    $zuf_stadt = "Muenchen") {

    $bundesland = "Bayern";

    }else{ 
    $bundesland = "Niedersachsen"

    }

    echo( "
    $zuf_stadt in $bundesland") 
    Nun habe ich das Problem, dass nie Hannover und Niedersachsen ausgegeben werden, sondern immer nur Muenchen und Bayern.
    Wie kann ich das lösen?

    Vielen Dank schon mal im Voraus

  • #2
    PHP-Code:
    if($zuf_stadt "Muenchen"
    ist nicht dasselbe wie:

    PHP-Code:
    if($zuf_stadt == "Muenchen"
    oder sogar

    PHP-Code:
    if($zuf_stadt === "Muenchen"
    https://www.php.net/manual/de/langua...comparison.php

    Kommentar


    • #3
      Nun werden beide Städte ausgegeben, aber das Bundesland bleibt noch immer gleich.

      Kommentar


      • #4
        Schalte das Error-Reporting ein und begib dich auf Fehlersuche.
        https://php-de.github.io/jumpto/leitfaden/
        var_dump()

        Selbst hier im Editor wird angezeigt, dass hier was nicht stimmen kann
        PHP-Code:
        $staedte = ["Muenchen, "Hannover"]; 
        Bevor du dich nun wunderst, es sind die fehlenden doppelten Anführungszeichen hinter Muenchen. Es schreibt sich übrigens München, keine Angst vor Sonderzeichen mit UTF8.

        Tataa..
        PHP-Code:
        $staedte = ["München""Hannover"]; 

        Kommentar


        • #5
          Ist zwar redundant und nicht so sauber, aber arbeite mehr mit Arrays.

          Oder noch besser nutze eine Datenbank. Eine Tabelle mit den Bundesländern eine mit den Städten, die über den FK verbunden sind und du kannst zufällig welche ausgeben, suchen, einfach erweitern etc etc.

          PHP-Code:
          $staedte = [
              
          'München''Hannover'
          ];

          $bundeslaender = [
              
          'München'  => 'Bayern',
              
          'Hannover' => 'Niedersachsen'
          ];

          shuffle($staedte);
          echo 
          $staedte[0] . ' in ' $bundeslaender[$staedte[0]];

          // München in Bayern
          oder
          // Hannover in Niedersachsen 
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Was soll denn das werden wenn du mal mehrere Städte hast? Einige hundert if-else-Konstrukte ? Beschäftige dich mal intensiver mit Array's.
            Ein Array wie hausl's $bundesländer reicht aus. Oder gleich ein mehrdimensionales Array das du erweitern kannst:
            PHP-Code:
            $location = [
              [
                
            "city" => "München",
                
            "state" => "Bayern",
              ],
              [
                
            // :
              
            ]
            ]; 

            Kommentar


            • #7
              Mehrdim. Array ist hier wohl die sauberste Lösung, würde ich auch sagen. http://sandbox.onlinephpfunctions.co...e04709f9eeacf5

              PHP-Code:
              $aCities = [

                  
              'Bayern' => [
                      
              'München',
                      
              'Rosenheim',
                      
              'Nürnberg',
                      
              'Augsburg',
                      
              'Ingolstadt'
                  
              ],

                  
              'Niedersachsen' => [
                      
              'Hannover',
                      
              'Braunschweig',
                      
              'Oldenburg',
                      
              'Osnabrück',
                      
              'Wolfsburg'
                  
              ]
              ];

              $county array_rand($aCities);

              $cityKey array_rand($aCities[$county]);
              $city $aCities[$county][$cityKey];

              printf('%s (%s)'$city$county); 
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Ich frage mich ja, was sich die Leute manchmal bei ihren Usernamen denken...
                [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                Kommentar


                • #9
                  Zitat von VPh Beitrag anzeigen
                  Ich frage mich ja, was sich die Leute manchmal bei ihren Usernamen denken...
                  Ich auch!
                  [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

                  Kommentar

                  Lädt...
                  X