Neuigkeiten:

still alive...

Hauptmenü

PHP, MYSQL, Search, News ...

Begonnen von nosferatu, 29. Dezember 2006, 08:32:27

Vorheriges Thema - Nächstes Thema

nosferatu

Hallo,
ich habe ein problem mit meiner Suche bei meinem News Script
wenn ich zb nun:
Games Serie mache, werden 5 einträge angezeigt was ok ist. wenn ich aber
Games + Serie oder Games, Serie mache, so werden dann wieder alle angezeigt und nicht diese 5 sondern einfach alles
und mein eintragszähler der nach einträgen blättern sollte zeigt immer das falsche ergebnis an immer die einträge vom ersten such wort, also wie beim ersten sind es Games 4 und serie 1 somit werden dann 4 einträge angezeigt obwohl 5 sichtbar sind wenn ich serie games mache wird 1 angezeigt statt 5
woran liegt das ?
hier der test
http://www.pj-firepower.com/site.php?page=53&d=&lan=1\" rel=\"external nofollow\">http://www.pj-firepower.com/site.php?page=53&d=&lan=1
und hier mein code


>
:
 

sql);
?>
\"; echo \"$row[kategorie]\"; echo \" : \"; echo \"$row[titel]\"; echo \"
$text204: \".$row[name].\"
\".$row[datum].\"
\";
eval(\"?>\".nl2br($row[\'eintrag\']));
echo \"
$text205 $anzahl\";
echo \"\";
}
}
}
}
?>
total >= 1) { echo \"Displaying records $queryList->start -
   $queryList->stop of $queryList->total.\"; }
   if($queryList->pas > 1) { echo \"Pages ( $queryList->pas ) : $queryList->result \"; }
?>

 
 
kann mir jemand eine lösung sagen ? ich will ne normale suche wo man mit +, -,  \"ganzer Text\" suchen kann

$suchstring = \"$suchen\"; [/quote]
Die Double Quotes sind nicht notwendig.
kann mir jemand eine lösung sagen ?[/quote]
Dein Problem liegt darin, dass Du eine ungeeignete Methode zur Bildung der SQL-Statements verwendest. Ich demonstriere dir das mal:
 

\\\', $term, \"LIKE %\\\', str_replace(\\\' \\\', \\\'_\\\', $suche), \"%

 
 
ergibt:
 

Suchterm: >GamesLIKE %Games%Games, CommandLIKE %Games%LIKE %%LIKE %Command%Games,CommandLIKE %Games%LIKE %Command%Games + CommandLIKE %Games%LIKE %%LIKE %%LIKE %Command%Games+CommandLIKE %Games%LIKE %Command%<

 
 
LIKE %% bedeutet eben: Selektiere alles.
Dein Stil ist im Übrigen noch sehr verbesserungswürdig:
- Statt for könntest Du foreach verwenden.
- Dein Code ist anfällig für SQL-Injektion.
- Lies den Manual-Eintrag für http://de.php.net/echo\" rel=\"external nofollow\">echo()
- etc.pp.
BTW:
Die fehlerhaften Slashes sind natürlich nicht von mir. Das Forum ist einfach broken.

nosferatu

hallo,
hm... wo bau ich da dann den sql code rein um da drin zu suchen und auszulesen ... ?
könntest du meinen teil umschreiben ? *bitte  /uploads/emoticons/icon_e_sad.gif.ad4af608d2eb611202443ae3a67ed606.gif\" alt=\":-(\" /> *

könntest du meinen teil umschreiben ? *bitte*[/quote]
Nein. Du hast den Fehler präsentiert bekommen, nun ist es an dir, dein Skript entsprechend umzubauen. Siehe auch:
17.13. Wie realisiere ich eine Volltextsuche mit MySQL?
http://www.php-faq.de/q/q-mysql-volltextsuche.html\" rel=\"external nofollow\">http://www.php-faq.de/q/q-mysql-volltextsuche.html

all your base are belong to us / Discord