Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 13.04.2003, 23:01   #1
TP-Member
 
Registriert seit: Jun 2001
Ort: NÖ/Austria
Hasibit macht alles soweit korrekt

mysql abfrage


hi!

hab eine ziemlich komplexe (glaub ich halt) sql-abfrage vor und könnt ihr mir vielleicht dabei helfen:

habe folgende tabs:

user:
===================
user_id
user_kuenstlername
user_anrede
user_vorname
user_name
user_strasse
user_plz
user_ort
user_land
user_bundesland
user_telefon
user_fax
user_mobil
user_email
user_passwort
===================

details:
===================
details_userid
details_beschreibung
details_besetzung
details_preis
details_homepage
details_newsletter
===================

musikrichtungen:
===================
mr_userid
mr_richtung
===================

veranstaltungsarten:
===================
va_userid
va_art
===================

termine:
===================
termine_id
termine_userid
termine_name
termine_ort
termine_datum
===================

nun benötige ich eine abfrage, die folgendes einschränkt nach einer suchmaske.
der user soll in einem formular folgendes suchen können:
nach:

termine_datum
va_art
user_land
user_bundesland
mr_richtung
detilas_preis

ausgeben sollte dann user_kunestlername, user_land, details_preis werden!

bitte um hilfe!

gute nacht
hasibit
Hasibit ist offline   Mit Zitat antworten


Alt 14.04.2003, 09:44   #2
QCO
TP-Senior
 
Registriert seit: Mar 2003
Ort: Leipzig
QCO macht alles soweit korrekt
Vorschläge zum Lesen:
http://ffm.junetz.de/members/reeg/DS...00000000000000
http://www.little-idiot.de/mysql/mysql-118.html

Vorschlag für dein Script (bin mir nicht sicher, nicht getestet, alle Angaben wie immer ohne Schießeisen)

PHP-Code:
<?php
$sql 
"SELECT user_kunestlername, user_land, details_preis 
    FROM user AS u, details AS d, musikrichtungen AS m, veranstaltungsarten AS v, termine AS t 
    WHERE u.user_id=d.details_userid AND u.user_id=m.mr_userid AND u.user_id=v.va_userid AND u.user_id=t.termine_userid"
;
// jetzt hängen wir noch die kriterien an, die der benutzer in die suchmaske eingegeben hat
$sql .= isset($_POST['termine_datum']) ? ' AND t.termine_datum=\''.$_POST['termine_datum'].'\'' '';
$sql .= isset($_POST['va_art']) ? ' AND v.va_art=\''.$_POST['va_art'].'\'' '';
$sql .= isset($_POST['user_land']) ? ' AND u.user_land=\''.$_POST['user_land'].'\'' '';
$sql .= isset($_POST['user_bundesland']) ? ' AND u.user_bundesland=\''.$_POST['user_bundesland'].'\'' '';
$sql .= isset($_POST['mr_richtung']) ? ' AND m.mr_richtung=\''.$_POST['mr_richtung'].'\'' '';
$sql .= isset($_POST['details_preis']) ? ' AND d.details_preis<'.$_POST['details_preis'] : ''// ich nehme mal an, das der benutzer einen maximalpreis angeben soll

if(! $result mysql_query($sql) )
{
    echo 
"Fehler in der Suchabfrage...<br />".$sql;
    die;
}

while( 
$row mysql_fetch_array($result) )
{
    
// hier dann halt die ausgabe, dass musst du selbst formatieren
    
echo "Künstler: " $row['user_kunestlername'] . "<br />";
    echo 
"Land: " $row['user_land'] . "<br />";
    echo 
"Preis: " $row['details_preis'] . "<br /><br />";
}
wenn ich das prinzip des joins richtig verstanden habe, wäre ein join an dieser stelle deutlich effizienter. ich kann ihn aber nicht formulieren. kann mir da jemand helfen?
__________________
[httpsmog]
"I have not failed. I've just found 10,000 ways that won't work." - Thomas Alva Edison (1847-1931)

Geändert von QCO (14.04.2003 um 12:39 Uhr).
QCO ist offline   Mit Zitat antworten
Alt 14.04.2003, 12:16   #3
TP-Member
 
