Script search form

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
evident
Mesaje:168

Script search form

imi zice si mie cineva unde gresec aici:

Cod: Selectaţi tot

<html>
<head>
</head>
<body>
<center>
        <h1>evi.net search</h1>
        <form action="cauta-anunt.php" method="get">
            <input type="text" name="k" size="50" value="<?php echo $_GET["k"]; ?>" />
            <input type="submit" value="submit">
        </form>
        <hr />
        <?php
            $k = $_GET["k"];
            $terms = explode(" ", $k);
            $query = "SELECT * FROM anunturi WHERE ";
            foreach ($terms as $each){
            $i++;
            if ($i == 1)
                $query .= "textanunt LIKE '$each' ";
            else
                $query .= "OR textanunt LIKE '$each' ";
}
//conectarea la db
include "connect_to_mysql.php";
$query = mysql_query($query);
$numrows = mysql_num_rows($query)or die(mysql_error());
if ($numrows > 0){
        while ($row = mysql_fetch_assoc($query)){
                  $id = $row['id'];
                $titluanunt = $row['titluanut'];
                $textanunt = $row['textanunt'];
                
            echo "<h2><a href='anunt.php?id=$id'>$titluanunt</a></h2>
            $textanunt<br /><br />";
        }
}
else echo "Nici un rezultat pentru \"<br>$k</b>\"";        
?>
</body>
</html>
e facut dupa un tutorial de pe youtube...
Problema e ca nu imi afiseaza nimic
imi da eroarea:
Notice: Undefined variable: i in C:\wamp\www\evi.net\cauta-anunt.php on line 19
Multumesc

trif Mesaje:500
salut, incearca asa: faci un index.php si pui codul acesta:

Cod: Selectaţi tot

<html>
<head>
</head>
<body>
<center>
      <h1>evi.net search</h1>
      <form action="index.php" method="get">
         <input type="text" name="k" size="50" value="<?php echo $_GET["k"]; ?>" />
         <input type="submit" value="submit">
      </form>
      <hr />
      <?php
         $i = 0;
         $k = $_GET["k"];
         $terms = explode(" ", $k);
         $query = "SELECT * FROM cantari_ppt WHERE ";
         foreach ($terms as $each){
         $i++;
         if ($i == 1){
            $query .= "denumire LIKE '$each' ";}
         else{
            $query .= "OR urlf LIKE '$each' ";
            }
}
//conectarea la db
include "conectare.php";
$query = mysql_query($query);
$numrows = mysql_num_rows($query)or die(mysql_error());
if ($numrows > 0){
      while ($row = mysql_fetch_assoc($query)){
              $id = $row['id'];
            $titluanunt = $row['denumire'];
            $textanunt = $row['urlf'];
            
         echo "<h2><a href='anunt.php?id=$id'>$titluanunt</a></h2>
               $textanunt<br /><br />";
      }
}
else echo "Nici un rezultat pentru \"<br>$k</b>\"";      
?>
</body>
</html>
apoi faci un fisier "conectare.php" si pui codul acesta:

Cod: Selectaţi tot

<?php
$db = mysql_connect("localhost", "root", "parola") or die("Could not connect.");
if(!$db) 
    die("no db");
if(!mysql_select_db("cantari_ppt",$db))
     die("No database selected.");
if(!get_magic_quotes_gpc())
{
  $_GET = array_map('mysql_real_escape_string', $_GET); 
  $_POST = array_map('mysql_real_escape_string', $_POST); 
  $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}
else
{  
   $_GET = array_map('stripslashes', $_GET); 
   $_POST = array_map('stripslashes', $_POST); 
   $_COOKIE = array_map('stripslashes', $_COOKIE);
   $_GET = array_map('mysql_real_escape_string', $_GET); 
   $_POST = array_map('mysql_real_escape_string', $_POST); 
   $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}
?>
si o bd care o gasesti aici:

Cod: Selectaţi tot

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(100) NOT NULL AUTO_INCREMENT,
  `denumire` varchar(150) NOT NULL,
`urlf` varchar(150) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=185 ;
Le modifici tu cum vrei si cum ai tu. LA MINE MERGE BINE. problema este ca daca in bd ai "eminescu" cand cauti si nu dai exact "eminescu" nu iti arata nici un rezultat. daca intampini vreo problema lasi un post aici. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

evident Mesaje:168
imi da eroarea:
Undefined variable: i in C:\wamp\www\searchform\index.php on line 17
si
No database selected.
Desi mi-am pus baza de date

trif Mesaje:500
salut, la mine merge foarte bine cum ti-am aratat mai sus, dar eroare zice ca nu este definit acel "i" si asa ca defineste-l la inceput de tot asa: $i=0; inainte de

Cod: Selectaţi tot

$k = $_GET["k"]; 
si teoretic ar trebui sa mearga. daca nu iti merge eu am un script mai bun decat cel de sus. daca nu reusesti sa rez problema atunci scrie si iti voi posta scriptul acela. sepr sa iti mearga. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

keenbr Mesaje:44
Tabelul in baza de date trebuie sa fie myisam

Cod: Selectaţi tot

<html>
<head>
</head>
<body>
<center>
        <h1>evi.net search</h1>
        <form action="cauta-anunt.php" method="get">
            <input type="text" name="k" size="50" value="<?php echo $_GET["k"]; ?>" />
            <input type="submit" value="submit">
        </form>
        <hr />
        <?php
include "connect_to_mysql.php";

if(isset($_GET["k"]))
$k = $_GET["k"];
else
header("location: /");

$query = "SELECT * FROM anunturi where MATCH( textanunt ) AGAINST ('".$k."' IN BOOLEAN MODE )";

$query = mysql_query($query);
$numrows = mysql_num_rows($query)or die(mysql_error());
if ($numrows > 0){
        while ($row = mysql_fetch_assoc($query)){
                  $id = $row['id'];
                $titluanunt = $row['titluanut'];
                $textanunt = $row['textanunt'];
                
            echo "<h2><a href='anunt.php?id=$id'>$titluanunt</a></h2>
            $textanunt<br /><br />";
        }
}
else echo "Nici un rezultat pentru \"<br>$k</b>\"";        
?>
</body>
</html>