php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.12.2008, 15:04  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Also werde ich den Post String wohl doch mit explode auflösen müssen und dann die beiden Variablen in die Abfrage einbauen müssen. Ich werde das mal probieren um zum Ziel zu kommen. Das mit explode zu lösen scheint mir die einzige Möglichkeit zu sein.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.12.2008, 15:44  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Ich habe nun das Problem gelöst,ob es die beste und eleganteste Lösung ist sei mal dahin gestellt aber sie funktioniert.

Hier der Code
PHP-Code:
if(isset($_POST['suche_x']) && isset($_POST['suche_y']))
  {
   
$sqlbefehl ="
      Select
       a.id_artikel,
       a.cat_id,
       a.art_name,
       a.art_nummer,
       a.status,
       a.mwst,
       a.preis_euro,
       a.preis_dollar,
       a.preis_sfr,
       a.bestand,
       a.gewicht,
       a.angebot,
       a.lieferzeit,
       a.hersteller,
       a.artikel_bild,
       a.farbe,
       a.groese,
       k.id_cat,
       k.cat_name
      From
       artikel a
      Left Join
       kategorien k
      ON
       (a.cat_id = k.id_cat)
      "
;
   
//string durchsuchen
   
$string $_POST['suchtext'];
   
$such_string " ";
   
$such_wert strpos($string,$such_string);
   
//wenn ein leerzeichen eintritt dann string für sucher zerlegen
   //und folgende where clausel ausführen
   
if($such_wert !== false)
   {
    
$suche explode(" ",$_POST['suchtext']);
    
$suche1 $suche[0];
    
$suche2 $suche[1];
 
    
$sqlbefehl .="
       Where
        MATCH (art_name) AGAINST ('"
.mysql_real_escape_string(+$suche1 +$suche2)."' IN BOOLEAN MODE)
       "
;
   }
   
//wenn kein leerzeichen auftritt einfache suche ausführen
   
elseif($such_wert === false)
   {
    
$sqlbefehl .="
       Where
        MATCH (art_name) AGAINST ('"
.mysql_real_escape_string($string)."' IN BOOLEAN MODE)
       "
;
   }
   
//nach eingegebener kategorie suchen
   
else
   {
    
$sqlbefehl .="
       Where
        MATCH (cat_name) AGAINST ('"
.mysql_real_escape_string($string)."' IN BOOLEAN MODE)
       "
;
   }
   
$erg_suche mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
   
//echo '<pre>Debug: ', $sqlbefehl, "</pre><br>";
   
while($suche mysql_fetch_assoc($erg_suche)){
    include(
'suche_list.php');
   }
//ende while
  
}//ende isset suche 
Jetzt muss ich das ganze noch bei der erweiterten Suchmaske machen und dann passt es.

Dank David mfg der litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 14.12.2008, 16:22  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
mysql_real_escape_string(+$suche1 +$suche2)
Das ist schon mal Quark.
David ist offline  
Alt 14.12.2008, 17:35  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Wieso ist das Quark?
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 14.12.2008, 18:27  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Weil Du da mindestens die doppelten Anführungszeichen vergessen hast.
In der Form wandelt PHP beide Variablen in Zahlen um und addiert sie.

Außerdem wirkt das alles so unnötig kompliziert.
Ungetestet:
PHP-Code:
if( isset($_POST['suchtext']) )
{
  
$mysql mysql_connect('localhost''localuser''localpass') or die(mysql_error());
  
mysql_select_db('test'$mysql) or die(mysql_error());

  
$words explode(' '$_POST['suchtext']);
  
$match '';
  foreach(
$words as $w) {
    
$match .= ' +'.mysql_real_escape_string($w$mysql);
  }
  
  
$sql ="
    SELECT
      a.id_artikel, a.cat_id, a.art_name,
      a.art_nummer, a.status, a.mwst,
      a.preis_euro, a.preis_dollar, a.preis_sfr,
      a.bestand, a.gewicht, a.angebot,
      a.lieferzeit, a.hersteller, a.artikel_bild,
      a.farbe, a.groese, k.id_cat, k.cat_name
    FROM
      artikel a
    LEFT JOIN
      kategorien k
    ON
      a.cat_id = k.id_cat
    WHERE
      MATCH (art_name,cat_name) AGAINST ('$match' IN BOOLEAN MODE)
  "
;
  echo 
$sql;
  
$result mysql_query($sql$mysql) or die(mysql_error());
  while( 
false!==($row=mysql_fetch_array($resultMYSQL_ASSOC)) ) {
    echo 
join(','$row), "<br />\n";
  }

David ist offline  
 


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySql Suche über verschiedene Tabellen - Ergebnis dabei reduzieren padrone Datenbanken 0 04.11.2008 18:43
[Erledigt] Suche Unterstützung (Freiberufler) für ein PHP - Mysql Projekt Stefano Beitragsarchiv 0 19.10.2008 09:58
MySQL: Suche über mehrere Tabellen und Sortierung Dongle Datenbanken 4 15.10.2008 12:16
Suche (MATCH) mit MYSQL ruferp Datenbanken 1 10.09.2007 22:06
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Suche Webspace mit PHP MySQL für PhpOpenChat webmaster_andre Beitragsarchiv 2 05.09.2005 20:19
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Suche PHP & MySQL Programmierer Beitragsarchiv 4 11.08.2005 17:12
Suche Progger PHP, PERL, MYSQL, C++usw.. und Designer,Flash Beitragsarchiv 1 28.06.2005 17:12
Suche Php(evt Mysql) Leute Beitragsarchiv 14 12.12.2004 15:15
Suche MySQL referenz Datenbanken 2 17.11.2004 14:04
Suche Programmierer mit php und MySqL kenntnissen! Beitragsarchiv 30 01.11.2004 13:16
suche php mysql programmierer Beitragsarchiv 28 27.10.2004 10:14
Suche PHP / MySQL Spezialisten für Spezialprojekt, $$ Beitragsarchiv 17 27.08.2004 12:55
Suche php, mysql künstler Beitragsarchiv 0 11.08.2004 22:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum