einfache IF Abfrage in MySQL

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

  • einfache IF Abfrage in MySQL

    Hallo Zusammen,
    ich bin ein absoluter PHP einsteiger

    Heute wollte mich mal eine kleine Abfrage erstellen, aber bereits daran scheitere ich:

    PHP-Code:

    <?php
    // Abfrage ob es sich um A oder B Produkt handelt
     
    $model=tep_db_query("SELECT `model` FROM `zeiten` WHERE `model` like '%0815%'");
        if (
    $model="TEST0815")
        {
    echo 
    'Es handel sich um das Testprodukt 0815';
        }
      else
        {
    echo 
    'Es ist ein anderes Produkt';
        }
      
    ?>
    Die Zeile "model" ist in der Tabelle "zeiten"

    Es wäre genial wenn ihr mir da einen heißen Tipp geben könntet.

  • #2
    Re: einfache IF Abfrage in MySQL

    Was ist tep_db_query für eine Funktion?

    Wenn man annimmt, dass sie ähnlich arbeitet wie bspw. mysql_query - dann ist es reichlich unsinnig anzunehmen, der Rückgabewert dieser Funktion wäre bereits ein Spalteninhalt.

    PHP-Code:
    if ($model="TEST0815"
    Und über den Unterschied zwischen dem Vergleichs- und dem Zuweisungsoperator solltest du auch noch mal nachdenken.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Mhh. danke für die schnelle Antowort.
      Ich habe mir diese Abfrage nur so gebaut.

      Meine letzten Programmierungstätigkeiten hatte ich bei Q-BASIC und GFA-BASIC, dort hätte ich eine solche Abfrage leicht hinbekommen )

      PHP-Code:
      <?php
      // Abfrage ob es sich um ein Abendseminar handelt und dann Anzeige der Folgetermine.
        
      $model=mysql_query("SELECT * FROM `zeiten` WHERE `model`");
          if (
      $model="TEST0815-100")
          {
      echo 
      'Es handel sich um das Testprodukt 0815';
          }
        else
          {
      echo 
      'Es ist ein anderes Produkt';
          }
        
      ?>
      Das ganze ist aus osCommerce, wenn der Kunde jetzt das Produkt aufruft soll meine Abfrage anhand der Modelnummer prüfen (Wenn die Modelnummer "TEST" enthält), ob das ausgewählte Produkt A oder B ist und dann den entsprechenden Text ausgeben.

      Später soll diese Abfrage noch weiter genutzt werden, aber ich muss erstmal diese doofe Abfrage hinbekommen und wie Du siehst scheitert es bereits daran.

      Kommentar


      • #4
        So ich habe es jetzt gelöst. Allerdings versuche ich nun mit verschiedenen Operatoren zu experimentieren.

        Denn ich möchte gerne eine if Abfrage nach dem Schema "Wenn die Artikelnummer *0815 enhält" > dann

        Irgendwie schaffe ich das nicht.
        Ich habe bereits % und ~ beides aber ohne erfolg und ohne Fehlermeldung.

        Kann mir da einer nochmal bitte einen Tipp geben. Hab schon gegoogelt aber ich weiß nicht so richtig nach was ich suchen soll, es scheint so als ob es diesen Fall gar nicht gibt.

        Kommentar


        • #5
          Mmmh. Setz dich lieber mal mit ein paar Basics auseinander.. Das was du da versuchst wird SO nicht funktionieren. Weder mit OSC noch mit einer einfachen DB Abfrage...

          SELECT <was> from <wo> WHERE <bedingung>

          Du hast als Bedingung z.B model angegeben...

          Für OSC kannst du mal folgendes versuchen..

          PHP-Code:
          $res tep_db_query("select * from products where products_name = 'Name'");

          $row tep_db_fetch_array($res);

          echo 
          $row['products_description']; 
          Das sollte dir für das Produkt name, die Beschreibung ausgeben

          Ein if mit einem * oder ähnlichem funktioniert nicht. Entweder filterst du direkt mit SQL

          SELECT * FROM products WHERE <feld> LIKE "%0815%"

          Oder du siehst dir
          DAS mal an
          Zuletzt geändert von hhcm; 14.06.2006, 09:13.
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #6
            Hi, danke für die Antwort!

            Da habe ich vergessen meinen neuen Code einzustellen. Der erste Code war natürlich quatsch und kann so nicht funktionieren, hab ich dann auch gemerkt

            PHP-Code:
            <?php
            // Abfrage nach der Produktnummer
             
            if ($product_info['products_model']=='0815')
                {
            echo 
            'Es handel sich um das Testprodukt 0815';
                }
              else
                {
            echo 
            'Es ist ein anderes Produkt';
                }
              
            ?>
            Das funktioniert wunderbar, allerdings nur wenn die Produktnummer "=0815" ist ich möchte aber gerne das die Meldung kommt, sobald die Produktnummer irgendwo "0815" enthält.

            Kommentar


            • #7
              Original geschrieben von it-adviser
              Das funktioniert wunderbar, allerdings nur wenn die Produktnummer "=0815" ist ich möchte aber gerne das die Meldung kommt, sobald die Produktnummer irgendwo "0815" enthält.
              Wenn du das in PHP lösen willst, schau dich bei den Stringfunktionen um.

              Bereits MySQL-seitig ginge es mit dem schon erwähnten Wildcard-Zeichen % in Verbindung mit LIKE.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                PHP-Code:
                if (strpos($product_info['products_model'], '0815') !== false)
                {
                    echo 
                'Es handel sich um das Testprodukt 0815';
                }
                else
                {
                    echo 
                'Es ist ein anderes Produkt';

                Sowas?
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #9
                  @hhcm

                  Tausend Dank!

                  Genau das habe ich gesucht.

                  Kommentar

                  Lädt...
                  X