php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 24-06-2002, 23:06
tsoP ehcstueD
 Newbie
Links : Onlinestatus : tsoP ehcstueD ist offline
Registriert seit: Jun 2002
Beiträge: 28
tsoP ehcstueD ist zur Zeit noch ein unbeschriebenes Blatt
Question SELECT * FROM msw_$jahr WHERE AND AND AND...etc :) Prob!

i hope ihr könnt bei meinem problem helfen..

So...ich habe eine sehr umfangreiche Datenbankabfrage geplant, wo man nach allen möglichen kriterien(bereichen) sich daten anzeigen lassen kann!

da habe ich ein option select feld...bzw. 4
das erste für Tmin
zweite für Tmax
dritte für rr
vierte für snow

nun will ich ja nicht tausend zeilen schreiben und dachte mir das ich das mit "Where" und dann den "AND" verknüpfungen auslesen kann...


if($Tmin != ""){$Tminn = "Tmin < $Tmin";}else{$Tminn = "Tmin";}
if($Tmax != ""){$Tmaxx = "Tmax < $Tmax";}else{$Tmaxx = "Tmax";}
if($rr != ""){$rrr = "rr < $rr";}else{$rrr = "rr";}
if($snow != ""){$snoww = "snow < $snow";}else{$snoww = "snow";}

$abfrage = "SELECT * FROM msw_$jahr WHERE $Tminn AND $Tmaxx AND $rrr AND $snoww $sort";


geht soweit wunderbar..wenn ich in allen 4 option select feldern was ausgewählt habe...wenn ich aber dort nichts ausgewählt habe gibt es nur schei*e...keine fehlermeldung..aber falsche datenbereiche...


beispiel:
ich habe für tmin = -5, für tmax = 5, und die restlichen leer...

dann lautet der code volsltändig ja...

SELECT * FROM msw_2002WHERE Tmin < -5.0 AND Tmax < 5.0 AND rr AND snow ORDER BY bla bla bla...

blöder weise zeigt er mir jetzt nur werte an die erstens Tmin unter -5 haben, Tmax unter 5 haben UND wo in rr etwas vorhanden ist und in snow etwas vorhanden ist...
problem: es gibt auch tage mit tmin unter -5, tmax unter 5 und ohne rr und ohne snow...:/

mir fällt aber nicht ein wie ich das anders schreiben könnte.
ich muß ja die AND's machen...kann die ja nicht bei $Tminn etc einsetzen da ich ja nicht weiß welches das erste sein wird, dort müßte dann ja "Where" stehen...

ich hatte auch schon versucht statt wenn nix ausgewählt wird bei z.b. snow, statt "snow"..nichts ausgeben zu lassen...aber dann meckert er wegen den vielen "And's"...

vollständiger code:
<?
if($Tmin != ""){$Tminn = "Tmin < $Tmin";}else{$Tminn = "Tmin";}
if($Tmax != ""){$Tmaxx = "Tmax < $Tmax";}else{$Tmaxx = "Tmax";}
if($rr != ""){$rrr = "rr < $rr";}else{$rrr = "rr";}
if($snow != ""){$snoww = "snow < $snow";}else{$snoww = "snow";}

$abfrage = "SELECT * FROM msw_$jahr WHERE $Tminn AND $Tmaxx AND $rrr AND $snoww $sort";
$ergebnis = mysql_query($abfrage);
$row = mysql_num_rows($ergebnis);

while($row = mysql_fetch_object($ergebnis))
{
$mittel = ($row->Tmax + $row->Tmin) / 2;
echo "<tr align=\"center\"><td>";
echo "$row->tag.$row->monat.$jahr";
echo "</td><td>";
echo(sprintf ("%01.1f°C", $row->Tmin));
echo"</td><td>";
echo(sprintf ("%01.1f°C", $row->Tmax));
echo"</td><td>";echo(sprintf ("%01.1f°C", $mittel));echo"</td><td>";
if($row->rr != "0.0"){echo(sprintf ("%01.1f l/m²", $row->rr));}
echo"</td><td>";
if($row->snow != "0.0"){echo(sprintf ("%01.1f cm", $row->snow));}
echo"</td></tr>";
}
echo "</table>";

