Variable MySQL abfrage

Blacksceada

Grünschnabel
Hallo,

ich beschäftige mich zur Zeit mit dem Problem eine MySQL abfrage variabel zu gestalten aber nicht nach der Art:
PHP:
$sql="SELECT x, y FROM tabelle WHERE xyz LIKE '".$variable."'";

sondern mit Hilfe eines Formulars.
Beispiel: Ich habe 3 Formularfelder (in echt sind es 14^^) entweder ausgefüllt oder nur teil-ausgefüllt.

Nun endlich zu meiner Frage: Wie könnte ich es hinbekommen, ohne 100te IF bedingungen nur nach den ausgefüllten Feldern in MySQL zu suchen?

Noch mal anderst erklärt.
Code:
Wenn Feld A ausgefüllt und B sowie C nicht, suche nur nach A in der Datenbank.
Wenn Feld A und B aber nicht C ausgefüllt ist suche nach A und B in der Datenbank
usw.

Schon mal vielen Dank im Vorraus an alle Lesenden sowie Helfenden.
 
Sammele alle Werte in einem Array, filtere die leeren Werte heraus (array_filter()-Funktion) und generiere mit den übrigen Werten die gewünschte Abfrage. Beispielsweise:
PHP:
$values = array('foo', '', ' ', 'bar');
$values = array_filter($values, create_function('$val', 'return trim($val)!=""'));
if( !empty($values) ) {
	$values = array_map('mysql_real_escape_string', $values);
	$query = 'SELECT x, y FROM tabelle WHERE `xyz` LIKE "'.implode('" OR `xyz` LIKE "', $values).'"';
}
 
Arrays sind für mich nöch böhmisches dorf , kann mir einer zu diesem Thema zu folgenden Variablen zeigen wie mann arrays bildet ?

$_POST['Level']
$_POST['Name']

es sind noch ein paar mehr aber ein wenig Arbeit sollte noch für mich übrig bleiben :-)

Ich bedanke mich im Vorraus bei euch.

LG Andy
 
Arrays sind für mich nöch böhmisches dorf , kann mir einer zu diesem Thema zu folgenden Variablen zeigen wie mann arrays bildet ?

$_POST['Level']
$_POST['Name']

es sind noch ein paar mehr aber ein wenig Arbeit sollte noch für mich übrig bleiben :-)

Ich bedanke mich im Vorraus bei euch.

LG Andy

Hab erlich gesagt keine ahnung was du eigentlich meinst. ^^
http://www.php.net/manual/de/ref.array.php
http://www.php.net/manual/de/function.array.php
 
Wenn du dieses Thema etwas weiter durchließt weißt sicherlich was ich meine , Bitte ich habe keine ahnung von arrays ich sehe da lauter Zahlen getrennt mit kommas welche mit überhaupt nichts sagen .

Bitte ich suche seit gestern 20 Uhr fasst 24 Stunden schon nach eine lösung wie diese. Und entlich hab ich sowas gefunden , bekomme ich schonwieder einen Link aufs Auge gedrückt wo ich das gleiche sehe wie in den letzten 24 Sunden meiner suche , genau das womit ich absolut nichts anfangen kann , wenn ich dieses array erstellt habe ist es mein erstes.
Also bitte etwas verständniss einem Anfänger gegenüber. Ich verlange ja nicht das einer mir das script komplett fertig schreibt. Ich will nur 2-3 arrays wo ich sehen kann wie ich das machen muß um die arrays am ende zu haben die ich brauche um aus einem Formular übergebene Werte in arrays zu haben um sie dann so einzusetzen das leere Eingabefelder eben nicht in die sql abfrage mit rein rutschen.

Einfach eben arrays zu diesem Thema mit meinen aus dem Formular übermittelten Werten . Ich hoffe es jetzt verständlich gemacht zu haben was ich möchte.

$_POST['Level']
und
$_POST['Name']
und wenn einer ganz besonders gut zu mir seien will auch noch
$_POST['IDnum']
 
Hmm kann es sein das du einfach nur Variablen zu einem Array zusammen fassen willst?

Dazu giebt es ein paar Möglichkeiten.
1. Die Array() Funktion
PHP:
$DeinArray=array("Level"=>$_POST["level"],"name"=>$_POST["name"]);
echo "Der Level ist: " . $DeinArray["level"];
echo "<br>Und unser Held heist: ". $DeinArray["name"];
Dazu auch bitte unbedingt den Link durchlesen. Ist wirklich wichtig, weil du da einige Beispiele zu der Funktion bekommst.

2. Wir basteln uns das Array durch zuweisen der Einzelnen Variablen
PHP:
$DeinArray["name"]=$_POST["name"];
$DeinArray["level"]=$_POST["level"];
echo "Der Level ist: " . $DeinArray["level"];
echo "<br>Und unser Held heist: ". $DeinArray["name"];

Man kann einem Array übrigens auch einfache Zahlen als Index geben.
PHP:
$DeinArray[0]=$_POST["name"];
$DeinArray[1]=$_POST["level"];

echo "Jetzt kann man mich auch ganz leicht mit einer Schleife auslesen! :)";
echo "<br> Ich enthalte folgende werte: (insgesamt habe ich " . count($DeinArray)." Variablen in mich vereint :)";
For($Nummer=0;$Nummer<count($DeinArray);$Nummer++)
{
echo "<br>".$DeinArray[$Nummer];
}

3. $_POST ist bereits ein Standartmäßig ein Array ;)
PHP:
$DeinArray=$_POST;
Das empfehle ich aber nicht, weil du ja nicht weist was da jetzt noch so alles mit an daten drin steckt.





So hoffe ich konnte dir helfen. Aber über Arrays giebt es noch seeeeeeeehr viel mehr zu lernen. Da sind die Links die ich gepostet habe sicher hilfreich.

Edit: Ein Fehler beseitigt.
 
Zuletzt bearbeitet:
zuerst danke ich dir recht viel mals , für deine mühen, und da hast du sicher recht , das deine Links sicherlich hilfreich sind in zukunft , wichtig ist eben erst zu begreifen was ein array überhaupt ist , und dabei hat mir die umsetzung vom $_POST auf ein anderes array sehr geholfen so kann ich wenigsten zum teil nach verfolgen was Passiert damit ein array entsteht.

Also nochmal vielen dank.

LG Andy
 
Zurück