Suche

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suche

    Hi,

    ich bin der Verzweiflung nahe. Ich habe eine Suchmaske mit mehreren Auswahlmöglichkeiten erstellt. Bei der einfachen Überprüfung gehts auch, nur wenn mehrfach ausgewählt wird funktioniert die Suche nicht, es wird nicht alles überprüft. Ich finde den Fehler einfach nicht, könnt ihr mir helfen??? Ich poste mal das gesamte Script mit.
    Im voraus Danke, Danke, Danke für die Hilfe.
    Gruss Indra

    PHP-Code:
    <? session_start();
    include("./installation.php");?>
    <html>
    <head>
    <title>ergebnis</title>
    <style type="text/css">
    <!--
    body {
        margin-left: 0px;
        margin-top: 0px;
        margin-right: 5px;
        margin-bottom: 0px;
        font-family: Arial, Helvetica, sans-serif;
        color: #333366;
    }
    .ueberschr {
        font-size: 48px;
        font-family: Arial, Helvetica, sans-serif;
        font-weight: bold;
    }
    .fliesstext {
        font-size: 11px;

    }
    .seiten {
    font-size: 12px;
    font-weight: bold;

    }
    a:link {
        color:  #CC3300;
        font-weight: bold;
        cursor:hand;
    }
    a {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 12px;
        font-weight: bold;
        color: #CC3300;
        text-decoration: none;
        cursor:hand;
    }
    a:visited {
        color:  #CC3300;
        cursor:hand;
    }
    a:active {
        color:  #CC3300;
        cursor:hand;
    }
    -->
    </style>
    <script language="javascript" type="text/javascript">
    <!--
    var win=null;
    function fenster(NameHtml,NeuerName,w,h,scroll,pos){

    if(pos=="center")
    {
    LinkePosition=(screen.width)?(screen.width-w)/2:100;
    OberePosition=(screen.height)?(screen.height-h)/2:100;
    }

    Einstellungen='width='+w+',height='+h+',top='+OberePosition+',left='+
    LinkePosition+',scrollbars='+scroll+',location=no,status=no,menubar=no,
    toolbar=no,resizable=no';
    win=window.open(NameHtml,NeuerName,Einstellungen);

    if(win.focus)
    {
    win.focus();
    }
    }
    function CloseNewWin()
    {
    if(win!=null && win.open)win.close()
    }
    window.onfocus=CloseNewWin;

    // -->
    </script>

    </head>
    <body leftmargin ="0" topmargin="0" onselectstart="return false" style="cursor:default">
    <table width="100%" border="0"  cellpadding="0" cellspacing="0" align="center" >
    <tr valign="top">
    <td><img src="img/blank.gif"  height="60"></td>
    </tr>
    <tr>
    <td height="20"><div align="center"><span class="ueberschr">
     Ihr Suchergebnis</span></div></td>
    </tr>
    <tr valign="top" align="center">
    <td><img src="img/blank.gif" width="232" height="20"></td>
    </tr>
    <tr valign="top" >
    <td >
          <table width="100%"  border="0" cellpadding="0" cellspacing="0" align="center">
          <tr>
          <td align="middle">
          <?
          if (isset($_POST['anf_senden'])|| isset($_GET['limit']))
          {
          if (isset($_POST['anf_senden']))
          {
          $Anzeige1=$_POST ['Anzeige'];
          $such_biet=$_POST['such_biet'];
          $Kategorie=$_POST['Kategorie'];
          $limit=$_POST['limit'];
          }
          if (isset($_GET['limit']))
          {
          $Anzeige1=$_GET ['search'];
          $such_biet=$_GET['such_biet'];
          $kat_id=$_GET['id'];
          $limit=$_GET['limit'];
          }
          $kat_id=$Kategorie;
          $Anzeige="%".$Anzeige1."%";
          if(($kat_id!=0)OR($such_biet==b)OR($such_biet==s)OR(($kat_id!=0)
    AND($such_biet==b)OR($such_biet==s)))
          {
          $sql="SELECT * FROM anzeigen where ((kat_id='$kat_id' AND Anzeige
     LIKE '$Anzeige')OR(such_biet='$such_biet' AND Anzeige LIKE '$Anzeige')
    OR($kat_id='$kat_id' AND $such_biet='$such_biet' AND Anzeige LIKE '$Anzeige'))";
          }
          else
          {
          $sql="SELECT * FROM anzeigen where Anzeige LIKE '$Anzeige'";
          }
          $result=mysql_db_query($db_name,$sql,$connect);
          $anzahl=mysql_num_rows($result);
          if($anzahl==0)
          echo "Es konnten leider keine &Uuml;bereinstimmungen gefunden werden!";
          $anzahlseiten=$anzahl/$anzeigenaufseite;
          $seiten=ceil($anzahlseiten);
          if($limit=="")
          $limit=0;
          $start=$limit*$anzeigenaufseite;
          if(($kat_id!=0)OR($such_biet==b)OR($such_biet==s)OR(($kat_id!=0)
    AND($such_biet==b)OR($such_biet==s)))
          {
          $sql2="SELECT * from anzeigen where ((kat_id='$kat_id' AND Anzeige
     LIKE '$Anzeige')OR(such_biet='$such_biet' AND Anzeige LIKE '$Anzeige')
    OR ($kat_id='$kat_id' AND $such_biet='$such_biet' AND Anzeige
     LIKE '$Anzeige')) LIMIT ".$start.",$anzeigenaufseite";
          }
          else
          {
          $sql2="SELECT * from anzeigen where Anzeige LIKE '$Anzeige' LIMIT ".$start.",$anzeigenaufseite";
          }
          $result2=mysql_db_query($db_name,$sql2,$connect);
          while($anz=mysql_fetch_array($result2))
          {
          ?>
           </td>
           </tr>
           <tr>
           <td><img src =img/blank.gif width =232 height=5></td>
           </tr>
           <tr valign=top >
           <td height=15 background=img/anz_oben-zum-stretchen_kl.jpg>
           <img src =img/blank.gif height=20><br></td>
           </tr>
           <tr valign=top>
           <td class=fliesstext><? echo $anz['Anzeige'] ?></td>
           </tr>
           <tr>
           <td><img src=img/blank.gif width=232 height=5></td>
           </tr>
           <tr>
           <td valign=bottom>
                 <table width="100%" cellpadding="0" cellspacing="0" border="0">
                 <tr><? $name=$anz['usr_id'];
                       $sql3="SELECT * from user where usr_id='$name'";
                       $result3=mysql_db_query($db_name,$sql3,$connect);
                       $logname=mysql_fetch_array($result3); ?>
                       <td width="15%" valign=bottom>
                       <a onclick="fenster('antworten.php?kontakt=<? echo $name;
     ?>','Kontaktaufnahme','391','325','no','center');
    return false">Antworten</a>
                       </td>
                       <td class=seiten valign=bottom width="35%">von:
                       <?
                       echo $logname['Vorname']."&nbsp;".$logname['Name']."&nbsp;";
                       ?></td>
                       <td class=seiten valign=bottom width="30%">Anzeige vom
                       <?
                        $datum = $anz['datum'];
                        list ( $jahr, $monat, $tag, ) = explode("-", $datum);
                        echo sprintf("%02d.%02d.%04d", $tag, $monat, $jahr);
                       ?></td>
           <td class=seiten valign=bottom>Status:
           <? $anz['such_biet'];
                            if  ($anz['such_biet']==b)
               {
               echo "Biete";
               }
               if  ($anz['such_biet']==s)
               {
               echo "Suche";
               } 
               ?></td>
                        </tr>
                        </table>
               </td>
               </tr>
               <tr>
               <td background=img/anz_oben-zum-stretchen_kl.jpg>
               <img src=img/blank.gif height=20><br></td>
               </tr>
               <? } ?>
          </table>
    <? } ?>
    <?
    $z=0;
    while ($seiten>$z)
    {
     $seite=$z+1;
     if($limit==$z)
      echo "<img src=img/blank.gif height=30 width=0>
    <span class=seiten>Seite $seite &nbsp; &nbsp;</span>";
     else
      echo "<img src=img/blank.gif height=30 width=0>
    <a href=suchergebnis2.php?id=$kat_id&limit=$z&search=$Anzeige1
    &such_biet=$such_biet>Seite $seite &nbsp; &nbsp;</a>";

     $z++;
    }
    ?>
    </td>
    </tr>
    </table>
    </body>
    </html>

    EDIT:
    php-tags eingefügt.
    wahsaga

    Zuletzt geändert von wahsaga; 02.06.2004, 14:59.

  • #2
    bitte benutz doch das PHP syntax highlighting. dann kann
    man deinen code besser lesen.

    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

    Kommentar


    • #3
      Welcome,

      wäre gute, wenn du nur die entscheidenden Stellen des Code postest, die aber mittels [PHP]-Tags formatierst. Eine genauere Beschreibung wäre auch nicht schlecht.

      Gruß

      Kommentar


      • #4
        Hi,
        ich versuche es noch einmal genauer zu erklären. Es geht um eine
        Suchmaske einer Tauschbörse in der es Angebot-Anzeigen, Such-Anzeigen
        und Kategorien gibt. Der User hat mehrere Möglichkeiten zusuchen.

        1. nur durch Eingabe eines Suchbegriffs (das geht)
        2. Suchbegriff und Katerorie (geht auch)
        3. Suchberiff und Status (Such-oder Angebot) geht auch

        wenn aber der Suchbegriff und der Status und die Kategorie gewählt
        worden ist gehts nicht mehr.

        Danki nochmal
        Gruss Indra

        Hier nochmal das Script

        PHP-Code:
        <?
              if (isset($_POST['anf_senden'])|| isset($_GET['limit']))
              {
              if (isset($_POST['anf_senden']))
              {
              $Anzeige1=$_POST ['Anzeige'];
              $such_biet=$_POST['such_biet'];
              $Kategorie=$_POST['Kategorie'];
              $limit=$_POST['limit'];
              }
              if (isset($_GET['limit']))
              {
              $Anzeige1=$_GET ['search'];
              $such_biet=$_GET['such_biet'];
              $kat_id=$_GET['id'];
              $limit=$_GET['limit'];
              }
              $kat_id=$Kategorie;
              $Anzeige="%".$Anzeige1."%";
              if(($kat_id!=0)OR($such_biet==b)OR($such_biet==s)OR(($kat_id!=0)
        AND($such_biet==b)OR($such_biet==s)))
              {
              $sql="SELECT * FROM anzeigen where ((kat_id='$kat_id' AND Anzeige
         LIKE '$Anzeige')OR(such_biet='$such_biet' AND Anzeige LIKE '$Anzeige')
        OR(kat_id='$kat_id' AND such_biet='$such_biet' AND Anzeige LIKE '$Anzeige'))";
              }
              else
              {
              $sql="SELECT * FROM anzeigen where Anzeige LIKE '$Anzeige'";
              }
              $result=mysql_db_query($db_name,$sql,$connect);
              $anzahl=mysql_num_rows($result);
              if($anzahl==0)
              echo "Es konnten leider keine &Uuml;bereinstimmungen gefunden werden!";
              $anzahlseiten=$anzahl/$anzeigenaufseite;
              $seiten=ceil($anzahlseiten);
              if($limit=="")
              $limit=0;
              $start=$limit*$anzeigenaufseite;
              if(($kat_id!=0)OR($such_biet==b)OR($such_biet==s)OR(($kat_id!=0)
        AND($such_biet==b)OR($such_biet==s)))
              {
              $sql2="SELECT * from anzeigen where ((kat_id='$kat_id' AND Anzeige
         LIKE '$Anzeige')OR(such_biet='$such_biet' AND Anzeige LIKE '$Anzeige')
        OR (kat_id='$kat_id' AND such_biet='$such_biet' AND Anzeige
         LIKE '$Anzeige')) LIMIT ".$start.",$anzeigenaufseite";
              }
              else
              {
              $sql2="SELECT * from anzeigen where Anzeige LIKE '$Anzeige' LIMIT ".$start.",$anzeigenaufseite";
              }
              $result2=mysql_db_query($db_name,$sql2,$connect);
              while($anz=mysql_fetch_array($result2))
              {
              ?>
        Zuletzt geändert von indra; 03.06.2004, 19:22.

        Kommentar


        • #5
          Huhu, ich nochmal

          Jetz funktioniert alles...was ein Kampf
          Danke nochmal.

          Gruss Indra

          ps es ist mein erstes php-Projekt
          und dafür finde ich ist es recht gut geworden
          wenn Ihr mal schauen wollt
          http://www.eulook.de

          Kommentar

          Lädt...
          X