Feldlängeherausfinden

Feldlängeherausfinden

am 05.02.2005 01:31:14 von Erik Griffin

Hallo!

Ich nehme Bezug auf den Thread <32m2tdF3nbvl4U1@individual.net>.
Ich habe mir nun eine Methode gebastelt, womit ich die definierte
maximale Feldlänge eines Feldes herausbekomme (gibts in dieser
Form leider bisher nicht):

function GetMaxLength($Table) {
$mysqli = new mysqli(GetDBVar("DB_HOST"), GetDBVar("DB_USER"), GetDBVar("DB_PASSWD"), GetDBVar("DB_NAME"));
$query = "SHOW COLUMNS FROM ".$Table;
if ($result = $mysqli->query($query)) {
$a = array();
$b = array();
while ($row = $result->fetch_row()) {
array_push($a, $row[0]);
array_push($b, preg_replace("/.*\((\d+)\).*/i","$1",$row[1]));
}
$c = array_combine($a, $b);
}
$mysqli->close();
return $c;
}

Die Methode kann ich dann wie folgt verwenden:

$a = GetMaxLength("Customer");
echo $a["Anrede"];

Leider bin ich mit meiner Lösung nicht so sehr zufrieden. Gibt es
eine Möglichkeit wie ich dynamisch Elemente in ein Array einfügen
kann mit Bezeichnung eines Schlüssels? Bisher mache ich das so,
das ich mir ein Array $a und ein Array $b erzeuge und diese dann
kombiniere, wobei in $a die Schlüssel und in $b die Werte
drinstehen. Sowas wie

array_push($a, $row[0] => preg_replace("/.*\((\d+)\).*/i","$1",$row[1]));

hat leider nicht funktioniert. Falls noch jemanden eine Verbesserung
auffällt wäre ich für anregende Tips dankbar.



mfg
Erik

Re: Feldlänge herausfinden

am 05.02.2005 02:00:30 von Niels Braczek

Erik Griffin <1f4e5381573d4a9c00e0b61302a4167f@nurfuerspam.de> schrieb:

> array_push($a, $row[0] =>
> preg_replace("/.*\((\d+)\).*/i","$1",$row[1]));

$a[$row[0]] = preg_replace("/.*\((\d+)\).*/i","$1",$row[1]);

> hat leider nicht funktioniert. Falls noch jemanden eine Verbesserung
> auffällt wäre ich für anregende Tips dankbar.

Geradeaus ist manchmal zu schwierig, oder ;-)

MfG
Niels

--
Perfektion ist nicht erreicht, wenn man nichts mehr hinzufügen kann,
sondern wenn man nichts mehr wegnehmen kann.
[Antoine de Saint-Exupéry]

Re: Feldlängeherausfinden

am 05.02.2005 13:47:30 von Erik Griffin

* Niels Braczek schrieb:

> Erik Griffin <1f4e5381573d4a9c00e0b61302a4167f@nurfuerspam.de> schrieb:
>
>> array_push($a, $row[0] =>
>> preg_replace("/.*\((\d+)\).*/i","$1",$row[1]));
>
> $a[$row[0]] = preg_replace("/.*\((\d+)\).*/i","$1",$row[1]);

*autsch*, da hätte ich aber auch drauf kommen können/müssen ;-)

>> hat leider nicht funktioniert. Falls noch jemanden eine Verbesserung
>> auffällt wäre ich für anregende Tips dankbar.
>
> Geradeaus ist manchmal zu schwierig, oder ;-)

Ja manchmal sieht man den Wald vor lauter Bäumen nicht ;-)

[...]



Vielen Dank


mfg
Erik