Datenfilter !

Ich habe es mal mit like versucht das klappt irgendwie nicht hmm ...

PHP:
 if($_POST['username']) $wheres[] = "nickname like ='{$_POST['username']}'";

Ich kriege kein Ergebnis... habe auch das error reporting angeschaltet der sagt mir das alles ok sei

lg skype20
 
Willst du vor oder nach dem Suchbegriff nicht noch % einfügen?
Und wenn du LIKE verwednest, solltest du das = entfernen. Beides ist zuviel des guten. Es müsste aber ein SQL-Error ausgeben.....
PHP:
//Wenn der nickname ienfach einem Teil vom namen entsprehen muss
 if($_POST['username']) $wheres[] = "nickname LIKE '%{$_POST['username']}%'";

Zum Fehlersuchen:
PHP MySQL Debug Queries
 
Dankeschön , Hab bitte Verständnis dafür das ich mich so Schwierig gebe bin halt noch ein Php Anfänger ...
 
Soweit habe ich alle Suchanfragen vom Datenfilter gut hinbekommen bis aufs Alter von ... bis .. aber darum kümmere ich mich später. Ich habe dein ein anderes Problem mich sogesehen schon seit Monaten verhindert. Es geht um "Ausgaben von mehreren Seiten in php". Ich habe versucht meine Suchanfrage danach zu optimieren aber leider klappts es nicht, Immer wenn ich z.b. Alle Personen die mit einen B anfangen suche zeigt er mir alle User auf mehreren Seiten sprich anstatt z.b. 2 Seiten Der user die mit einem B anfagenen zu zeigen , zeigt er mir alle an. Ich habe bei mir das Error Reporting eingeschaltet und der sagt mir das mit der Query alles ok.

Hier ist mal der Code

PHP:
// Prüfen ob das Formular gesendet wurde
if(isset($_POST['submit'])){
    // Array initializieren. Falls kein argument angegeben wurde,
    // dann ist die Argumentliste ein leeres Array
    $wheres = array();
    //Jedes Feld prüfen und ggf in den Where-Array einfügen
    if($_POST['sex']) $wheres[] = "sex='{$_POST['sex']}'";
    if($_POST['land']) $wheres[] = "land='{$_POST['land']}'";
    if($_POST['username']) $wheres[] = "nickname LIKE '%{$_POST['username']}%'";
    if($_POST['state']) $wheres[] = "state='{$_POST['state']}'";
    if($_POST['status']) $wheres[] = "status='{$_POST['status']}'";



    // WHERE-Tel des SQL-String zusammenstellen
    if(count($wheres)>0) $wherestring = "WHERE ".implode(' AND ', $wheres);
    //SQL-String zusammensetzen
    $sql = mysql_query("SELECT * FROM `".PREFIX."user`{$wherestring}");
    //TODO: Sql an die DB absetzen

}

AUSGABE von mehreren Seiten !

PHP:
$maxusers = 15;
$alle = safe_query("SELECT * FROM `".PREFIX."user`{$wherestring}");
$gesamt = mysql_num_rows($alle);
$pages = ceil($gesamt/$maxusers);

if(isset($_GET['page'])) $page=(int)$_GET['page'];
else $page = 1;
$sort="nickname";
if(isset($_GET['sort'])){
  if(($_GET['sort']=='country') || ($_GET['sort']=='nickname') || ($_GET['sort']=='lastlogin') || ($_GET['sort']=='registerdate')) $sort=$_GET['sort'];
}

$type="ASC";
if(isset($_GET['type'])){
  if(($_GET['type']=='ASC') || ($_GET['type']=='DESC')) $type=$_GET['type'];
}

if($pages>1) $page_link = makepagelink("index.php?site=registered_users&sort=$sort&type=$type", $page, $pages);
else $page_link='';

if($page == "1") {
	$ergebnis = safe_query("SELECT * FROM `".PREFIX."user`{$wherestring} ORDER BY ".$sort." ".$type." LIMIT 0,".$maxusers);
	if($type=="DESC") $n=$gesam;
	else $n=1;
}
else {
	$start=$page*$maxusers-$maxusers;
	$ergebnis = safe_query("SELECT * FROM `".PREFIX."user`{$wherestring} ORDER BY ".$sort." ".$type." LIMIT ".$start.",".$maxusers);
	if($type=="DESC") $n = ($gesamt)-$page*$maxusers+$maxusers;
	else $n = ($gesamt+1)-$page*$maxusers+$maxusers;
}


Ich hoffe der Code bringt dich nicht all zu durcheinander....
 
Zurück