Registriert seit: Jun 2001
Ort: NÖ/Austria
Hasibit macht alles soweit korrekt
hat mir schon sehr geholfen, danke!

ein frage noch: will alle kuenstler die >keinen< termin zum gesuchten datum eingetragen haben???

mfg hasibit
Hasibit ist offline   Mit Zitat antworten
Alt 14.04.2003, 15:44   #4
TP-Member
 
Registriert seit: Jun 2001
Ort: NÖ/Austria
Hasibit macht alles soweit korrekt
hab bisher das jetzt:
funktioniert eigentlich im großen und ganzen, doch ich will jetzt nur die,
die keinen termin am gesuchten datum eingetragen haben? wie frag ich das ab?
funktioniert mit <> nicht?? wie muss ich das anders machen??

PHP-Code:
        $sql "SELECT user_kuenstlername, user_land, details_preis
                FROM user AS u, details AS d, musikrichtungen AS m, veranstaltungsarten AS v, termine AS t
                WHERE u.user_id=d.details_userid AND u.user_id=m.mr_userid AND u.user_id=v.va_userid 
                AND u.user_id=t.termine_userid"
;
        
        
$sql .= " AND t.termine_datum <> \"$datum_new\"";
        
        if(
$land != "Alle"){
           
$sql .= " AND u.user_land=\"$land\"";    
        }
        if(
$bundesland != "Alle"){
          if(
$land != "Andere"){
            
$sql .= " AND u.user_bundesland=\"$bundesland\"";
          }
        }
        
        if(
$preis == "0" || $preis == "6001"){
          
$sql .= " AND d.details_preis >= \"$preis\"";
        }
        else{
          
$sql .= " AND d.details_preis <= \"$preis\"";
        }
          
        if (isset(
$va)) {
                  
reset($va);
                  foreach (
$va as $k => $value) {
                     
$sql .= " AND v.va_art = \"$value\"";
                  }
        }
        
        if (isset(
$mr)) {
                  
reset($mr);
                  foreach (
$mr as $k => $value) {
                     
$sql .= " AND m.mr_richtung = \"$value\"";
                  }
        }
    
        
$sql .= " GROUP BY user_kuenstlername";
        echo 
$sql;
        
$result mysql_query($sql);
        echo
"<br><br>";
        while( 
$row mysql_fetch_array($result) )
        {
               echo 
"Künstler: " $row['user_kuenstlername'] . "<br />";
            echo 
"Land: " $row['user_land'] . "<br />";
            echo 
"Preis: " $row['details_preis'] . "<br /><br />";
        }
        
$num mysql_affected_rows();
        echo 
$num
Hasibit ist offline   Mit Zitat antworten
Alt 15.04.2003, 22:20   #5
TP-Member
 
Registriert seit: Jun 2001
Ort: NÖ/Austria
Hasibit macht alles soweit korrekt
kann mir denn keiner helfen?
brauche das bald!
grüsse
Hasibit ist offline   Mit Zitat antworten
Alt 15.04.2003, 23:33   #6
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
woher aus nö bist denn?
prefix ist offline   Mit Zitat antworten
Alt 15.04.2003, 23:34   #7
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
$sql .= " AND t.termine_datum = '0000-00-00';

denn das steht standardmäßig in einem datumsfeld drin, wenn es in mysql leer ist :-)
prefix ist offline   Mit Zitat antworten
Alt 16.04.2003, 12:13   #8
TP-Member
 
Registriert seit: Jun 2001
Ort: NÖ/Austria
Hasibit macht alles soweit korrekt
hallo kollege!

bin aus dem wunderschönen wald4tel!

nein ich glaub, das kann nicht funken!

nur ein kleines bsp:

eingetragene termine:

1
99999
zeltfest
wien
2003-06-01

2
100000
stadtfest
linz
2003-06-02

3
99999
hochzeit
salzburg
2003-06-02

jetzt suche ich alle user (bands) die am 2003-06-01 keinen termin eingetragen haben, also muss
dann die band mit der user-id 100000 ausgegeben werden?

grüsse hasibit
Hasibit ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
mysql abfrage mysql abfrage
« Frage zu "Foxserv" | ein php Script parsen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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


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

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67