PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ Problem ] Schleife


pate33
21.01.2002, 09:52
Hi,

ich hab ein kleines logisches problem... ?(

und zwar hab ich ein angabefeld, in das zahlenkombinationen eingetragen werden koennen, z.b.:

2800;2801;2805;2850-2900;2500-2550;2600

oder

2800;2805

oder

2800-2850


das ganze muss in ein select statement geschrieben werden...

z.b. fuer das obere beispiel:

... or firstvdn = 2800 or firstvndn = 2801 or firstvdn = 2805 or firstvdn between 2850 and 2900 or firstvdn between 2500 and 2550 or firstvdn = 2600 ...

d.h. ich muss irgendwie die zahl oben auseinander nehmen und in die sql form bringen...

kann mir jemand sagen, wie ich das hinbekomme?

thanks


Wolverine
21.01.2002, 09:56
Also wenn Du lediglich die Zahlen trennen willst, dann nim split.

$array = split("teiler","zeichenkette"[,"anzahl splits"])

pate33
21.01.2002, 09:57
ganz so einfach ist das aber leider nicht... :(

hab das atm. mit str_replace, jedoch sind da noch einige bugs drinne...

cYrus
21.01.2002, 10:29
ich hab hier mal was, musst es dann halt noch selber bisschen erweitern..

<?
$test = &quot;2800;2801;2805;2850-2900;2500-2550;2600&quot;;
$strArray = explode(&quot;;&quot;,$test);
$result = &quot;&quot;;

for ($counter = 0; $counter < count($strArray); $counter ++){

if (stristr($strArray[$counter],&quot;-&quot;) == &quot;&quot;) {
$result .= &quot;firstvdn = &quot; . $strArray[$counter];
} ELSE {
$result .= &quot;firstvdn between &quot; . str_replace(&quot;-&quot;,&quot; and &quot;,$strArray[$counter]);
}

if ($counter < count($strArray)-1) {
$result .= &quot; or &quot;;
}

}

echo $result;
?>

so long
cYrus

pate33
21.01.2002, 13:02
geht. danke vielmals.