Hallo,
ich habe ein Formular zur Änderung von Bestandsdaten. Die id wird mit get übergeben.
PHP-Code:
if(isset($id=$_GET[id]));
Danach hole ich mir den passenden Datensatz für den Artikel aus der DB:
PHP-Code:
$sql ="select * from tabelle where id=".$id;
$msquery...
$hersteller=$ausgabe['hersteller'] // string mit den ids der Hersteller , also zB 2,45,123
Nun habe ich einige Spalten, wo mehrere ids drinstehen. ZB Hersteller 1,2,3
Mit einer multiple selectbox möchte ich nun die Hesteller vorauswählen.
Vorab hole ich mir die Hersteller aus der DB.
PHP-Code:
$sql_hersteller="select id,name,strasse,plz,ort from hersteller";
$ms_ersteller=mysql_query($sql_ersteller);
...
PHP-Code:
<select name="ersteller[]" multiple="multiple"size="8">
<?php
while($ausgabe_ersteller=mysql_fetch_assoc($ms_ersteller))
{
echo '<option value="'.$ausgabe_ersteller[id].'"';
if(strpos($hersteller,$ausgabe_ersteller[id])>0)
echo " selected='selected'";
echo '>'.$ausgabe_ersteller[name].', '.
$ausgabe_ersteller[strasse].' - '.
$ausgabe_ersteller[plz].' '.
$ausgabe_ersteller[ort].'</option>';
}
?>
</select>
Also wenn die Hersteller-id in dem String hersteller in der Tabelle Artikel vorkommt, setzte ein selected ="selected".
Problem: Wenn in dem herstellerstring viele Große ids sind (1234,2345,5432) findet er auch die Herstellr-ids, 1,2,3,4,1234,...), also auch einzelne Ziffern...
Natürlich kmmt 1 ind 123 vor und 2 und 3. Es soll aber nur die 123 gefunden werden.
Eine Idee ist den String in ein Array umzuwandeln und dann mit in_array) zu suchen.
Aber das ist doch wieder seh rechenaufwendig, oder?