kostenloser Webspace werbefrei: lima-city


MitgliederSuche... funktioniert leider nicht bitte um helfe

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    Hi Leutz,
    Ich wollte mir die Tage mal eine Mitglieder Suchemaske erstellen für meine Community.Habe allerdings noch nicht soviel erfahrung mit Datenbank. Naja lange rede kurzer Sinn. Ich habe folgendes programmiert und es funktioniert leider nicht nun würde ich euch um hilfe bzw. verbesserung bitten. Danke schonmal im voraus:

    FormTag:
    <form action="index.php?action=sites/members.php&search=yes" method="post" enctype="multipart/form-data" name="search" id="search">
    <tr><td><input name="searchname" type="text" id="searchname" size="18" maxlength="20" onfocus="this.value=''" tooltip="Ihr Username" style="background-image: url('gfx/edna&usw/nick.jpg')"/>
    <select name ='searchsex'><option value='Männlich'>Männlich</option><option value='Weiblich'>Weiblich</option><option value="" SELECTED>Keine Angabe</option></select>
    <p align="right"><input name="submit" type="submit" id="submit" value="Suche starten" tooltip="Suchabfrage starten"></td></tr>
    </form>

    SuchCode:
    <?php
    if(isset($_GET['search'])){
    if($_POST[searchname]!=""){
    $name="`username` LIKE '%$searchname%'";
    }
    else{
    $name="";
    }
    if($_POST[searchsex]!=""){
    if($_POST[searchsex]=="Männlich"){
    $sexask="`sex` = 'Männlich'";
    }
    elseif($_POST[searchsex]=="Weiblich"){
    $sexask="`sex` = 'Weiblich'";
    }
    else{
    $sexask="";
    }
    if($name!=""){
    $sex="AND ".$sexask."";
    }
    else{
    $sex=$sexask;
    }
    }
    else{
    $sex="";
    }
    $searchstring='"SELECT * FROM `user` WHERE"'.$name.'';
    $result = mysql_query($searchstring);
    while ($array = mysql_fetch_array($result)){
    echo "<tr><td width='100%'><a href='index.php?action=sites/profile.php&look=".$array['username']."'><font style='font-family:Arial,sans-serif; font-size:12px'>".$array['username']."</a></td></tr>";
    }
    }
    else{
    ?>

    Beitrag geaendert: 27.1.2007 20:12:48 von ghostrider
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich bin jetzt mal kurz verwirrt :confused:

    Also in Threadtitel steht es funtzt nicht, aber im Beitrag steht es funtzt???

    Also nehmen wir mal an es funtzt nicht, sonst würde dieser Thread keinen Sinn ergeben. Ups, habe ich nicht gerade festgestellt, dass dem nicht so ist? :biggrin:

    Jetzt Spaß beiseite.

    Wenns nicht funtzt, welche Fehlermeldung kommt? Und ich würde mal ganz spontan darauf tippen, dass die letzte "else {"-Klammer nicht geschlossen wird, aber dass kann auch nur ein versehen beim kopiern sein. Also bitte ich um eine kurze Aufklärung :biggrin:

    Wenn es funtzt, dann kann ich nur sagen schönes Script :thumb:

    EDIT: Okay, jetzt ist alles klar! Wie stehts mit der letzten Klammer? Und welche Fehlermeldung?

    Beitrag geaendert: 27.1.2007 20:19:09 von schurli
  4. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    Sry wegen verwirrung ;-) ja ist halt nur nen else zweig der später noch geschlossen wird keine panik wollte nur nicht die ganze seite posten hehe ;-)

    Fehlermeldung:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web200/html/test/sites/members.php on line 41
  5. c****4

    isses normal das du einmal $_GET['']; und ein anderes mal $_POST[''] verwendest?
  6. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    ja weil alles per post rein kommt aber der search befehl selber über get mit:
    <form action='index.php?action=sites/members.php&search=yes' method='post' enctype='multipart/form-data' name='search' id='search'>
  7. Gut jetzt wirds schon etwas klarer, aber noch nicht am klärsten ;)
    Es wäre auch noch eine große Hilfe zu wissen welche Zeile die Nummer 41 hat, ist es vielleicht die letzte Zeile des Scriptes?
  8. x*****k

    Da du ja nicht die ganze Seite reingepostet hast, kann ich mit der Fehlermeldung nichts Anfagen... Welches ist denn Line 41 ?
  9. Ach ghostrider - weil du es bist ...
    ... und du meine eDNA benutzt ;)

    EDIT: Arghhh scheis l...-code - ersetzt alle "" durch '

    Da is der Code:
    http://nopaste.php-q.net/271599

    Nen bisschen auf die Form des Codes achten schadet nicht ;)

    Im übrigen sollte man ein SELECT Statement nur mit * starten wenn man auch wirklich alle Spalten einer Tabelle benötigt. Ansonsten sollte man nur die entsprechenden Spalten abfragen -> spart Zeit.
    Und wenn nur eine Spalte abgerufen werden soll, dann nimmt man am besten mysql_fetch_row und bekommt ein Array auf das nur per Zahlenindex referenziert werden kann. - spart nochmal Zeit und Speicher.

    Beitrag geaendert: 27.1.2007 21:33:30 von izskisurfer

    Beitrag geaendert: 27.1.2007 21:37:20 von izskisurfer
  10. Also ein wenig seltsam finde ich, dass du oben if($_POST[searchname]!='') schreibst, aber in der Zeile darunter nur noch $searchname ohne vorher explizit eine Zuweisung gemacht zu haben. Wenn register_globals on ist, ist das egal, aber schon allein aus Prinzip solltest du noch eine Zuweisung in der Form $searchname=$_POST[searchname] machen.
    Unten führst du die Variable $sex ein, aber im query kommt die nicht mehr mit vor. Ich denke mal die hast du nur vergessen. Hier mal mein Vorschlag, wobei ich nicht viel geändert hab:
    if(isset($_GET['search']))
    {
     if($_POST[searchname]!='')
     {
      $name=\"`username` LIKE '%$searchname%'\";
     }else{
      $name='';
     }
     if($_POST[searchsex]!='')
     {
      if($_POST[searchsex]=='Männlich')
      {
       $sexask=\"`sex` = 'Männlich'\";
      }elseif($_POST[searchsex]=='Weiblich'){
       $sexask=\"`sex` = 'Weiblich'\";
      }else{
       $sexask='';
      }
      if($name!='')
      {
       $sex=\"AND $sexask\";
      }else{
       $sex=$sexask;
      }
     }else{
      $sex='';
     }
     $searchstring=\"SELECT * FROM `user` WHERE $name.$sex\";
     $result = mysql_query($searchstring);
     while ($array = mysql_fetch_array($result))
     {
      echo '<tr><td width='100%'><a href='index.php?action=sites/profile.php&look='.$array['username'].''><font style='font-family:Arial,sans-serif; font-size:12px'>'.$array['username'].'</a></td></tr>';
     }
    }

    Allerdings solltest du den Code nicht aus dem Forum kopieren, da hier bei Lima alle doppelten Anführungszeichen durch einfache ersetzt werden. Die doppelten hab ich deshalb mit \ gekennzeichnet. Also alles mit \" durch doppelte Anführungszeichen ersetzen.

    edit: aber irgendwie mag er das auch nicht :mad:
    das erste hier $name=\"`username` LIKE '%$searchname%'\"; muss auch doppelt sein

    Beitrag geaendert: 27.1.2007 21:40:03 von tct
  11. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    Cool Danke dir du bist mein Held ;-) es geht soweit bis auf Männlich und ne schleife wenn nichts angegeben ist fehlt noch hehe ;-) außerdem wäre es noch cool wenn das ausgewählte oben steht mal schauen was ich noch machen kann ;-) THX aber allen sollte nochma nen prob kommen melde ich mich ;-)
  12. Das Problem bei Männlich könnte das ä sein, probier es mal mit ae.
  13. Also auf register_globals überprüf ich keine fremden scripts mehr - wer darauf nicht selber achtet, dem gehört auch nicht geholfen :P

    man sollte im inet im quelltext sowieso nur alphanumerics und ein paar wenige sonderzeichen wie _ verwenden ...

    Beitrag geaendert: 27.1.2007 21:44:48 von izskisurfer
  14. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    Habe es jetz auf Male umgestellt und noch nen paar zusätzliche sachen eingebaut funktioniert ohne problemem nochma an alle vielen Dank und merkt euch ;-) DENKT IMMER AN DIE SONDERZEICHEN ;-)
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!