Dobrodošli, goste ( Prijava | Registracija )

 
Reply to this topicStart new topic

PHP iščitava sve podatke iz MySQL baze, kako to zabraniti

V
Profesor
poruka Jun 29 2010, 10:01
Poruka #1




Grupa: Članovi
Poruke: 93
Datum reg.: 28-January 06
Lokacija: Beograd
Član broj: 3,115



Molim Vas za pomoć.
PHP iščitava sve podatke iz MySQL baze
i kada nije unet nikakav zahtev a klikneš dugme search.
Kako zabraniti u PHP skripti to izlistavanje,
nego tek kad uneseš zahtev onda traži ono što treba.

Evo ga i form i PHP skript:

CODE
  <table width="540" border="0" cellspacing="20" cellpadding="0">
    <tr>
      <td><p class="naslov">Plan očitavanja</p>
          <form id="form1" name="form1" method="post" action="plan.php">
            <p>
              <label>
          <select name="id" class="text" id="id">
            <option value="mesec">Mesec čitanja</option>
            <option value="datum">Datum</option>
            <option value="prethodno">Prethodno</option>
            <option value="broj">Broj dana</option>
            <option value="id" selected="selected">Dan</option>
          </select>
              </label>
              <input name="rec" type="text" class="text" id="rec" size="50" maxlength="50" />
              <input name="post" type="submit" class="text" id="post" value="Pretraži" />
            </p>
        </form>
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td>

<?php

$id = $_POST['id'];

$rec = $_POST['rec'];

$id = addslashes($id);

$rec = addslashes($rec);




if($_POST['post'])

{

if(!$id&&!$rec)

{

die('Niste ukucali potrebe podatke za pretrazivanje.');



}else{

mysql_connect('localhost','root','');


mysql_select_db("ime_baze");


$rezultat = mysql_query("SELECT * FROM tabela WHERE ".$id." LIKE '%".$rec."%'");


$broj_rezultata = mysql_num_rows($rezultat);


echo "Broj rezultata je ".$broj_rezultata."<br>
<hr width='100%' size='1' noshade color='#990000' />";


while($red = mysql_fetch_assoc($rezultat))

{


echo "Dan očitavanja: ".$red['id'].'<br></b>';

echo "Mesec čitanja: ".$red['mesec'].'<br>';
echo "Datum očitavanja: ".$red['datum'].'<br>';
echo "Prethodno očitano: ".$red['prethodno'].'<br>';
echo "Broj obračunatih dana: ".$red['broj'].'<br>';
echo '<br>';


}

}

}

?>
Go to the top of the page
 
+Quote Post
Dead Man Walking
poruka Jun 29 2010, 10:36
Poruka #2




Grupa: Članovi
Poruke: 355
Datum reg.: 12-November 08
Lokacija: Novi Sad / Šid
Član broj: 25,210



Problem je u uslovu jer tvoje selekt polje nije prazno.

if(!$id&&!$rec) => ovo znači da će da se prekine izvršenje samo ako su oba prazna. S obzirom da selekt u ovoj tvojoj formi uvek ima vrednost mislim da bi trebao staviti operator ||

dakle: if(!$id || !$rec)

Ako je jedno od dva polja (tj tekst polje) prazno skripta se ne izvršava dalje.


edit: a ako želiš možeš i da ubaciš prazno polje u selekt listu pa će postojati mogućnost da i ono bude prazno, ovako ti sve zavisi samo od tekst polja.
Go to the top of the page
 
+Quote Post
Profesor
poruka Jun 29 2010, 11:30
Poruka #3




Grupa: Članovi
Poruke: 93
Datum reg.: 28-January 06
Lokacija: Beograd
Član broj: 3,115



Funkcionise operator || .
Sada je sve OK.
HVALA!

Sada cu da probam i foru sa praznim poljem u selekt listi,
ali kapiram da ce funksionisati, ali ovo sa || je mnogo elegantnije.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 



Lo-fi verzija Trenutno vreme: Tuesday 21. May 2013 - 17:56

Sve informacije (poruke, teme i sl.) predstavljaju stavove samo njihovih autora.
Objavljivanje informacija sa sajta u nekomercijalne svrhe moguće je samo uz navođenje URL adrese diskusije.
Za sve druge vidove distribucije potrebno je imati izričitu dozvolu administratora Dizajn Zone i/ili autora poruka.
Autorska prava za sadržaj poruke zadržava njihov autor, osim ako nije drugačije naznačeno.

powered by:Plus hosting