?>


ich hoffe ihr könnt mir helfen. oder geht das gar nicht?
muß ich mir die arbeit machen und die mehreren möglichkeiten ausschreiben. ich hoffe nicht, da es noch 6 andere kriterien gibt..:/

vielen dank im vorraus
te
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 25-06-2002, 11:08
Carsten Henkelmann
 Junior Member
Links : Onlinestatus : Carsten Henkelmann ist offline
Registriert seit: Mar 2002
Beiträge: 56
Carsten Henkelmann ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich hoffe, dass ich Dein Problem jetzt richtig verstanden habe, ich würde es so machen:

$abfrage = "SELECT * FROM msw_$jahr WHERE ";

if ( $Tmin != "" ) {
$abfrage .= "Tmin < $Tmin";
if ( $Tmax != "" || $rr != "" || $snow != "" ) { $abfrage .= " AND "; }
}

if ( $Tmax != "" ) {
$abfrage .= "Tmax < $Tmax";
if ( $rr != "" || $snow != "" ) { $abfrage .= " AND "; }

if ( $rr != "" ) {
$abfrage .= "rr < $rr";
if ( $snow != "" ) { $abfrage .= " AND "; }
}

if ( $snow != "" ) {
$abfrage .= "snow < $snow";
}

$abfrage .= " $sort";


Sollten es mal mehr Variablen werden, wird es natürlich etwas unübersichtlicher.


Carsten
Mit Zitat antworten
  #3 (permalink)  
Alt 27-06-2002, 17:58
tsoP ehcstueD
 Newbie
Links : Onlinestatus : tsoP ehcstueD ist offline
Registriert seit: Jun 2002
Beiträge: 28
tsoP ehcstueD ist zur Zeit noch ein unbeschriebenes Blatt
Standard error

habs damit versucht aber irgendwas stimmt da nicht

der gibt mir jetzt nen fehler an der schliessenden "?>" des gesamten codes.

bis jetzt bin i noch net darauf gekommen wieso?!?!


aber trotzdem danke.
dachte eigentlich das geht auch einfacher...

gruß
Mit Zitat antworten
  #4 (permalink)  
Alt 27-06-2002, 18:06
tsoP ehcstueD
 Newbie
Links : Onlinestatus : tsoP ehcstueD ist offline
Registriert seit: Jun 2002
Beiträge: 28
tsoP ehcstueD ist zur Zeit noch ein unbeschriebenes Blatt
Standard

alles o.k.

fehler gefunden.

es fehlte ne klammer...also diese teile da...wie nennt man die eigentlich?!?!

danke
Mit Zitat antworten
  #5 (permalink)  
Alt 27-06-2002, 20:01
Toxical
 Junior Member
Links : Onlinestatus : Toxical ist offline
Registriert seit: Mar 2002
Ort: Bayern / Bad Neustadt
Beiträge: 218
Toxical ist zur Zeit noch ein unbeschriebenes Blatt
Toxical eine Nachricht über ICQ schicken
Standard

Wie nennt man was?
Klammern nennt man Klammern.*gg*
__________________
ich bin Toxical, und werd es auch bleiben
Mit Zitat antworten
  #6 (permalink)  
Alt 27-06-2002, 20:47
tsoP ehcstueD
 Newbie
Links : Onlinestatus : tsoP ehcstueD ist offline
Registriert seit: Jun 2002
Beiträge: 28
tsoP ehcstueD ist zur Zeit noch ein unbeschriebenes Blatt
Standard

*lol*

ja...na aber die nennt man ja anders....als die normalen () klammern....

} geschweifte?

na wurscht...
Mit Zitat antworten
  #7 (permalink)  
Alt 29-06-2002, 20:28
Titus
 PHP Master
Links : Onlinestatus : Titus ist offline
Registriert seit: Jan 2001
Ort: im Rodgau
Beiträge: 4.292
Titus ist zur Zeit noch ein unbeschriebenes Blatt
Lightbulb Englisch für Forgelaufene

(Klammern) parentheses
[eckige Klammern] brackets
{geschweifte Klammern} braces
__________________
mein Sport: mein Frühstück: meine Arbeit:

Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
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.

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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:38 Uhr.