[ kaoCR7 @ 14.01.2014. 02:57 ] @
HTML obrazac(kada napravim ovu skriptu da funkcionise onda cu menjati formu zajedno sa kolonama koje su mi potrebne)
Code:

 <h2>Search</h2> 
 <form name="search" method="post" action="Osnovna pretraga.php">
 Seach for: <input type="text" name="find"  value="yes"/> in 
 <Select NAME="field">
 <Option VALUE="fname">First Name</option>
 <Option VALUE="lname">Last Name</option>
 <Option VALUE="info">Profile</option>
 </Select>
 <input type="hidden" name="searching" value="yes" />
 <input type="submit" name="search" value="Search" />
 </form>



PHP
Code:


<? 
 //This is only displayed if they have submitted the form 
 if ($searching =="yes")   <---------------- OVO JE 12 LINIJA KODA
 { 
 echo "<h2>Results</h2><p>"; 
 
 //If they did not enter a search term we give them an error 
 if ($find == "") 
 { 
 echo "<p>You forgot to enter a search term"; 
 exit; 
 } 
 // Otherwise we connect to our Database 
 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("Pretraga") or die(mysql_error()); 
// Treba nekako definisati promenljivu searching,mozda ovako nekako $searching=$_POST['searching'];
 // We preform a bit of filtering 
 $find = strtoupper($find); 
 $find = strip_tags($find); 
 $find = trim ($find); 
 //Now we search for our search term, in the field the user specified 
 $data = mysql_query("SELECT * FROM users WHERE upper($field) LIKE'%$find%'"); 
 //And we display the results 
 while($result = mysql_fetch_array( $data )) 
 { 
 echo $result['fname']; 
 echo " "; 
 echo $result['lname']; 
 echo "<br>"; 
 echo $result['info']; 
 echo "<br>"; 
 echo "<br>"; 
 } 
 //This counts the number or results - and if there wasn't any it gives them a little message explaining that 
 $anymatches=mysql_num_rows($data); 
 if ($anymatches == 0) 
 { 
 echo "Sorry, but we can not find an entry to match your query<br><br>"; 
 } 
 
 //And we remind them what they searched for 
 echo "<b>Searched For:</b> " .$find; 
 } 
 ?> 


Greska koja mi se javlja glasi Notice: Undefined variable: searching in C:\xampp\nastavak putanje\Search.php on line 12
Ista greska mi se javila u jednoj prethodnoj skripti i resio sam je ubacivanjem ove linije koda koja bi u ovom slucaju trebala da izgleda valjda ovako $searching=$_POST['searching']; .
Mislio sam da se ovako resava problem sa ovom greskom ali sam izgleda pogresio.
Sta treba da uradim da bi se resio ove greske?

Hvala unapred.
[ plus_minus @ 14.01.2014. 03:25 ] @
Ajde promeni tu 12. liniju u ovako nešto..

Code (php):


if (isset($searching) && $searching == "yes")

 


a pre toga, pre nego što pozoveš deo koda koji ti odrađuje $_POST .. dopiši sledeće: $searching = '';

Jedna $searching blanko varijanta.. dakle.

Inače, uvek i uvek, na mestima gde imaš glavne prekretnice, if($somethingImportant) .. uvek gledaj da imaš i opciju broj 2.. else { }
.. ili više njih, naravno ..
npr..

Code (php):

$searching='';

if (isset( $_POST['search'] ) )
 $searching=$_POST['searching'];

if (isset($searching) && $searching != '') {
 
 // Ide očekivani rezultat
 // .. tvoj postojeći kod..
 //

}
else echo 'Ako nije Jes, onda je Možda?';

 


