• 28.08.2025, 22:42
  • Register
  • Login
  • You are not logged in.

 

Darkspace

Junior Member

Suche PHP-Profi

Thursday, October 17th 2002, 6:55pm

Hi ich habe da ein kleines Script problem in Php und suche Jemanden der mir helfen kann:

Also ich lese aus eine DB einen string aus z.B. "aqua,wasser,kalt"

jetzt wil ich eine suchfunktion schreiben die in dem string nach einem bestimmten Wort (Eigabe durch formular) sucht und wenn es gefunden wird also antwort '1' liefert z.B '0' die ich weiter mit einer if abfrage bearbeiten kann.

ihrgend welche idenn ???

r1ppch3n

Moderator

Re: Suche PHP-Profi

Thursday, October 17th 2002, 7:01pm

hmm... da gibts doch sicher ne möglichkeit sich die anzahl der treffer zurückliefern zu lassen statt den ergebnissen selbst oda? damit könntest wohl eher wat anfangen ;D
genaueres müsst ich allerdings auch ers nachschlagen, mit sql hab i noch so gut wie keine erfahrungen... ::)

edit:
mir war langweilig also HABE ich nachgeschlagen ;D
folgendes stand dazu in meinem lieblings php ebook:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>
<body>
<?php
   $db = mysql_connect();

   $res = mysql_db_query("firma",
          "select * from personen");
   $num = mysql_num_rows($res);
   echo "$num Datensätze gefunden<br>";

   for ($i=0; $i<$num; $i++)
   {
      $nn = mysql_result($res, $i, "name");
      $vn = mysql_result($res, $i, "vorname");
      $pn = mysql_result($res, $i, "personalnummer");
      $ge = mysql_result($res, $i, "gehalt");
      $gt = mysql_result($res, $i, "geburtstag");
      echo "$nn, $vn, $pn, $ge, $gt <br>";
   }

   mysql_close($db);
?>
</body>
</html>

$res wär da die anzahl der gefundenen datensätze, wenne nur bestimmte datensätze ham wills machst das dann selbstverständlich mit nem 'select * from <tabelle> where <feldname> like "%<suchbegriff>%" ' oda so...

hus

Senior Member

Re: Suche PHP-Profi

Thursday, October 17th 2002, 7:05pm

Warum nicht direkt in der Datenbank suchen - mit "rlike '.*<suchstring>.*'"?
Oder genauer: ...query("select ... rlike '^(.*,)?$suchstring(,.*)?$' ...");

Aber egal:
array_search(<suchstring>, explode(',', <dbstring>));
oder besser
preg_match("/\b$suchstring\b/", $dbstring);
Real stupidity beats artificial intelligence every time. T. Pratchett, "Hogfather"

r1ppch3n

Moderator

Re: Suche PHP-Profi

Thursday, October 17th 2002, 7:13pm

siehste, des sacht mer jez scho ned mehr viel... ::)
hab ja jesacht dass i ned grad n profi auf dem gebiet bin...

Darkspace

Junior Member

Re: Suche PHP-Profi

Thursday, October 17th 2002, 7:21pm

::)

Also um das Ganze verständiger zu machen die ganze situation

ich habe eine DB mir Personen jede Datensatz verfügt über die Zelle Hobby. In der Zelle Hobby stehe die hobby´s durch komme getrennt max 3 Stück. Jetzt will ich nach Personen suchen die einbestimmes Hobby haben und mit diese anzeigen lassen.

Das mit dem Anzeigen klappt aber nur wenn ich mach dem ganze string suche lasse z.b.

DB_string = "Computer,Rad,Saufen"
such_string = "Computer,Rad,Saufen"

will aber z.b. mir dem suchstring = "Computer" die Persone anzeigen lassen.


Also ich hoffe das problem wir langsam klar..... ::)

hus

Senior Member

Re: Suche PHP-Profi

Thursday, October 17th 2002, 8:04pm

Somit erhalten wir so etwas wie:
mysql_query("select * from personen where hobby rlike '^(.*,)?$suchstring(,.*)?$' order by name");

"rlike" sucht mit einem regulären Ausdruck; der genannte sucht Text wo, wenn etwas vor oder nach dem Suchstring kommen sollte, dieses durch ein Komma abgetrennt ist.
Real stupidity beats artificial intelligence every time. T. Pratchett, "Hogfather"

Darkspace

Junior Member

Re: Suche PHP-Profi

Thursday, October 17th 2002, 8:24pm

Danke das bringt mich weiter ;D

r1ppch3n

Moderator

Re: Suche PHP-Profi

Thursday, October 17th 2002, 9:30pm

du solltest aba auch ma drüba nachdenken dei datenbank etwas umzusortieren, normalerweise gibt man nur exakt EINE information in einer zelle an! Computer,Rad,Saufen sind aber schon 3... ::)
wenn ich mir sowat leisten würde würd mein db lehrer mich dafür umbringen ;D ;D

Darkspace

Junior Member

Re: Suche PHP-Profi

Thursday, October 17th 2002, 10:17pm

Soll ich für die hobby´s eine eigne tabelle anlegen das währe aber verschwendung von ressorcen............ bei 1000 Personen a 3 Hobby währen das schon 3000 Einträge ........und wür das was ich vorhabe wäre es contra Produktive...........


Ich aber jetzt nicht eine grundsatz diskusion Anfangen... ;D
jedem wie er es am liebstem macht......solange es keine firmen DB ist mit 100.000-1******* eintägen ist es auch egal