| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

04-12-2010, 08:01
|
|
spi241077
Registrierter Benutzer
|
|
Registriert seit: Dec 2010
Beiträge: 2
|
|
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
|

04-12-2010, 10:31
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
das wird vermutlich ganz einfach daran liegen, dass du keinen Datensatz hast, für den
breit <= 896 and hoch >= 854
zutrifft
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

04-12-2010, 11:03
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Zitat:
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?
|

04-12-2010, 12:32
|
|
spi241077
Registrierter Benutzer
|
|
Registriert seit: Dec 2010
Beiträge: 2
|
|
Zitat:
Zitat von AmicaNoctis
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?
|

04-12-2010, 12:36
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von spi241077
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.
Zitat:
|
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.
|

04-12-2010, 13:13
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von spi241077
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
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

06-12-2010, 15:44
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
wenn es dabei um Verpackungsgrößen geht, dann müssen beide Vergleiche "größer oder gleich " sein - sonst passt die Ware doch nicht hinein
__________________
Wer LESEN kann, ist klar im Vorteil!
|

07-12-2010, 08:09
|
|
Wyveres
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
|
|
Zitat:
Zitat von spi241077
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?
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|