Barcode: Abfrage

Hallo,

ich habe momentan folgende Abfrage integriert:

  
<?php ///Lieferzeit berechnen  
  
if ($product_info['priceCalc1SupplierName'] == "Lieferant1")  
    {$Lieferzeit = '1-2 Wertage' ;}  
else {$Lieferzeit = '2-5 Wertage' ;} ?>

Das klappt 1a. Nun habe ich aber mehrere Lieferanten die nur 1-2 Tage benötigen und wollte dies wie folgt realisieren:

  
<?php ///Lieferzeit berechnen  
  
if ($product_info['priceCalc1SupplierName'] == "Lieferant1" or "Lieferant2" or "Lieferant3")  
    {$Lieferzeit = '1-2 Wertage' ;}  
else {$Lieferzeit = '2-5 Wertage' ;} ?>

Das funktioniert leider überhaupt nicht! So wird bei jedem Lieferant eine Lieferzeit von 1-2 Werktagen gesetzt, auch wenn es Lieferant36 wäre.

Was könnte ich falsch gemacht haben?

Danke und MFG

Barcode

  1. Hi

    <?php ///Lieferzeit berechnen

    if ($product_info['priceCalc1SupplierName'] == "Lieferant1" or "Lieferant2" or "Lieferant3")
        {$Lieferzeit = '1-2 Wertage' ;}
    else {$Lieferzeit = '2-5 Wertage' ;} ?>

      
    Schau einmal genauer hin. Du bist der deutschen Sprache zu mächtig ;) PHP kann zwischen mehreren \*verschiedenen\* Variablen unterscheiden.  
      
    Also müsstest du fragen:  
      
    ist lieferant = lieferant1 oder ist lieferant = lieferant2 oder ist ....  
      
    In Hinblick auf die Zukunft wäre es geschickter, du stellst alle Lieferanten, die eine Lieferzeit von 1-2 Werktagen haben, in ein Array. In deiner Abfrage prüfst du dann ob der Lieferant deines Produkts in eben diesem Array vorhanden ist (Funktion in\_array).  
      
    Liebe Grüße  
    heino
    
    1. Super, ich dank dir!

  2. if ($product_info['priceCalc1SupplierName'] == "Lieferant1" or "Lieferant2" or "Lieferant3")
        {$Lieferzeit = '1-2 Wertage' ;}
    else {$Lieferzeit = '2-5 Wertage' ;} ?>[/code]

    Das funktioniert leider überhaupt nicht! So wird bei jedem Lieferant eine Lieferzeit von 1-2 Werktagen gesetzt, auch wenn es Lieferant36 wäre.

    Was könnte ich falsch gemacht haben?

    if (($product_info['priceCalc1SupplierName'] == "Lieferant1") || () || ()) {

    Grüße, Hans

  3. Hi!

    Schau Dir doch mal das switch statement von php an. Insbesondere das Leerlassen der Befehlsliste eines cases, sollte Dich in diesem Fall interessieren.

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
  4. Hallo,

    Das klappt 1a. Nun habe ich aber mehrere Lieferanten die nur 1-2 Tage benötigen und wollte dies wie folgt realisieren:

    Du könntest es auch mal mit in_array() versuchen, das wäre wahrscheinlich übersichtlicher ...

    Dank und Gruß,
    luti