Probleme bei DB-Tabellenabfrage mehrerer möglicher Variablen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    2.)sind alle felder leer, ist auch $where empty ... also ein if um implode mit der db-abfrage.(?)
    oder ein $where[] = 0, vorausgesetzt, du willst unter der bdingung nix ausgeben ...

    zu 1. wirst du im forum was finden, vielleicht reguläre ausdrücke ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #17
      @ "derHund",

      habe gerade festgestellt, dass bei
      PHP-Code:
      $bla3 trim($_POST['hersteller']);
      if(!empty(
      $bla3))
        
      $where[]=" hersteller = '".$_POST['hersteller']."' "
      auch dass leezeichen vor der suchabfrage (_Schneider) nicht ignoriert wird (trotz "trim-befehl), sondern keine db-ergebnis liefert.

      auch folgendes script
      PHP-Code:
      $bla3 trim($_POST['hersteller']);
      $bla3 str_replace(" ","",$bla3);
      if(!empty(
      $bla3))
        
      $where[]=" hersteller = '".$_POST['hersteller']."' "
      bringt keinen erfolg.
      es wird weder das leerzeichen vor dem suchbegriff, noch
      die leerzeichen zwischen den buchstaben ersetzt.

      _S_c_h_n_e_i_d_e_r

      ????
      gruss
      scarfe
      thx_derHund
      Zuletzt geändert von scarfe; 31.01.2004, 16:20.

      Kommentar


      • #18
        Original geschrieben von scarfe
        es wird weder das leerzeichen vor dem suchbegriff, noch
        die leerzeichen zwischen den buchstaben ersetzt.
        ach, wirds nicht?
        PHP-Code:
        $bla3 "ghds gsdhg hsgdh ";
        echo 
        str_replace (" ","",$bla3); 
        du musst schon überlegen, was du tust ... wenn du $bla bearbeitest und $blubb verwendest .... was soll man dazu sagen?
        Kissolino.com

        Kommentar


        • #19
          oh mein gott, bitte in großen stücken vom himmel fallen lassen...


          das dein code recht sinnfrei ist, weißt du?

          warum verwendest du $_POST['hersteller'] und nicht $bla3?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #20
            bringt keinen erfolg.
            es wird weder das leerzeichen vor dem suchbegriff, noch
            die leerzeichen zwischen den buchstaben ersetzt.
            ich würde fast wetten, daß in bla3 das richtige ergebnis steht ... da du aber in der WHERE immer noch das $_POST verwendest, ...
            EDIT:
            hmm ... langsam, wie immer
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #21
              habe die kritik angenommen und den fehler, nachdem ihr mich mit der nase "draufgestupft" habt, erkannt.
              habe wirklich das eine bearbeitet und das andere verwendet.
              muss sagen habe sehr, sehr wenig ahnung von php und sql.
              aber durch fehler soll man ja am meisten lernen.
              für mich zählt momentan das ziel und nicht der weg.
              vielen dank für eure geduld und hilfe
              @ XAX, derHund und Wurzel und allen anderen.

              habe mein problem wie folgt gelöst:
              PHP-Code:
              <?  // db_ausgabe.php
              include("mysql_connect.php3");
              include("mysql_func.php3");


              $_POST['geraet'] = trim($_POST['geraet']);
              $_POST['geraet'] = str_replace (" ","",$_POST['geraet']);
              if(!empty($_POST['geraet']))
                $where[]=" geraet = '".$_POST['geraet']."' ";

              $_POST['bestellnummer'] = trim($_POST['bestellnummer']);
              $_POST['bestellnummer'] = str_replace (" ","",$_POST['bestellnummer']);
              if(!empty($_POST['bestellnummer']))
                $where[]=" bestellnummer = '".$_POST['bestellnummer']."' ";

              $_POST['hersteller'] = trim($_POST['hersteller']);
              $_POST['hersteller'] = str_replace (" ","",$_POST['hersteller']);
              if(!empty($_POST['hersteller']))
                $where[]=" hersteller = '".$_POST['hersteller']."' ";

              $_POST['modell'] = trim($_POST['modell']);
              $_POST['modell'] = str_replace (" ","",$_POST['modell']);
              if(!empty($_POST['modell']))
                $where[]=" modell = '".$_POST['modell']."' ";

              $_POST['chassis'] = trim($_POST['chassis']);
              $_POST['chassis'] = str_replace (" ","",$_POST['chassis']);
              if(!empty($_POST['chassis']))
                $where[]=" chassis = '".$_POST['chassis']."' ";

              $_POST['name'] = trim($_POST['name']);
              $_POST['name'] = str_replace (" ","",$_POST['name']);
              if(!empty($_POST['name']))
                $where[]=" name = '".$_POST['name']."' ";



              $str_where = ' WHERE ' . implode(" AND ",$where);


              $sql="SELECT geraet, bestellnummer, hersteller, modell, chassis, fehler, loesung, spoint, name, email, datum
                                    FROM $tabelle $str_where";


              If ($res=send_sql($db,$sql))  {
                 echo "<br><br><h1>Die Datenabfrage wurde ausgef&uuml;hrt</h1><br><br>";
              }
              tab_out($res);
              ?>
              ich weiss, dass der code sicherlich nicht schön und elegant gelöst ist, aber ich bin froh ein erfolgserlebnis zu haben.

              bin über jeden weiteren vorschlag diesbezüglich dankbar.

              schönes wochenende
              gruss scarfe

              Kommentar


              • #22
                Ich hatte vor ein paar Tagen auch das Problem, nur mußte ich auch je nach art verschiedene operatoren einbauen. habe es wie folgt gelöst:

                PHP-Code:
                <?php
                    
                //postvars auslesen,überprüfen
                    
                    
                $tr "=";
                    
                $ts "<>";
                    
                $parr $_POST;
                    
                array_pop ($parr);
                    foreach (
                $parr as $var)
                    {
                        
                $i ++;
                        if(!empty(
                $var))
                        {
                            switch (
                key($parr))
                            {
                                case 
                'bildurl':
                                    
                $str key($parr).$ts."'".$var."' AND ";
                                    break;
                                case 
                'usersession':
                                    
                $str key($parr).$ts."'".$var."' AND ";
                                    break;
                                case 
                'aler':
                                    
                $str key($parr)." ".$var." ";
                                    break;
                                case 
                'alterbis':
                                    
                $str " ".$var." AND ";
                                    break;
                                default:
                                    
                $str key($parr).$tr."'".$var."' AND ";
                                    break;
                            }            
                            
                $where[$i] = $str;
                        }
                        
                next($parr);
                    }
                    foreach(
                $where AS $a$string .= $a;
                        
                $l=strlen ($string);
                        
                $max $l-4;
                        
                $where_str substr($string0$max);
                        
                $wherestr ' WHERE ' $where_str;
                            
                    
                //abfrage
                    
                $sqluser "SELECT * FROM flirt $wherestr"
                    
                $userdet mysql_query($sqluser$connect);
                    
                //echo "suchstring: $sqluser"; ** query überprüfen
                    //** nur eine testausgabe / unformatiert
                    
                while ($kon=mysql_fetch_array ($userdet))
                            {
                                echo 
                "<br>$kon[name]";
                                echo 
                "<img src=\"$kon[bildurl]\">";
                            }

                ?>
                vielleicht sieht hier irgend ein crack noch ansätze zum verbessern, funktioniert jedenfalls tadellos, muß das ganze nur noch in eine Kontrollschleife packen (falls formular leer)

                hoffe geholfen zu haben

                Kommentar

                Lädt...
                X