Zahlen vergleichen und Ergebniss ausgeben

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

  • Zahlen vergleichen und Ergebniss ausgeben

    Hallo Leutz,

    in einem Formular kann der User in 2 Eingabefelder 2 Zahlen eingeben die per POST an ein Script übermittelt werden. In diesem Script befindet sich folgender Code (Auszug):
    PHP-Code:
    (int)$hoch $this->contents[$products_id]['attributes_values'][12];
    (int)
    $breit $this->contents[$products_id]['attributes_values'][11];
    $product_query tep_db_query("select hoch, breit, products_price, products_tax_class_id from konfirurator_preis where
                                                        breit  <= '" 
    . (int)$breit "'
                                                        and hoch  >= '" 
    . (int)$hoch"' order by breit DESC"); 
    Nun sollen mir aus der DB der richtige Preis und die Tax-Class-Id ausgegeben werden.

    So nun zu meinem Problem: Entsprechen die eingegebenen Zahlen genau den Werten aus der DB funzt alles so wie es soll. Sind die Zahlen aber "krumm" wird gar nichts angezeigt.

    Zum Verständniss:

    Eintrag in DB:
    hoch: 800
    breit: 800
    preis :1
    Eingabe: 800 800
    Anzeige:1 alles supi

    Bei Eingabe von z.B. 854(hoch) 896(breit) erfolgt keine Anzeige und keine Fehlermeldung. Woran liegt das?

    THX schon mal spi

  • #2
    Hallo,

    das wird vermutlich ganz einfach daran liegen, dass du keinen Datensatz hast, für den
    breit <= 896 and hoch >= 854
    zutrifft

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      PHP-Code:
      (int)$hoch $this->contents[$products_id]['attributes_values'][12]; 
      Wofür ist dieser (int) Cast, wenn das Ergebnis doch gar nicht genutzt wird?
      Wir werden alle sterben

      Kommentar


      • #4
        Zitat von AmicaNoctis Beitrag anzeigen
        Hallo,

        das wird vermutlich ganz einfach daran liegen, dass du keinen Datensatz hast, für den
        breit <= 896 and hoch >= 854
        zutrifft

        Gruß,

        Amica
        Ich habe in der DB noch weitere Daten sätze drin, jeweils in 100er Scritten abwärts und aufwärs.Also müßte doch eigendlich die Abfrage ein Ergebniss
        liefern!

        @combie

        Damit wandele ich die mittels POST übermittelten Werte in INTEGER um da sie doch sonst als String behandelt werden oder habe ich da einen Denkfehler?

        Kommentar


        • #5
          Zitat von spi241077 Beitrag anzeigen
          Ich habe in der DB noch weitere Daten sätze drin, jeweils in 100er Scritten abwärts und aufwärs.Also müßte doch eigendlich die Abfrage ein Ergebniss
          liefern!
          Müsste, hätte, wäre wenn ...

          Bitte überprüfe sowas, anstatt irgendwelche Vermutungen anzustellen.

          Query ausgeben lassen, per Copy&Paste in phpMyAdmin o.ä. testen.

          Damit wandele ich die mittels POST übermittelten Werte in INTEGER um da sie doch sonst als String behandelt werden oder habe ich da einen Denkfehler?
          PHP-Code:
          (int)$hoch $this->contents[$products_id]['attributes_values'][12]; 
          Mit dieser Zeile castest du den Wert, den die „Abfrage“ des Inhaltes von $hoch liefert, nach int.
          Der Cast selber ist aber ein Ausdruck, der einen „Rückgabewert“ liefert. Diesen nimmst du aber an der Stelle gar nicht in Empfang, sondern lässt ihn verfallen.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Zitat von spi241077 Beitrag anzeigen
            Ich habe in der DB noch weitere Daten sätze drin, jeweils in 100er Scritten abwärts und aufwärs
            Etwa so hier?:
            ...
            900 / 900
            800 / 800
            700 / 700
            600 / 600
            ...

            Versuch's mal mit einem Datensatz, der die Bedingung erfüllen kann, also z. B. 800 / 900 (Breite / Höhe) oder aber du hast bei der Bedingung Blödsinn gemacht
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              wenn es dabei um Verpackungsgrößen geht, dann müssen beide Vergleiche "größer oder gleich " sein - sonst passt die Ware doch nicht hinein
              [font=Verdana]
              Wer LESEN kann, ist klar im Vorteil!
              [/font]

              Kommentar


              • #8
                Zitat von spi241077 Beitrag anzeigen
                Hallo Leutz,

                PHP-Code:
                (int)$hoch $this->contents[$products_id]['attributes_values'][12];
                (int)
                $breit $this->contents[$products_id]['attributes_values'][11];
                $product_query tep_db_query("select 
                hoch, breit, 
                products_price, 
                products_tax_class_id 
                from konfirurator_preis 
                where
                        breit  <= '" 
                . (int)$breit "'
                and 
                        hoch  >= '" 
                . (int)$hoch"' 
                order by breit DESC"
                ); 
                die abfrage an sich is müll ...

                er kann nur GLEICH oder Breite Kleiner als und Höhe Höher als finden.

                du musst die suchanfrage anders Formulieren und dann ist da noch, was sind breit und hoch für DB felder etwa text? Dann kann das Überhaupt schon mal gar nicht klappen oder warum zwingst du die zahlen wieder in einen string?
                Bitte Beachten.
                Foren-Regeln
                Danke

                Kommentar

                Lädt...
                X