[Ovu poruku je menjao plus_minus dana 14.01.2014. u 05:01 GMT+1]
[ plus_minus @ 14.01.2014. 04:12 ] @
I čisto da ti još malo skrenem pažnju, da za svaki html input "value" trebaš da imaš promenjivu u php-u. Pogotovo za type="text"
Uglavnom, blanko vrednost. Pa onda, kada neko klikne na submit ( type="submit" name="search" == $_POST['search']), ...
..onda blanko, prethodno definisana promenjiva, preuzima post vrednost ( name="'.$find.'" - umesto - name="find" ) ili $find = $_POST['find'] ....
...i onda stvari za čistu proceduru funkcionišu, mnogo drugačije.
A kad na sve to dodamo i nepotrebno pisanje uppecase atributa, još lepše sve.
[ kaoCR7 @ 16.01.2014. 03:24 ] @
Prvo hvala na odgovorima.
Uradio sam kako si mi rekao.
Plus sam dodao ovaj sledeci kod zbog greske u vezi navodno praznih redova

Code:
   if (!$data) {
    echo "Izvrsenje kverija nije uspesno izvrseno  " . mysql_error();
    exit;
  }


NA KRAJU KOD IZGLEDA OVAKO

Code:

<? 
$searching='';
$find='';
$field='';


if (isset( $_POST['search'] ) )
 $searching=$_POST['searching'];

if (isset($searching) && $searching != '') {


 { 
 echo "<h2>Results</h2><p>"; 
 

 
 // Otherwise we connect to our Database 
 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("Pretraga") or die(mysql_error()); 
 
// Treba nekako definisati promenljivu searching,mozda ovako nekako $searching=$_POST['searching'];
 
 // We preform a bit of filtering 
 $find = strtoupper($find); 
 $find = strip_tags($find); 
 $find = trim ($find); 

 //Now we search for our search term, in the field the user specified 
 $data = mysql_query("SELECT * FROM users WHERE 'upper'($field) LIKE'%$find%'"); --------------OVDE MI POKAZUJE SINTAKSNUU GRESKU
    if (!$data) {
    echo "Izvrsenje kverija nije uspesno izvrseno  " . mysql_error();
    exit;
  }
 //And we display the results 
 while($result = mysql_fetch_array( $data )) 
 { 
 echo $result['fname']; 
 echo " "; 
 echo $result['lname']; 
 echo "<br>"; 
 echo $result['info']; 
 echo "<br>"; 
 echo "<br>"; 
 } 
 
 //This counts the number or results - and if there wasn't any it gives them a little message explaining that 
 $anymatches=mysql_num_rows($data); 
 if ($anymatches == 0) 
 { 
 echo "Sorry, but we can not find an entry to match your query<br><br>"; 
 } 
 
 //And we remind them what they searched for 
 echo "<b>Searched For:</b> " .$find; 
 } 
 
 }
else echo 'Nije podnet obrazac';
 ?> 


Nmg da nadjem sintaksnu gresku.STA je greska?
Da li pored nje ima jos nekih nedostataka zbog kojih skripta nece funkcionisati.
Hvala.

[Ovu poruku je menjao kaoCR7 dana 16.01.2014. u 04:53 GMT+1]
[ Nemanja Avramović @ 17.01.2014. 08:51 ] @
Kako misliš da mi možemo da znamo šta je greška? Da gledamo u pasulj?

Ti treba da zaključiš za početak gre je greška, a zatim i šta je greška. Mi smo tu samo da te uputimo. Za početak razgraniči da li imaš sintaksnu ili logičku grešku, odnosno da li ti PHP javlja grešku negde u kôdu (sintaksna greška) ili imaš logičku grešku, odnosno kôd radi, ali ne onako kako si ti zamislio da treba da radi. Ako imaš sintaksnu grešku, PHP će ti najčešće reći šta je greška i na kojoj liniji se nalazi. Logičke greške se malo teže pronalaze, ali nisu neuhvatljive.

p.s. Dok razvijaš, na vrh skripte stavi error_reporting(E_ALL); a posle ga promeni u error_reporting(E_ERROR); ili error_reporting(0);