php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.04.2006, 13:32  
Neuer Benutzer
 
Registriert seit: 05.04.2006
Beiträge: 3
connyas
Standard Problem mit IF in MySQL-Query

Moin moin,

ich hätte da gerne mal eine Query an der ich fast am verzweifeln bin

Gegeben ist eine Anzahl von X Immobilienanzeigen, diese möchte ich Filtern nach MAX-Kosten und MIN-Kosten.

Das Problem liegt darin, dass es verschiedene Möglichkeiten geben kann.

Ich mache jetzt nur mal MAX-Kosten, wenn ich den auf die Reihe bekomme, sollten die anderen Möglichkeiten einfacher werden (Hoffentlich)

Es gibt die Felder:

- Nettokaltmiete
- Warmmiete

Es bestehen die Möglichkeiten

- keines der Felder hat einen Wert (das währe => auf Anfrage)
- nur eines der 2 Felder hat einen Wert
- beide Felder haben einen Wert

Anforderung (bei der Anfrage nach MAX-Kosten)

- beide Felder haben keinen Wert => TRUE
- nur Warmmiete hat einen Wert && dieser ist <= $max
- nur Nettokaltmiete hat einen Wert ?? dieser ist <= $max
- beide Felder haben einen Wert. Sind beide <= $max, wenn Ja, welcher

Entweder ich denke um zu viele Ecken und es ist eigentlich ganz Simpel, oder die Sache ist ne Nummer zu hoch für mich

Mein bisheriger Lösungsansatz:

PHP-Code:
$sql "
SELECT .........
WHERE .........
AND (
    IF ( ( t2.warmmiete = 0 AND t2.nettokaltmiete = 0), 1,
        IF ( ( ( t2.warmmiete >0 AND t2.warmmiete <= '"
.$this->max_preis."' ) AND t2.nettokaltmiete < t2.warmmiete ), 1,
            IF ( ( t2.nettokaltmiete > 0 AND t2.nettokaltmiete <= '"
.$this->max_preis."' ), 1, 0 )
        )
    )
)
"

Kann mir da evtl. mal jemand auf die Sprünge helfen

THX Conny
connyas ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.04.2006, 14:23  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Machs IF weg und daraus ganz normale WHERE-Anfragen...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 05.04.2006, 14:59  
Neuer Benutzer
 
Registriert seit: 05.04.2006
Beiträge: 3
connyas
Standard

OK, wieder mal viel zu koplizierte Hirnströme gehabt

Also 2 von 3 Abfragen funktionieren jetzt:

1. Größer $min
PHP-Code:
<?php
$sql 
"
SELECT .....
WHERE ....
AND (
  (t2.warmmiete > '"
.($this->min_preis-1)."') OR (t2.nettokaltmiete > '".($this->min_preis-1)."')
)
"
;

?>
2. Größer $min und kleiner $max
PHP-Code:
<?php
$sql 
"
SELECT .....
WHERE ....
AND (
  (t2.warmmiete BETWEEN '"
.($this->min_preis-1)."' AND '".($this->max_preis+1)."') OR (t2.nettokaltmiete BETWEEN '".($this->min_preis-1)."' AND '".($this->max_preis+1)."')
)
"
;

?>
Der 3. klappt noch nicht so wie ich will
kleiner $max
PHP-Code:
<?php
$sql 
"
SELECT .....
WHERE ....
AND (
  (t2.warmmiete < '"
.($this->max_preis+1)."') AND (t2.nettokaltmiete < '".($this->max_preis+1)."')
)
"
;

?>
Hier zeigt er zwar brav die Ergebnisse an die kleiner $max sind, aber die Datensätze ohne Wert "0.00" (Dezimalfeld) zeigt er nicht.
Wo is jetz noch der kleine Haken ??

Schonmal Danke für die Antwort
connyas ist offline   Mit Zitat antworten
Alt 05.04.2006, 15:43  
Neuer Benutzer
 
Registriert seit: 05.04.2006
Beiträge: 3
connyas
Standard

OK, auch diese Hürde währe genommen

Schon wieder ein Denkfehler

In der Tabelle "kosten" werden ja gar keine Datensätze geführt, zu denen nicht min. 1 Angabe gemacht worden ist.
(Außer den 2 Feldern "warmmiete" und "nettokaltmiete" gibt es noch ca. 15 andere Felder, die aber für den Filter nicht relevant sind)

So gehts nun:
PHP-Code:
<?php
$sql 
"
SELECT .....
WHERE ....
AND (
  (t2.anz_id IS NULL) OR ((t2.warmmiete < '"
.($this->max_preis+1)."') AND (t2.nettokaltmiete < '".($this->max_preis+1)."'))
)
"
;
?>
connyas ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
MySQL Query Browser c01001 Datenbanken 6 14.01.2006 22:13
[Erledigt] Problem mit Sonderzeichen PHP -&gt; MySQL -&gt; HTML PHP Tipps 2007 18 07.12.2005 15:23
[Erledigt] Problem beim verbindungsaufbau zum Mysql Server Datenbanken 9 27.10.2005 11:27
Lost connection to MySQL server during query in ... ? Alpha Centauri Datenbanken 0 24.10.2005 11:09
MySQL Problem b++ PHP Tipps 2005-2 3 20.09.2005 17:53
MySQL &amp;amp; PHP: Problem mit Password() Datenbanken 10 19.09.2005 11:00
verschiedene Query Ergebnisse in MySQL 4.0.x und 4.1.x Datenbanken 3 18.09.2005 15:57
[Erledigt] Mysql + PHP und Datum Problem Datenbanken 11 31.08.2005 12:08
mysql_query meldet Fehler, MySQL Query Browser nicht Datenbanken 3 04.05.2005 17:15
MYSQL root login und logging Problem Datenbanken 2 16.03.2005 08:41
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
Problem: MySQL Query funktioniert nicht. Wieso? PHP Tipps 2004-2 3 24.12.2004 13:58
mit mysql und php eine datenbank erstellen? Großes Problem PHP Tipps 2004-2 1 16.12.2004 14:53
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql if kleiner, if in query, mysql abfrage mit max, if where mysql, if bei mysql abfrage, mysql if datenbankfeld kleiner als, if abfrage in mysql query größer kleiner, php if in mysql statement, php sql if, \php in mysql query\, mysql max von zwei feldern, mysql php \in mysql query\, mysql query browser where größer kleiner, mysql query where if, php if mysql kleiner, query mit if, if mysql wert kleiner

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.