Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
where Abfrage bitte DENKANSTOSS [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
where Abfrage bitte DENKANSTOSS


 
netleader
11-01-2006, 16:33 
 
Ich übergebe aus einem Formular 4 Werte (select Felder)

z.B.

Array
(
[systemwaende] => F
[kundenkategorie] => A
[vertreter] => Büro
[kw2] => 12/06
)

oder auch

Array
(
[systemwaende] =>
[kundenkategorie] => D
[vertreter] => Büro
[kw2] =>

)

es sind aber auch noch andere Kombis möglich.

Da ich diese Variablen in den where Bereich der Sql Abfrage mit
einbeziehen möchte bitte ich um einen kleinen Denkanstoss
wie man das am besten macht.

Wenn ich alle immer mit


where waende like $systemwaende and kunden like
$kundenkategorie and .....


abfrage bekomme ich immer leere Ergebniss zurück.
Logisch weil DB-Spalte nicht leer.

Danke

 
getphp
11-01-2006, 16:54 
 
Prüfe vor deiner Abfrage, ob die entsprechende Variable gesetzt (und mit einem validen Wert befüllt) ist und erweitere dann die Abfrage entsprechend.
Abhängig von deiner Datenbankstruktur brauchst du dann noch nichtmal "Like", sondern kannst mit "=" arbeiten ...

 
asp2php
11-01-2006, 16:55 
 
1. die Formularfelder genauso wie die Spaltennamen benennen
2. per foreach das $_POST-Array durchlaufen, auf Inhalt prüfen und entsprechend zusammensetzen

 
netleader
11-01-2006, 17:02 
 
Danke für die Tipps, werde es mal versuchen.

Vielen Dank

 
netleader
11-01-2006, 20:16 
 
Gelöst, vielleicht nicht wie ihr meintet aber es klappt.


$abfrage = "where KUNDE.ADRINR = ADRESSE.NUMMER";

if (isset($systemwaende) AND $systemwaende != "")

{
$abfrage .= " and FLD06 = '$systemwaende'";
}

if (isset($kundenkategorie) AND $kundenkategorie != "")

{
$abfrage .= " and FLD10 = '$kundenkategorie'";
}

if (isset($vertreter) AND $vertreter != "")

{
$abfrage .= " and VERTRETER = '$vertreter'";
}

if (isset($kw2) AND $kw2 != "")

{
$abfrage .= " and FLD07 = '$kw2'";
}


// Teil der Abfrage

$result = mysql_query("select from ... $abfrage");



Vielen Dank

 
getphp
11-01-2006, 23:32 
 
Schick ... bis auf das mit dem Validieren ist deine Lösung meinem Vorschlag gar nicht mal so unähnlich ;)
Jetzt hoffe ich mal, dass dein DB-Layer die Validierung übernimmt, sonst ist dieses Script anfällig für SQL-Injection.

 
netleader
12-01-2006, 10:29 
 
Da das ganze nur intern bei mir läuft geht es eigentlich mit der
Sicherheit habe mich deshalb damit weiter noch nicht so befasst.

Der User der zur DB connected darf auch nur select ausführen, reicht das nicht?

 
getphp
12-01-2006, 11:20 
 
Original geschrieben von netleader
Der User der zur DB connected darf auch nur select ausführen, reicht das nicht?
Ok, das sollte reichen ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:20 Uhr.