mysql_num_rows

1

mysql_num_rows

offline
  • Pridružio: 13 Mar 2009
  • Poruke: 229

Da ne bih pisao roman sad postavicu celu skriptu:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="menu.css" type="text/css" media="screen" /> </head> <body>  <?php         echo $forma='<form method="POST" action="" >    <strong>Prezime:</strong>    <input type="text" name="prezime" size="" id="prezime" class="field">    <strong>Ime:</strong>    <input type="text" name="ime" size="" id="ime" class="field">                                   <input type="submit" name="submit" value="Pronađi !">    </form>'; include('include/config.php'); if(isset($_POST['submit'])) {              $ime=mysql_real_escape_string($_POST['ime']); $prezime=mysql_real_escape_string($_POST['prezime']);                              $rezultat=mysql_query("set names 'utf8' "); $rezultat = mysql_query("SELECT * FROM radnik WHERE imeRadnika LIKE '%$ime%' AND prezimeRadnika LIKE '%$prezime%'" ); $broj = mysql_num_rows($rezultat) or die (mysql_error()); if($broj>0) {                   echo '<table border="0" width="70%" class="">    <thead>    <tr>    <th scope="col"><strong>Ime</strong></th>    <th scope="col"><strong>Prezime</strong></th>    <th scope="col" width="120"><strong>Lokacija</strong></th>    <th scope="col" width="100"><strong>Kancelarija</strong></th>    <th scope="col" width="100"><strong>Lokal</strong></th>    <th scope="col" width="100"><strong>Tel/Fax</strong></th>    <th scope="col" width="60"><strong>Dekt</strong></th>    <th scope="col" width="60"><strong>VPN</strong></th>    <th scope="col" width="110"><strong>Mobilni telefon</strong></th>    <th scope="col" width="60"><strong>e-mail</strong></th>    </tr>    </thead><tbody>';                                while($red=mysql_fetch_assoc($rezultat))       {          echo'<tr class="odd">';       echo'<tr class="" >';                                echo'<td>'.$red['imeRadnika'].'</td>'; echo'<td>'.$red['prezimeRadnika'].'</td>'; echo'<td>'; if($red['pozicija']==null) echo '- Nepoznato-'; else echo $red['pozicija'].'</td>'; echo'<td>'; if ($red['brojKancelarije']==null) echo '- Nepoznato -'; else echo $red['brojKancelarije'].'</td>'; echo'<td>'; if ($red['brojLokala']==null) echo '- Nepoznato -'; else echo $red['brojLokala'].'</td>'; echo'<td>'; if ($red['telFax']==null) echo '- Nema -'; else echo $red['telFax'].'</td>'; echo'<td>'; if ($red['dect']==null) echo '- Nema -'; else echo $red['dect'].'</td>'; echo'<td>'; if ($red['VPN']==null) echo '- Nema -'; else echo $red['VPN'].'</td>'; echo'<td>'; if ($red['brojMobilnog']==null) echo '- Nepoznato -'; else echo $red['brojMobilnog'].'</td>'; echo'<td>'; if ($red['email']==null) echo '- Nema-'; else echo '<a href="mailto:'.$red['email'].'"><img src="img/letter-icon.gif"></a></td>'; echo'</tr>';    }    echo'</tbody> </table>';                                                       }else echo '<table><tr><td>Nema nikoga/td></tr></table>';                 } ?> </body> </html>

E sad, da napomenem, skript je skolski i znam da se mysql_* funkcije vise ne korsite, ali zanima me sledece. Ovo radi ako u bazi postoje neki zapisi koji ispunjavaju uslov iz sql upita. Ukoliko nema zapisa zeleo bih da odstampam poruku da nema zapisa kao sto sam gore naveo u skriptu. Kada u polje za pretragu unesem nesto sto nema u bazi ne dobijem nikakvu poruku, a kada pogledam source code vidim sledece:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="menu.css" type="text/css" media="screen" /> </head> <body> <form method="POST" action="" onsubmit="return checkInputs();"> <strong>Prezime:</strong> <input type="text" name="prezime" size="" id="prezime" class="field"> <strong>Ime:</strong> <input type="text" name="ime" size="" id="ime" class="field"> <input type="submit" name="submit" value="Pronađi !"> </form>   

