PHP - Variablendilemma

Oki wie erklär ich das jetzt…

Ich habe eine dynamisch generiertes - Element, welches unter PHP folgendermassen für jedes in einer Datenbank gefundene Element erzeugt wird:

echo " Sie haben $retvalue $schiffname ";

Die Datei soll jetzt den Inhalt (Integer) jedes Elementes ‚$bezeichner‘ auf seine Korrektheit überprüfen.

Das Problem ist folgendes: Wie kann ich jetzt genau herausbekommen welche Variablen gesetzt wurden und welchen Wert diese enthalten? Und WICHTIG: Der Name der Variablen soll der Spaltenname sein, in dem der zu vergleichende Wert steht.

Geht etwas derartiges überhaupt, bzw. hat jemand einen Workaround?

Ob eine Variable gesetzt ist, kann man mit
if (isset($_POST($var))) {
}

überprüfen. In dem Fall wird die Variable $bezeichner an das php-script versenden.php per POST übergeben. Im Array $_POST sind alle mit der Methode POST übergebenen Variablen enthalten.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

da bin ich mir aber nun nicht so ganz sicher ^^
er schreibt da was von ner Datenbank…
Und wenn eine Variable da auf leer gesetzt ist, dann hat er dennoch einen Eintrag für diese Variable… Im Normalfall dürfte bei int der Wert 0 sein…

Für mich ist das nun ein wenig unklar, ob er das ganze nun mittels eines Formulars übergibt oder nicht… Nichtsdestotrotz, sobald eine Variable mit einem

gesetzt ist wird diese Variable auch übergeben. Jenachdem ob Inhalt darin stand leer oder eben nicht.
isset kann man deswegen wohl nur bei checkboxen o.ä. verwenden.
Ich würde deswegen in diesem Fall je nach Bedarf ein if ($variable == „0“) oder halt (…== „“) vorziehen.
Am besten wäre natürlich eine kombination…

//$variable jenach bedarf auch $\_POST('$variable')
if (!isset($variable)) 
 {
 die ("Variable ist nicht übergeben worden);
 }
elseif ($variable == "0")
 {
 die ("Variable ist null");
 }
elseif ($variable == "")
 {
 die ("Variable ist leer");
 }
else
 {
 echo "jetzt gehts los";
 }

Erstmal danke…

Aber das eigentliche Problem ist das folgende:

Ich weiss nicht welchen Namen die Variablen haben, da diese ja dynamisch vergeben werden.

dann sag das doch :wink:
ich hatte mal ein ähnliches Problem, bei dem ich nicht wusste was alles wie übergeben wird, sprich ich hatte in dem Script einmal POST und einmal GET verwendet und musste mir nun aber alle Variablen wieder speichern um anschliessend z.B. auch sortieren zu können.
Mit folgender Lösung bekommt man nun alle übergebenen Variablen heraus… Was Du weitergehend damit machst ist Deine Sache :wink:

if (count($\_POST)\>0) while (list($key,$val)=each($\_POST)) 
 {
 if ($key != "dir") $sorter .= "&$key=$val";
 }
else while (list($key,$val)=each($\_GET)) 
 {
 if ($key != "dir") $sorter .= "&$key=$val";
 }

ein anderer Befehl der für Dich auch interessant sein dürfte ist
$keys = array_keys($_POST);
(ich bin mir nicht so ganz sicher ob das mit $_POST funktioniert, weil es wenn ich mich recht erinnere das Array auflöst…
zur anzeige (falls Du’s nicht weisst) ist auch meistens
print_r($array);
hilfreich… das gibt Dir das array in einer „betrachtbaren“ Sichtweise aus :wink:
Denke mal damit kommste weiter…

Hooray
jippie ka yai…

Dankeschön… mit dieser Konstruktion kann ich genau so arbeiten wie ich es vorhatte.

gruß

Alexander