kostenloser Webspace werbefrei: lima-city


Suche mit MySQL um Kategorie erweitern ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    n************1

    Ich tag/suche">suche ein Script das es ermöglicht die Suche in Kategorien zu filtern.
    Ich stelle mir das so vor, das neben einem Input Feld ein Dropdown Menü ist wo die Kategorien aufgelistet sind.
    Die Kategorie eines MySQL Eintrags ist auch in der Tabelle gespeichert.
    Wählt man nun eine Kategorie aus, und sucht ein Wort, so werden nur die Wörter angezeigt, die die jeweilige Kategorie in ihrem MySQL Eintrag haben.
    Habe schon gestern den ganzen Tag gesucht, aber nichts gefunden was mich glücklich macht.
    Vielen Danke im Voraus

    Das ist bis jetzt mein Code ohne Kategorie:
    <form action='user-search.php' method='get'>
    		<input type='text' name='k' size='61' value='<?php echo $_GET['k']; ?>' /> 
    		<input class="search-button" type='submit' value='Search'>
    	</form>


    <?php
    	$k = $_GET['k'];
    		$terms = explode(" ", $k);
    		$query = "SELECT * FROM table WHERE ";
    		
    		foreach ($terms as $each){
    			$i++;
    			if ($i == 1)
    				$query .= "user LIKE '%$each%' ";
    			else
    				$query .= "OR user LIKE '%$each%' ";
    		}
    		
    		// connect	
    		mysql_connect("localhost", "***", "***");
    		mysql_select_db("n***");
    		
    		$query = mysql_query($query);
    		$numrows = mysql_num_rows($query);
    		if ($numrows > 0){
    			
    			while ($row = mysql_fetch_assoc($query)){
    				$id = $row['id'];
    				$user = $row['user'];
    				$content = $row['content'];
    
    			
    	
    			
    				echo "<h2>$user</h2>
    				$content<br /><br />";
    					
    				
    				
    				
    				
    			}
    			
    		}
    		else
    			echo "No results found for \"<b>$k</b>\"";
    		
    		// disconnect
    		mysql_close();
    	?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. nilsbierwirth1 schrieb:
    ... Habe schon gestern den ganzen Tag gesucht, aber nichts gefunden ...
    kein wunder ;o)
    wir brauchen außer den vorhandenen angaben noch die creates von den betroffenen tabellen und ein bisschen testdaten (passende natürlich).

    ==== edit ====
    und eine etwas exaktere beschreibung der angelegenheit könnte auch zum verständnis beitragen.

    Beitrag zuletzt geändert: 29.8.2011 22:43:46 von hemiolos
  4. HI nilsbierwirth

    Also, zuerst solltest du noch die Kategorien aus der DB auslesen. Und zwar am besten direkt in ein Select-Feld:
    <option value=KATEGORIE-ID >Kategorie Bezeichnung</option>

    Danach kannst du ähnlich verfahren, wie mit dem Usernamen.

    Der Teil mit dem Expolde und der for each Schleife ist mir jedoch nicht so klar, was soll da genau passieren?

    Wie schon gesagt, etwas mehr Infos wären sehr nützlich.

    Gruss
  5. meron schrieb:
    ... Der Teil mit dem Expolde und der for each Schleife ist mir jedoch nicht so klar, was soll da genau passieren?
    das baut den where-teil - mit und auch ohne ODER - der query zusammen, aber eher der rest ist unklar, daher - create und (test)daten veröffentlichen, dass man besser helfen kann.
  6. Autor dieses Themas

    n************1

    Hat sich erledigt, habe es jetzt anders gemacht.
    Trotzdem Danke für die Hilfe ;)
  7. An Stelle von LIKE würde ich übrigens sowas wie

    SELECT * FROM table WHERE MATCH (`user`) AGAINST ('each*' IN BOOLEAN MODE)


    benutzen.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!