$val) { $data[$key] = strip($val); } } else { $data = stripslashes($data); } return $data; } #-------------------------------------------------------------------- function get_info($con,$table) { if (!$con) return false; if (strlen($table) == 0) return false; $sql = "show columns from $table"; $res = mysql_query($sql,$con); if (!$res) return false; $info = array(); while ($rec = mysql_fetch_assoc($res)) { $field=$rec["Field"]; unset($rec["Field"]); $info[$field]=$rec; $type = strtolower($info[$field]["Type"]); if ((strpos($type,"tinyint")===0) or (strpos($type,"smallint")===0) or (strpos($type,"mediumint")===0) or (strpos($type,"int")===0) or (strpos($type,"bigint")===0) or (strpos($type,"float")===0) or (strpos($type,"doublet")===0) or (strpos($type,"decimal")===0)) { $info[$field]["Style"]=" align=\"right\""; } else $info[$field]["Style"]=""; } return $info; } #-------------------------------------------------------------------- function make_tr_filter($old,$info) { $filter=""; if(!is_array($info)) return false; foreach($info as $key => $val) { if(strlen($val["Key"])==3) { $filter .= "\n"; $filter .= " $key\n"; $filter .= " \n"; $filter .= "\n"; } } return $filter; } #-------------------------------------------------------------------- function make_tbl_ausgabe($liste) { $ausgabe = ""; if(!is_array($liste)) return false; $ausgabe .= "\n\n"; foreach($liste as $rec) { $ausgabe .= "\n"; if(is_array($rec)) foreach($rec as $key => $val) { $ausgabe .= " \n"; } $ausgabe .= "\n"; } $ausgabe .= "
$val
\n"; return $ausgabe; } #-------------------------------------------------------------------- function make_sql_where($filter,$info) { if (!is_array($filter)) return false; if (!is_array($info)) return false; $where = ""; foreach($filter as $key => $value) { $value=trim($value); if ((strlen($value)>0) and (strlen($info[$key]["Key"])==3)) { ## hier sollte man noch einen Typ-Abgleich machen! ## if (checktype($key,&$val,$info) ## habe ich noch nicht fertig ## Like dürfte z.B bei numerischen Feldern nicht erlaubt sein ## Und das Datum könnte man richtigstellen, falls möglich ## Und Buchstaben in numerischen Typen prüfen ## ... $eq=(strpos($value,"%")!==false)?"like":"="; $where .= " $key $eq '".mysql_escape_string($value)."' and"; } } if (strlen($where)>0) { $where = " where ".substr($where,0,-4); } return $where; } #==================================================================== # Hauptprogramm where.php #==================================================================== $filter = strip($_POST["filter"]); $info = get_info($con,$table); $filter_tr = make_tr_filter($filter,$info); if ($_POST["btn"]["suchen"]) { $where = make_sql_where($filter,$info); $sql = "Select $fields from $table $where"; $res = mysql_query($sql, $con); $liste = array(); while ($liste[] = mysql_fetch_assoc($res)); $ausgabe = make_tbl_ausgabe($liste); } #==================================================================== # Hauptprogramm Ende #==================================================================== ?> where
  
  

" method="post" enctype="multipart/form-data">