Newsarchiv (mysql) mit Suchfunktion - preg_match() problem

Verion

Mitglied
Hi,
Ich hatte mein problem gerade ausführlich erklärt *seufz*, dann hab ich auch Vorschau geklickt und sollte mich einloggen, falsches password eingegeben und jetzt war mein eintrag weg :(
und nochmal.. also:

Ich möchte ein Newsarchiv erstellen, in dem die user nach älteren News suchen können.
allerdings bin ich auf ein kleines problem mit preg_match() gestoßen, denn so wie ich das bis jetzt versucht habe lässt sich das nicht lösen *g*

mein bisher letzter Versuch:

PHP:
$wert = 'News';
$sql = "SELECT * FROM news WHERE 1=1";
$result = mysql_query($sql)or die(mysql_error()."<br>".$sql);
 
$variable = mysql_fetch_array($result);
$test = preg_match('/$wert/',$variable);
echo $test;

Ich würde mich freuen, wenn ihr mir helfen könnt - mit einem link zur preg_match-funktion ist mir nicht wirklich geholfen, das habe ich schon gelesen..
natürlich möchte ich auch kein fertiges script haben ;) - außer in dem script wird erklärt wie was funktioniert, dann wäre es vieleicht auch ganz hilfreich.

Verion
 
Variablen die in einfachen Anfuerhungszeichen stehen werden nicht ausgewertet.
Ich habe deinen Code nur überflogen und sehe daher nur diesen Fehler.
PHP:
$wert = 'News';
$sql = "SELECT * FROM news WHERE 1=1";
$result = mysql_query($sql)or die(mysql_error()."<br>".$sql);

$variable = mysql_fetch_array($result);
//$test = preg_match('/$wert/',$variable);
$test = preg_match("/$wert/",$variable);
//oder
$test = preg_match('/'.$wert.'/',$variable);
echo $test;

Obwohl ich mir überlegen würde ob es bei so einfachen Pattern nötig ist den recht langsamen preg zu benutzen und nicht andere ,einfache String, Funktionen (guck mal im Manual) helfen.
 
hmhm ok.. habe

PHP:
   $wert = "News";
   $test = preg_match('/News/',$wert);
   echo $test;

gemacht und dann gibt er 1 aus. allerdings nicht in Verbindung mit der Datenbank *grübel* muss ich, wenn ich preg_match() auf einen array anwende, es durch jeden Zeiger wandern lassen? ( hier: variable[0], $variable[1] ...) wäre ja möglich mit einer schleife.....
 
Hi Verion,
ich glaube du machst es dir zu schwer, du kannst die News schon beim MySQL-Query auf die News, die das gesuchte Wort enthalten, beschränken.
PHP:
$wert = 'News';
$sql = "SELECT * FROM news-table WHERE news_text LIKE '%" . $wert . "%'";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
	// Suchergebnisse ausgeben
}

Gruß
Marvin
 
hmhm.. gut das du das sagst *grins*
Ich war grade mit dem anderen fertig.. aber so ists natürlich um einiges kürzer *grummel*

Danke schön *g* damit gehts vorallem um einiges einfacher :)

Verion
 
Ich glaube in diesem Fall geht es nicht um die Kürze eines Scriptes, sondern um die Performance. Ok, es stimmt schon, dass das Script um vielleicht 50% kleiner ist, aber ich halte es für wichtiger, dass das Script schnell ist. Und das ist Marvins Vorschlag gegenüber den anderen auf jeden Fall.
 
Zurück