Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ne funkcionise definisanje promenljive kod skripte za pretragu

[es] :: PHP :: PHP za početnike :: Ne funkcionise definisanje promenljive kod skripte za pretragu

[ Pregleda: 2124 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kaoCR7

Član broj: 318540
Poruke: 39
37.19.108.*



+4 Profil

icon Ne funkcionise definisanje promenljive kod skripte za pretragu14.01.2014. u 02:57 - pre 79 meseci
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.
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2244 Profil

icon Re: Ne funkcionise definisanje promenljive kod skripte za pretragu14.01.2014. u 03:25 - pre 79 meseci
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]
about:networking
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2244 Profil

icon Re: Ne funkcionise definisanje promenljive kod skripte za pretragu14.01.2014. u 04:12 - pre 79 meseci
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.

about:networking
 
Odgovor na temu

kaoCR7

Član broj: 318540
Poruke: 39
37.19.108.*



+4 Profil

icon Re: Ne funkcionise definisanje promenljive kod skripte za pretragu16.01.2014. u 03:24 - pre 79 meseci
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]
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4382
*.dynamic.isp.telekom.rs.

Sajt: https://avramovic.info


+45 Profil

icon Re: Ne funkcionise definisanje promenljive kod skripte za pretragu17.01.2014. u 08:51 - pre 79 meseci
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);
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Ne funkcionise definisanje promenljive kod skripte za pretragu

[ Pregleda: 2124 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.