Meddelande

Minska
No announcement yet.

php Conditionals and operators

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • php Conditionals and operators

    När man tex skriver en if sats så finns det en massa jämförelser som tex "lika med" "lika med eller större än" osv.
    Finns det någon som säger "innehåller"? Jag har letat och letat men hittar inget. Eller finns det något annat sätt man skriver på?
    Jag vill plocka ut meningar med ett speciellt ord i nämligen.

  • #2
    Med funktionen strpos får du ut positionen (från 0) av den sökta strängen inuti en sträng.
    Johan Norberg, webbutvecklare.

    @GitHub

    Läs min blogg

    Kommentera


    • #3
      Men då måste ordet man söker alltid ligga på samma ställe väl?
      Om jag tex har 3 rader
      1/1 Stad
      3/10 Stad
      12/12 Stad
      Och vill ha träff på stad, kan jag använda mig av strpos då?

      Kommentera


      • #4
        Nej, det behöver det inte om du använder strpos(höstack, nål) så returnerar den vilken position första bokstaven i nålen har. Om den inte hittas returnerar den FALSE.

        Så, ja på din sista fråga! :-D
        Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.

        Kommentera


        • #5
          Tänk på att använda
          PHP-kod:
          if (strpos(höstacknål) !== false
          eller
          PHP-kod:
          if (strpos(höstacknål) === false
          Annars kan du missa om din nål ligger i först i höstacken (pos 0).
          http://tumba25.net

          Kommentera


          • #6
            Vad är det för skillnad på !== och === ?
            Sen får jag ett problem. Jag har två olika nålar från samma höstack, och om man väljer 1-5 alternativ med samma nål får jag rätt svar men om man väljer 1-5 alternativ med olika nålar så visas bara höstack 1. Vad kan det bero på?
            Koden ser ut såhär:
            PHP-kod:
            <?php if (strpos($form_data['field']['32'], Östersund) !== false): ?>
                <tr>
                    <td>Utbildningsplats</td>
                    <td>Jämtlands Gymnasium<br>Fyrvallavägen 4<br>831 43 Östersund</td>
                </tr>
            <?php endif; ?>
                <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                </tr>
            <?php if (strpos($form_data['field']['32'], Ljungby) !== false): ?>
                <tr>
                    <td>Utbildningsplats</td>
                    <td>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                </tr>
            <?php endif; ?>

            Kommentera


            • #7
              Wibbskii skrev: Visa inlägg
              Vad är det för skillnad på !== och === ?[/PHP]
              Allt finns i dokumentationen. "a === b" ger TRUE om a och b är av samma typ och har samma värde, "a !== b" ger TRUE om de INTE är av samma typ och/eller har samma värde. Observera att det finns också "==" och "!=", som bara kontrollerar värdet av variabeln.
              Johan Norberg, webbutvecklare.

              @GitHub

              Läs min blogg

              Kommentera


              • #8
                Wibbskii skrev: Visa inlägg
                Vad är det för skillnad på !== och === ?
                Sen får jag ett problem. Jag har två olika nålar från samma höstack, och om man väljer 1-5 alternativ med samma nål får jag rätt svar men om man väljer 1-5 alternativ med olika nålar så visas bara höstack 1. Vad kan det bero på?
                Koden ser ut såhär:
                PHP-kod:
                <?php if (strpos($form_data['field']['32'], Östersund) !== false): ?>
                    <tr>
                        <td>Utbildningsplats</td>
                        <td>Jämtlands Gymnasium<br>Fyrvallavägen 4<br>831 43 Östersund</td>
                    </tr>
                <?php endif; ?>
                    <tr>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                <?php if (strpos($form_data['field']['32'], Ljungby) !== false): ?>
                    <tr>
                        <td>Utbildningsplats</td>
                        <td>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                    </tr>
                <?php endif; ?>
                Ja, den där koden kan nog inte fungera så bra iaf. Du måste till att börja med ha citattecken runt dina strängar. ("Östersund" och "Ljugby")
                Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.

                Kommentera


                • #9
                  prplxr skrev: Visa inlägg
                  Ja, den där koden kan nog inte fungera så bra iaf. Du måste till att börja med ha citattecken runt dina strängar. ("Östersund" och "Ljugby")
                  Jo den fungerar kanon om man väljer antingen Ljungby eller Östersund men inte om man väljer båda.

                  Jag får samma resultat om jag sätter citattecken runt "Östersund" och "Ljungby"

                  Är det någon som vet hur man skall göra för att få med båda när man valt både "Ljungby" och "Östersund"

                  Kommentera


                  • #10
                    Vad innehåller egentligen $form_data['field']['32']?

                    Jag misstänker att det kommer från ett formulär. Är det möjligtvis multipla checkboxar med samma namn som du prövar att fylla i flera? För då är nog inte innehållet det du tror att det är i variabeln. Skriv ut den med var_dump($form_data['field']['32']); så får du se!
                    Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.

                    Kommentera


                    • #11
                      Ja det stämmer att det kommer från ett formulär. Men med alternativknappar. Och jag har tänkt helt fel. Field 32 kan bara ha ett alternativ, men sen har jag field 33,34,35,36,37 och 38 som kan vara antingen Ljungby eller Östersund. Och alla behöver inte vara ifyllda så jag skall sätta en OR mellan istället tror jag?. Alltså att om något av dessa fält innehåller "Östersund" skall ett annat fält skrivas ut.

                      Kommentera


                      • #12
                        Ja, då får du använda or-operatorn (||) och göra jämförelsen på alla strängar. Här tror jag dock att du skulle kunna lösa detta på ett smidigare sätt, men jag vet ju inte hur ditt formulär är uppbyggt.

                        Lite halvrelevant fråga, varför använder du inte standardformateringen på dina if-staser?
                        Avundas aldrig någon det sken av lycka han har för du känner inte hans hemliga sorger.

                        Kommentera


                        • #13
                          prplxr skrev: Visa inlägg
                          Ja, då får du använda or-operatorn (||) och göra jämförelsen på alla strängar. Här tror jag dock att du skulle kunna lösa detta på ett smidigare sätt, men jag vet ju inte hur ditt formulär är uppbyggt.

                          Lite halvrelevant fråga, varför använder du inte standardformateringen på dina if-staser?
                          Jag använder mig av Gravity Forms för att göra formulären. Ja går det att lösa på ett smidigare sätt blir jag glad Vad behöver du veta? Detta kanske kan hjälpa. http://dev.ctc.se/?gf_pdf=1&fid=9&li...ing.php&data=1

                          Anledningen till det är för att jag är en glad nybörjare som försöker lära mig php

                          Kommentera


                          • #14
                            Wibbskii skrev: Visa inlägg
                            Jag använder mig av Gravity Forms för att göra formulären. Ja går det att lösa på ett smidigare sätt blir jag glad Vad behöver du veta? Detta kanske kan hjälpa. http://dev.ctc.se/?gf_pdf=1&fid=9&li...ing.php&data=1
                            Länken ger bara fel, ingen sådan tråd finns?

                            I vilket sammanhang väljs städerna? Är det som olika alternativa svar på samma fråga, eller har du fler olika frågor som har flera städer som möjliga svar?

                            Kommentera


                            • #15
                              Ursäkta för sent svar. Jag löste det på detta sätt.

                              PHP-kod:
                              <?php 
                                  
                              if (strpos($form_data['field']['32'], Ljungby) !== false) {
                                      echo
                                  
                              '<tr>
                                      <td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                                      <td>&nbsp;</td>
                                  </tr>'
                              ;
                                  } elseif (
                              strpos($form_data['field']['33'], Ljungby) !== false) {
                                      echo
                                  
                              '<tr>
                                      <td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                                      <td>&nbsp;</td>
                                  </tr>'
                              ;
                                  } elseif (
                              strpos($form_data['field']['34'], Ljungby) !== false) {
                                      echo
                                  
                              '<tr>
                                      <td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                                      <td>&nbsp;</td>
                                  </tr>'
                              ;
                                  } elseif (
                              strpos($form_data['field']['35'], Ljungby) !== false) {
                                      echo
                                  
                              '<tr>
                                      <td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                                      <td>&nbsp;</td>
                                  </tr>'
                              ;
                                  } elseif (
                              strpos($form_data['field']['36'], Ljungby) !== false) {
                                      echo
                                  
                              '<tr>
                                      <td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                                      <td>&nbsp;</td>
                                  </tr>'
                              ;
                                  } elseif (
                              strpos($form_data['field']['37'], Ljungby) !== false) {
                                      echo
                                  
                              '<tr>
                                      <td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                                      <td>&nbsp;</td>
                                  </tr>'
                              ;
                                  } elseif (
                              strpos($form_data['field']['38'], Ljungby) !== false) {
                                      echo
                                  
                              '<tr>
                                      <td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
                                      <td>&nbsp;</td>
                                  </tr>'
                              ;
                                  } else {
                                      echo
                                  
                              '<tr>
                                      <td><strong>Utbildningsplats Östersund</strong><br>Jämtlands Gymnasium<br>Fyrvallavägen 4<br>831 43 Östersund</td>
                                      <td>&nbsp;</td>
                                  </tr>'
                              ;
                                  }
                               
                              ?>

                              Kommentera

                              Working...
                              X