PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : like



joey.brunner
12-01-2003, 22:34
hi,

ich hab ein datenbank feld, in dem kann entweder ein wert oder mehrere stehen. der inhalt einer datei wird in eine zeichenkette (mit implode) eingelesen und dann in die datenbank geschrieben. die datei sieht so aus:
wert1
wert2
wert3

oder vieleicht aucz nur
wert1

oder irngedwie so halt

ich hab jetzt eine datenbank abfrage da kann man nach bestimmten werten suchen. wenn nur 1 wert in dem feld (also auch in der datei) steht ist dsa kein problem, aber wenn mehreree drin stehen, findet die suche das zeug nicht. auch mit

$sql_query = "SELECT hosts, holes, session_id, datum from nessus where hosts like '%$host%'";

funktioniert die sache nicht... habt ihr da ne idee?

danke

joey

Gaert
12-01-2003, 23:03
Hallo!

Könntest du bitte den kompletten Codeabschnitt posten, mit dem du versuchst die Daten auszulesen!
Ich habe so das gefühl, dass der Fehler nicht im SQL steckt sondern in der Art wie du versuchst zu lesen.

joey.brunner
14-01-2003, 10:34
gerne mach ich das ;)

danke

$vk = @mysql_pconnect($hostdb, $user, $pass) or die ("No connection to MySQL at $hostdb");
@mysql_select_db($database, $vk) or die ("Could not chosse database");
$sql_query = "SELECT hosts, holes, session_id, datum from nessus where hosts='$host'";
//$sql_query = "SELECT hosts, holes, session_id, datum from nessus where hosts like '%$host%'";
$result = mysql_query($sql_query, $vk);

if(!$result)
{
echo "During the trial to insert the data, there have been some errors.<br>\nError-Number:
<b>".mysql_errno($vk)."</b><br>\nError-Text:
<b>".mysql_error($vk)."</b>";
}
else
{

while($row = mysql_fetch_array($result))
{
$split_holes = preg_split("'\&&'", $row['holes']);.
.
.
.
.

Gaert
14-01-2003, 15:58
Hmm...

Sieht eigentlich gut aus!

Haste dein SELECT denn schonmal in der mysql Konsole ausprobiert?

joey.brunner
14-01-2003, 21:56
danke ;)

ja, da passiert das selbe ;(

joey

Jasper
15-01-2003, 13:32
Original geschrieben von joey.brunner
danke ;)

ja, da passiert das selbe ;(


bei mir nicht:

create table t1 (t char(255));
insert into t1 values ('abc def ghi');
select * from t1 where t like '%def%';
t
---
abc def ghi

oder versteh ich das problem falsch?

anmerken muss ich aber, dass das schlechtes db-design ist. schon die erste normalform wird damit verletzt. eine datenbank sollte eigentlich bis zur 3NF normalisiert sein.

-j

fs111
15-01-2003, 19:16
Geht es mit = anstatt von like?

fs111