tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
309
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von darknet
    darknet darknet ist offline Mitglied Silber
    Registriert seit
    Oct 2003
    Beiträge
    52
    Hallo zusammen,

    ich habe das problem das ich in meiner Datenbank für die Sortierug mehere Argumente für die Abfrage zusammenfassen muss.

    hier erst mal den Code

    Suche
    Code :
    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
    
     <?PHP   
    echo "<form name=\"form1\" method=\"GET\" action=\"show_job_boerse.php\">
          <select name=\"berufszweig\" id=\"berufszweig\">
         ";
    $abfrage = "SELECT * FROM berufsfelder ORDER BY berufszweig";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
       {
       $berufszweig = $row->berufszweig;
       if ($berufszweig == $berufszweig_sel)
       {$selected = "selected";}
       echo "
        <option $selected>$berufszweig</option>
       ";
       }
    echo "</select>";
    ?>
        </font></td>
      </tr>
      <tr>
        <td><font size="2">Berufsbezeichnung</font></td>
        <td><font size="2">
          <input name="berufsbez" type="text" id="berufsbez" value="<?PHP echo $berufsbez; ?>" size="25">
        </font></td>
      </tr>
      <tr>
        <td><font size="2">sortiert nach</font></td>
        <td><font size="2">
          <select name="sortiert" id="sortiert">
            <option>---</option>
            <option value="1">neue zuerst</option>
            <option value="2">letzte zuerst</option>
            <option value="3">alphabetisch nach Berufszweig</option>
            <option value="4">alphabetisch nach Berufsbezeichnung</option>
              </select>
        </font>

    Ausgabe
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    //Suchabfrage
    if (!isset($berufsbez) && $berufszweig != "Alle"){$s1 = "WHERE berufszweig = '$berufszweig'"; $test1 = "Fall 1";}
    else if (isset($berufsbez) && $berufszweig == "Alle") {$s1 = "WHERE berufsbez LIKE '%$berufsbez%'"; $test2 = "Fall 2";}
    else if (isset($berufsbez) && $berufszweig != "Alle") {$s1 = "WHERE berufsbez LIKE '%$berufsbez%' AND berufszweig = '$berufszweig'"; $test3 = "Fall 3";}
     
    if ($sortiert == "1") {$s2 = "ORDER BY 'eingetragen_am' DESC";}
    else if ($sortiert == "2") {$s2 = "ORDER BY 'eingetragen_am'";}
    else if ($sortiert == "3") {$s2 = "ORDER BY 'berufszweig'";}
    else if ($sortiert == "4") {$s2 = "ORDER BY 'berufsbez'";}
     
    #testen
    echo "Berzw $berufszweig | Berbez $berufsbez | $sortiert | $s2";
    echo "<br> $test1 $test2 $test3";
     
    //Abfrage des Profils
    $abfrage = "SELECT * FROM stellenangebote $s1 $s2";
    $ergebnis = mysql_query($abfrage);
    $menge = mysql_num_rows($ergebnis);

    nun habe ich allerdings das Problem das die Abfrage zwar halbwegs lauft allerdings der Wert "Fall1" nicht angezeigt wird.

    Kann mir jemand sagen warum das so ist?

    mfg

    Dark
     
    Suum cuique!
    DarkNet-WD

  2. #2
    michel_tr michel_tr ist offline Mitglied Silber
    Registriert seit
    Apr 2005
    Beiträge
    51
    Du solltest diese Zeilen:
    PHP-Code:
    if (!isset($berufsbez) && $berufszweig != "Alle"){$s1 "WHERE berufszweig = '$berufszweig'"$test1 "Fall 1";}
    else if (isset(
    $berufsbez) && $berufszweig == "Alle") {$s1 "WHERE berufsbez LIKE '%$berufsbez%'"$test2 "Fall 2";}
    else if (isset(
    $berufsbez) && $berufszweig != "Alle") {$s1 "WHERE berufsbez LIKE '%$berufsbez%' AND berufszweig = '$berufszweig'"$test3 "Fall 3";} 
    in folgende ändern:
    PHP-Code:
    if (empty($berufsbez) && $berufszweig != "Alle"){$s1 "WHERE berufszweig = '$berufszweig'"$test1 "Fall 1";}
    else if (!empty(
    $berufsbez) && $berufszweig == "Alle") {$s1 "WHERE berufsbez LIKE '%$berufsbez%'"$test2 "Fall 2";}
    else if (!empty(
    $berufsbez) && $berufszweig != "Alle") {$s1 "WHERE berufsbez LIKE '%$berufsbez%' AND berufszweig = '$berufszweig'"$test3 "Fall 3";} 
    So wie ich es sehe, sind jedoch bei den letzten zwei if Abfragen die Bedingung !empty($berufsbez) unnötig!


    Außerdem solltest du besser mit Superglobalen Variablen arbeiten. Also in deinem Beispiel anstatt $berufsbez $_GET['berufsbez'] nehmen.
    Hier der Link ins PHP Handbuch: http://de3.php.net/de/language.variables.predefined
     

  3. #3
    Avatar von darknet
    darknet darknet ist offline Mitglied Silber
    Registriert seit
    Oct 2003
    Beiträge
    52
    Hm, ich werds mal versuchen und sehen wie´s aussieht.

    Danke

    Dark
     
    Suum cuique!
    DarkNet-WD

  4. #4
    Avatar von darknet
    darknet darknet ist offline Mitglied Silber
    Registriert seit
    Oct 2003
    Beiträge
    52
    danke hattest recht mit empty gehts.

    hd Dark
     
    Suum cuique!
    DarkNet-WD

Ähnliche Themen

  1. Abfrage aus 2 Datenbanken
    Von Sven4972 im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 10.08.08, 18:51
  2. Abfrage von 2 Datenbanken ?
    Von starfoxfs im Forum PHP
    Antworten: 6
    Letzter Beitrag: 30.10.07, 13:39
  3. Abfrage von mehreren Datenbanken
    Von Wipeout im Forum PHP
    Antworten: 9
    Letzter Beitrag: 19.05.07, 17:10
  4. Abfrage 2er Datenbanken
    Von Arndtinho im Forum Relationale Datenbanksysteme
    Antworten: 7
    Letzter Beitrag: 15.12.05, 15:07
  5. abfrage aus 2 datenbanken
    Von supersonix im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 04.08.02, 13:46