Ergebnis 1 bis 4 von 4

Thema: Probleme mit Suchformular

  1. #1
    TP-Newbie
    Registriert seit
    Dec 2011
    Beiträge
    3

    Probleme mit Suchformular

    Hallo liebes Forum,

    ich bin hier ganz neu und auch in Sachen php erst seit kurzem unterwegs. Also bitte nicht gleich mit Steinen schmeißen, wenn ich auf anhieb was nicht verstehe oder mich begriffstutzig anstelle

    Ich habe auf allen Seiten einer Website ein Suchformular mittels include eingebunden.

    Die Suchbegriffe werden aus einer Datenbank generiert.

    Der submit senden die Daten mittels POST an die entsprechende Ergebnissdatei.

    Die Datei beinhaltet eine Blätterfunktion. Beim Absenden der Daten sind die Ergebisse soweit OK.

    Doch sobald ich in die Blätterfunktion wähle, verliert er die POST Daten und das Ergebnis ist Falsch.

    Dementsprechende Fehlermeldungen werden ausgeworfen.

    Was muss ich beachten, damit er mir das gewünschte Ergebnis anzeigt?

    Hier mal die Suchfunktion:

    HTML-Code:
    <form name="submit_form" action="angebote_suche.php" method="POST">
    								
    <div class="rechtstopic">Schnellsuche</div>
    
    <div class="suchdata">Objekttyp:</div>
    <div class="suchdata">	
    		<select name="search_values[1]" style="border: 1px solid rgb(194, 9, 7);" class="auswahl_schnellsuche">
    		<option></option>
    		<?php
    				
    		$typabfrage = "SELECT DISTINCT objekttyp FROM objekte WHERE zustand='aktiv'";
    		$typergebnis = mysql_query($typabfrage);
    		while($row = mysql_fetch_assoc($typergebnis))
    		{
    		$typ = $row['objekttyp'];
    		echo  "<option>$typ</option>";
    		}
       		 
    		?>
    		</select>
    </div>
    
    <div class="suchdata">Ort:</div>
    <div class="suchdata">	
    		<select name="search_values[2]" class="auswahl_schnellsuche">
    		<option></option>
            <?php
    		$ortabfrage = "SELECT DISTINCT ort FROM objekte WHERE zustand='aktiv'";
    		$ortergebnis = mysql_query($ortabfrage);
    		while($row = mysql_fetch_assoc($ortergebnis))
    		{
    		$ort = $row['ort'];
    		echo  "<option>$ort</option>";
    		}
    		?>
    		</select>
    </div>
    
    <div class="suchdata">Regionaler Zusatz:</div>
    <div class="suchdata">	
       <select name="search_values[3]" style="border: 1px solid rgb(194, 9, 7);" class="auswahl_schnellsuche">
    	<option></option>
        <?php
    	$regzabfrage = "SELECT DISTINCT regzusatz FROM objekte WHERE zustand='aktiv'";
    	$regzergebnis = mysql_query($regzabfrage);
    	while($row = mysql_fetch_assoc($regzergebnis))
    	{
    	$regz = $row['regzusatz'];
    	echo  "<option>$regz</option>";
    	}
    	?>
    	</select>
    </div>
    
    <div class="suchdata">Preise:</div>
    <div class="suchdata">	
    
    		<select name="kaufpreis" id="kaufpreis" onchange="kaufpreisSwitch(this.value);" class="auswahl_schnellsuche">
    			<option onclick="kaufpreisSwitch(this.value);"></option>
    
    			<option value="<100000" onclick="kaufpreisSwitch(this.value);">bis &euro; 100'000</option>
    			<option value="<250000" onclick="kaufpreisSwitch(this.value);">bis &euro; 250'000</option>
    			<option value="<500000" onclick="kaufpreisSwitch(this.value);">bis &euro; 500'000</option>
    			<option value="<750000" onclick="kaufpreisSwitch(this.value);">bis &euro; 750'000</option>
    			<option value="<999999" onclick="kaufpreisSwitch(this.value);">bis &euro; 1'000'000</option>
    			<option value=">1000000" onclick="kaufpreisSwitch(this.value);">&uuml;ber &euro; 1'000'000</option>
    
    		</select>
    </div>
    
    <div class="suchdata"><input name="senden" id="bt_detailsuche" value="Suchen" class="searcher" type="submit" OnFocus="blur()"></div>
    
    </form>
    Hier der Ausgabe-Script:

    PHP-Code:
    <?php 
    $pfad 
    =  $_SERVER['PHP_SELF'];   

    $datensaetze_pro_seite "2";     
    $p "3";                         

    $sqlPreis "preis{$search_kauf}";

    $mySearchFields = array(
                                
    1=>"objekttyp",
                                
    2=>"ort",
                                
    3=>"regzusatz"                            
                            
    );

    $mySearchValues = array();

    foreach(
    $_POST['search_values'] as $k=>$v) {

            if(!empty(
    $v) && isset($mySearchFields[$k])) {
                                                            
    $v mysql_real_escape_string($v);
                                                            
    $mySearchValues[] = "`{$mySearchFields[$k]}` LIKE '{$v}'";
                                                         }    
                                                }            

    $sqlWhere count($mySearchValues) ? implode(" AND ",$mySearchValues) : "{$sqlPreis}";

    $sql "SELECT *, count(objekttyp) as anzahl FROM objekte WHERE {$sqlWhere} AND zustand='aktiv'"//Anzahl der Objekte


    $abfrage mysql_query($sql);
                        
    while(
    $objekt mysql_fetch_array($abfrage)){

                                                
    $anzahl $objekt['anzahl'];
                            
                                                } 
    $total $anzahl;                     

    $seiten ceil($total $datensaetze_pro_seite);     


    if(empty(
    $_GET['go'])){ 

        
    $go 1;             

    }elseif(
    $_GET['go'] <= || $_GET['go'] > $seiten){

        
    $go 1;         

    }else{ 

        
    $go mysql_real_escape_string($_GET['go']);   
    }

    $links = array(); 


    if((
    $go $p) < 1){ $davor $go 1;  }else { $davor $p; }            


    if((
    $go $p) > $seiten){ $danach $seiten $go; }else{ $danach $p; }   
           
    $off = ($go $davor);  
                    
    if (
    $go$davor 1){         
        
    $first 1;
           
    $links[] = "<a href=\"$pfad?go=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";      
    }      

    if(
    $go != 1){         
        
    $prev $go-1;
        
    $links[] = "<a href=\"$pfad?go=$prev\" title=\"Eine Seite zurueck blaettern\"> &laquo;</a>\n";     
    }   
           
           
    for(
    $i $off$i <= ($go $danach); $i++){ 

      if (
    $i != $go){            
      
            
    $links[] = "<a href=\"$pfad?go=$i\">$i</a>\n";
            
      }elseif(
    $i == $seiten) {            
            
            
    $links[] = "<span class=\"current\">[ $i ]</span>\n";  
            
      }elseif(
    $i == $go){          
      
            
    $links[] = "<span class=\"current\">[ $i ]</span>\n";
            
      }    
    }                

    if(
    $go != $seiten){     
        
    $next $go+1;
        
    $links[] = "<a href=\"$pfad?go=$next\" title=\"Eine Seite weiter blaettern\"> &raquo; </a>\n";
    }      
        
    if(
    $seiten $go $p ){  
        
    $last $seiten
        
    $links[] = "<a href=\"$pfad?go=$last\" title=\"Zur letzten Seite springen\">... Letzte &raquo;</a>\n";
    }      

    $start = ($go-1) * $datensaetze_pro_seite;            


    $link_string implode(" "$links); 

    // Anzahl der Objekte

    $sqlPreis "preis{$search_kauf}";

    $mySearchFields = array(
                                
    1=>"objekttyp",
                                
    2=>"ort",
                                
    3=>"regzusatz"                            
                            
    );

    $mySearchValues = array();

    foreach(
    $_POST['search_values'] as $k=>$v) {

            if(!empty(
    $v) && isset($mySearchFields[$k])) {
                                                            
    $v mysql_real_escape_string($v);
                                                            
    $mySearchValues[] = "`{$mySearchFields[$k]}` LIKE '{$v}'";
                                                         }    
                                                }            

    $sqlWhere count($mySearchValues) ? implode(" AND ",$mySearchValues) : "{$sqlPreis}";

    $sql "SELECT * FROM objekte WHERE {$sqlWhere} AND zustand='aktiv' LIMIT $start,$datensaetze_pro_seite";

    $sqlq "SELECT *, count(objekttyp) as anzahl FROM objekte WHERE {$sqlWhere} AND zustand='aktiv'"//Anzahl der Objekte

    $abfrage mysql_query($sqlq);
                        
    while(
    $objekt mysql_fetch_array($abfrage)){

        
    $anzahl $objekt['anzahl'];
            
        if (empty(
    $anzahl)) { 
            
    $number '<style type="text/css" media="screen">#angebote_bold { display:none; }</style>';
                         } else { 
                                
    $number '<td width="400" height="12">' $objekt['anzahl'] . ' Angebote f&uuml;r Sie gefunden.</td>';
                                }
                            }
                                
    // Ende Anzahl der Objekte
                            
    echo $number

    // Ausgabe der DATEN
            
    $ergebnis mysql_query($sql);

        
    $res mysql_query("SELECT * FROM objekte WHERE {$sqlWhere} AND zustand='aktiv'");
        if(!
    mysql_num_rows($res) ) {
                                    echo 
    "Keine Einträge vorhanden.";
                                    
    mysql_free_result($res);
                                    } 
        else {.... 
    ?>

    Danke für die Hilfe schon mal

  2. #2
    TP-Insider Avatar von wuselmann
    Registriert seit
    May 2001
    Ort
    Hamburg
    Beiträge
    879
    Dat is mir jetzt zu viel um da alles komplett durchzulesen - daher ein wenig Vermutung-Frage-Antwort-Spiel, damit Du selbst die Lösung findest
    Doch sobald ich in die Blätterfunktion wähle, verliert er die POST Daten und das Ergebnis ist Falsch.
    Klar. POST macht es nur, wenn Du ein Formular absendest. GET macht es, wenn Du einen Link anklickst. Heißt, Du musst Deine Suchanfragedaten (URL-encoded) beim Verlinken der Folge-Seiten immer mitübergeben. Im Ausgabeskript scheint er die Info immer noch im POST[] zu erwarten, was nach dem Seitenwechsel natürlich fehlschlägt.

    Klar soweit?

  3. #3
    TP-Newbie
    Registriert seit
    Dec 2011
    Beiträge
    3
    Hallo wuselmann,

    ja vielen Dank das hat schon mal besser geklappt mit dem GET, nur bekomme ich Probleme mit dem Seitenwechsel.

    Ein $pfad = $_SERVER['REQUEST_URI']; beim Page-Wechsel erneuert beim Request die Suchfunktion. Hmm, irgendwie
    ist mir noch nicht ganz klar, wie das Script die Variablen konserviert... ich muss mir noch mal ein paar Gedanken machen,
    aber danke erst einmal.

  4. #4
    TP-Newbie
    Registriert seit
    Dec 2011
    Beiträge
    3
    OK, ich hab es mit einer Session gelöst, danke für die Hilfe.

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. [DW CS4] Suchformular
    Von Frank2010 im Forum Dreamweaver & andere Webeditoren
    Antworten: 0
    Letzter Beitrag: 14.02.2010, 19:49
  2. [PHP] Suchformular
    Von flofl im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 08.02.2009, 02:28
  3. [PHP] Suchformular
    Von flofl im Forum Traum-Dynamik
    Antworten: 5
    Letzter Beitrag: 14.11.2008, 05:03
  4. Suchformular in WP erweitern
    Von Cray im Forum Content Management Systeme & Shop Systeme
    Antworten: 1
    Letzter Beitrag: 18.06.2007, 02:06
  5. Scriptproblem bei Suchformular
    Von buffy2511 im Forum Traum-Dynamik
    Antworten: 9
    Letzter Beitrag: 14.04.2005, 00:41

Aktive Benutzer

Aktive Benutzer

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

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

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