Dakle dodje negde dotle i pukne, a cini mi se da sam koristio ispravnu logiku. Zna neko gde gresim? Hvala unapred



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Za pocetak, na vrh dokumenta dodaj error_reporting(E_ALL); 2. ini_set('display_errors', '1');

Javi sta ti ispise Smile



offline
  • Pridružio: 13 Mar 2009
  • Poruke: 229

Ne ispise nista, fora je sto ovde nesto logicki ne sljaka. Dakle onaj deo :

if ($broj>0) {     while($red=mysql_fetch_assoc($rezultat))      {      } } else echo 'Nema tog korisnika';

pravi problem, tj else if petlje se nikako ne izvrsava.

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

$sql = "SELECT * FROM radnik WHERE imeRadnika LIKE '%$ime%' AND prezimeRadnika LIKE '%$prezime%'"; $rezultat = mysql_query($sql) or die (mysql_error()); $broj = mysql_num_rows($rezultat);

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

MSMarkoN :: $sql = "SELECT * FROM radnik WHERE imeRadnika LIKE '%$ime%' AND prezimeRadnika LIKE '%$prezime%'"; $rezultat = mysql_query($sql) or die (mysql_error()); $broj = mysql_num_rows($rezultat);

Koliko ja vidim ovdje ti si samo SQL kod odvojio u posebnu promjenljivu, ne vjerujem da ce to da utice na rad skripte.

@slavkan

Ne mogu sad da ti gledam kod nisam ciste glave Mr. Green pogledacu sutra pa ti javljam Smile

offline
  • Pridružio: 13 Mar 2009
  • Poruke: 229

@MSMarkoN sql upit je uredu tj on vraca ono sto meni treba pa pisao ga onako kao ja ili ovako kao ti isto je. Ja samo zelim da kad mi on ne vrati nista, tj kad u bazi ne postoji ni to ime ni to prezime da ispisem poruku da ne postoji i to je to.

@lnenad hvala na trudu Wink

Mozda jos jedna korisna informacija, ova promenjiva $broj posle izvrsenja upita uredno dobije vrednsot redova ukoliko ih u bazi ima vise od 0, ali ako u bazi nema ni jedan posle izvrsenja upita onda promenjiva $broj ne dobije nikakvu vrednost, a valjda bi trebala da dobije 0. Cudno !

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Promjeni ovo
if($broj>0)
u ovo

 if(isset($broj))

I da, sada gledam, ako ti se zaustavlja na </form> izvrsavanje stranice, postoji sigurno neka greska u kodu jer ti </body> i </html> tagovi nisu uslovljeni a ne ispisuju se. Ajde uradi mysql dump te baze da importujem kod sebe pa da mogu da testiram to kako treba Smile Naravno ako ti isset nije rijesilo problem Smile

offline
  • Pridružio: 13 Mar 2009
  • Poruke: 229

isset nije resio problem. Opet se desava odsecanje nakon submita, ali ponavljam odesecanje se desi samo kada u bazi nema tog imena ili prezimena koje pretrazujem. Evo ti bazu pa pokusaj kod sebe.
https://www.mycity.rs/must-login.png

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Dolazi do greske i to tu gdje sam mislio da dolazi Smile

$broj = mysql_num_rows($rezultat) or die (mysql_error());

Na mysql num rows nema or die jer to nije mysql query i nikada ti nece vratiti mysql gresku. Kada uklonis or die dio i ostavis samo

$broj = mysql_num_rows($rezultat)

Skripta radi Smile

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

slavkan ::@MSMarkoN sql upit je uredu tj on vraca ono sto meni treba pa pisao ga onako kao ja ili ovako kao ti isto je. Ja samo zelim da kad mi on ne vrati nista, tj kad u bazi ne postoji ni to ime ni to prezime da ispisem poruku da ne postoji i to je to.

Kako može da bude isto kad nije isto?
mysql_num_rows samo pozoveš, vraća neki broj. Nema tu die();

Ko je trenutno na forumu
 

Ukupno su 436 korisnika na forumu :: 4 registrovanih, 0 sakrivenih i 432 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 4channer, Dorcolac2, stug, tomigun