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

Problem sa pretragom !

[es] :: PHP :: Problem sa pretragom !

[ Pregleda: 7445 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Problem sa pretragom !03.04.2017. u 17:34 - pre 85 meseci
Pozdrav !

Da li može neko da mi pomogne u vezi ovog dole koda , ne mogu izvršiti nikako pretragu proizvoda.
Kada unesem proizvod u inputu ne prikazuje nikakvu promenu u tabeli, a potrebna mi je pretraga po (id i proizvodu).
Ovde sam dodao (proizvod='$proizvod' OR) ako dodam (LIKE proizvod='$proizvod' OR) onda nemam ni jedan prikaz u tabeli.
$result = mysqli_query($mysqli, "SELECT * FROM proizvodi WHERE proizvod='$proizvod' OR login_id=".$_SESSION['id']." ORDER BY id DESC");
Jer prilikom logovanja svaki korisnik posebno unosi proizvode i samo su njemu dostupni na uvid tako da bih trebalo da vrši pretragu samo za njih u tabeli
a ne za ostale proizvode drugih korisnika. Unapred hvala za sve one koji žele da mi pomognu!

Evo koda:

Code:

<?php
session_start();
 ?>
<?php
if(!isset($_SESSION['valid'])) {
header('Location: prijava.php');
}
?>
<?php
include_once("konekcija.php");
if(isset($_POST['pretraga']))
$proizvod = mysqli_real_escape_string($mysqli, $_POST['proizvod']);
$result = mysqli_query($mysqli, "SELECT * FROM proizvodi WHERE proizvod='$proizvod' OR login_id=".$_SESSION['id']." ORDER BY id DESC");
?>
<html>
<head>
</head>
<body>
<title>Proizvodi</title>
<a href="index.php">Pocetna</a> | <a href="dodaj.php">Novi proizvod</a> | <a href="odjava.php">Odjava</a>
<br/><br/><br/>

<form action="" method="post" >
<input type="text" name="proizvod" placeholder="Unesite proizvod ...">
<input type="submit" name="pretraga" style= "cursor:pointer" value="Pronadji"></br></br>

<table width='80%' border=0>
        <tr bgcolor='#2196F3'>
                <td>Id</td>
        <td>Proizvod</td>
        <td>Cena</td>
        <td>Rok trajanja</td>
        </tr>
        <?php

          while($row = mysqli_fetch_array($result)) {
            echo "<tr>";
                        echo "<td>".$row['id']."</td>";
            echo "<td>".$row['proizvod']."</td>";
            echo "<td>".$row['cena']."</td>";
            echo "<td>".$row['roktrajanja']."</td>";

}
?>
</table>
</form>
</body>
</html>

Boban
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.tippnet.co.rs.



+218 Profil

icon Re: Problem sa pretragom !04.04.2017. u 09:46 - pre 85 meseci
Umesto OR stavi AND
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem sa pretragom !04.04.2017. u 16:19 - pre 85 meseci
Hvala na odgovoru.

Probao sam već (AND) ali kada se ulogujem prikaže mi praznu tablu pa kada unesem ime proizvoda
u inputu onda mi prikaže rezultat pretrage.
Problem mi je u prikazu prazne table prilikom logovanja zbog ovog (AND) a kada je (OR) onda imam prikaz u tabli prilikom logovanja
ali zato ne reaguje ništa na pretragu ne mogu da provalim šta je u pitanju.
Potrebna svaka pomoć.
Boban
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.tippnet.co.rs.



+218 Profil

icon Re: Problem sa pretragom !05.04.2017. u 08:32 - pre 85 meseci
Imas problem sa postavkom problema a jos veci problem da objasnis sta ti je problem :)
"Kada unesem proizvod u inputu ne prikazuje nikakvu promenu u tabeli, a potrebna mi je pretraga po (id i proizvodu)."
Ova recenica je da ti stane mozak.
Kada uneses proizvod u input mislis da kada uneses proizvod u input search a ne input za dodavanje ili editovanje proizvoda? Proizvod je naziv, grupa, cena, opis, slika... to je sve proizvod... a sta je tebi proizvod to ne znamo, valjda naziv samo.
Kakvu promenu u tabeli zelis da vidis i gde je nastala i kada je nastala ta promena?
Potreban ti je pretraga po id i proizvodu? To ne ide zajedno jer id je jedinstven i ne moze se koristiti u kombinaciji za OR ili AND (barem ne na nacin na koji tebi treba).
Pretraga po proizvodu moze biti po id, po nazivu, po, opisu, po ceni, po grupi.... ni to nije definisano.

Sto se tice SQL ova opet si nejasno objasnio. Ne znamo kako ti izgleda tabela, sta znaci proizvod i nigde ne vidim pretragu po id u kojoj si pricao.

Za pocetak prvo moras da vidis kakvi su ti podaci u tabeli. Znaci vizuelno da ih dozivis i to preko recimo phpmyadmin ili nekog drugog tool-a.
Kada vidis sta imas u tabeli onda sebi zadas sta hoces da izvuces iz te tabele i napises sql i u tom tool-u pokrenes sql i vidis da li si dobio trazeni rezultat.
Naravno trazeni rezultat tebi moze biti ispravan za date podatke ali za neku drugu kombinaciju podataka ne mora biti ispravan pa tako pokusaj da napravis razne kombinacije podatak.
Recimo ako imas jedan login_id u tabeli moze da dodje do drugacijih rezultata ako imas vise razlicitih login_id pa unesi prozivde sa vise login_id.


Onda opet recenica da ti stane mozak "Probao sam već (AND) ali kada se ulogujem prikaže mi praznu tablu pa kada unesem ime proizvoda"
Valjda ti ne prikaze praznu tabelu jer je tabela puno (valjda) vec ti prikaze prazan rezultat?

Probaj lepo da sednes i malo bolje definises pojmove da i mi razumemo i bolje da objasnis problem.
Tesko je kada ti recimo pod tabelom mislis na rezultat a mi mislim na tabelu.
Tesko je kada ti pod proizvodom podrazumevas naziv proizvoda a mi sve vezano za proizvod.




[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem sa pretragom !05.04.2017. u 10:12 - pre 85 meseci
Evo pojašnjenja:
Trenutno postoje (2) korisnika koji se prijavljuju sa različitim (Korisničkim imenom) i (Lozinkom) npr.
1) Korisnik:Boban Lozinka:123
2) Korisnik:Marko Lozinka:12345
Svaki od ovih dva korisnika koji se prijavi sa tačnim korisničkim imenom i lozinkom dobije pristup da može unositi svako svoje proizvode ili (Naziv proizvoda),
(Količinu),(Cenu) tako da kada je uvek prijavljen može pregledati samo svoje proizvode koje je samo on uneo a ne bilo koji drugi korisnik.Ovo je nalik (Account-u).
E sada treba da svaki korisnik izvrši pretragu tih svojih proizvoda koje je uneo trenutno po nazivu proizvoda ili koloni (Proizvod), nije mi sada potrebno da se vrši pretraga po (id) to ću kasnije kada budem u tabli kreirao drugu kolonu za šifru proizvoda sada mi je trenutno (AUTO INCREMENT).
Pogledajte prikačene fotografije:
Sa ovim qverijem: $result = mysqli_query($mysqli, "SELECT * FROM proizvodi WHERE login_id=".$_SESSION['id']." ORDER BY id DESC");
Samo prikazuje unete proizvode (Fotografija:Korisnik_Boban.bmp) i (Fotografija:Korisnik_Marko.bmp)
A sa ovim qverijem: $result = mysqli_query($mysqli, "SELECT * FROM proizvodi WHERE proizvod='&proizvod' AND login_id=".$_SESSION['id']." ORDER BY id DESC");
Prikazuje praznu tablu a prilikom unosa u inputu i klikom na dugme (Pronadji) prikaže traženi proizvod (Fotografija:Boban_prazno.bmp) i (Fotografija:Korisnik_Boban_iz_prazne_table_pronadjen_rezultat_pretrage.bmp).
Evo ponovo koda sa izmenama naziva kolona:
Code:

<?php
session_start();
 ?>
<?php
if(!isset($_SESSION['valid'])) {
header('Location: prijava.php');
}
?>
<?php
include_once("konekcija.php");
if(isset($_POST['pretraga']))
$proizvod = mysqli_real_escape_string($mysqli, $_POST['proizvod']);
$result = mysqli_query($mysqli, "SELECT * FROM proizvodi WHERE proizvod='$proizvod' OR login_id=".$_SESSION['id']." ORDER BY id DESC");
?>
<html>
<head>
</head>
<body>
<title>Proizvodi</title>
<a href="index.php">Pocetna</a> | <a href="dodaj.php">Novi proizvod</a> | <a href="odjava.php">Odjava</a>
<br/><br/><br/>

<form action="" method="post" >
<input type="text" name="proizvod" placeholder="Unesite proizvod ...">
<input type="submit" name="pretraga" style= "cursor:pointer" value="Pronadji"></br></br>

<table width='80%' border=0>
        <tr bgcolor='#2196F3'>
                <td>Id</td>
        <td>Proizvod</td>
        <td>Kolicina</td>
        <td>Cena</td>
        </tr>
        <?php

          while($row = mysqli_fetch_array($result)) {
            echo "<tr>";
                        echo "<td>".$row['id']."</td>";
            echo "<td>".$row['proizvod']."</td>";
            echo "<td>".$row['kolicina']."</td>";
            echo "<td>".$row['cena']."</td>";

}
?>
</table>
</form>
</body>
</html>


Baza je kreirana u PHPMYADMIN-u.
Ako je potreban još neki važan podatak ili nešto nejasno tu sam da odgovorim.



[Ovu poruku je menjao bobans72 dana 05.04.2017. u 12:19 GMT+1]

[Ovu poruku je menjao bobans72 dana 05.04.2017. u 12:20 GMT+1]
Boban
Prikačeni fajlovi
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.tippnet.co.rs.



+218 Profil

icon Re: Problem sa pretragom !05.04.2017. u 12:16 - pre 85 meseci
Nije moguce pronaci rezultat iz prazne tabele.
Kada pricamo o tabelama ne pricamo o html tabelama vec o db tabelama. To sa bilo kime da pricas nesto u vezi sql-u misli se na db tabelu.
Prepravi ovaj red gde pozivas sql u ovako nesto:
Code (php):

$q = "SELECT * FROM proizvodi WHERE proizvod='$proizvod' OR login_id=".$_SESSION['id']." ORDER BY id DESC";
$result = mysqli_query($mysqli, $q);
echo $q;
 

Tako ces ispisati izvrseni query tj sql pa cemo videti sta dalje kada stavis tu.

form ne zatvaras na dobrom metu, treba ranije, Nije neka greska ali ne treba tamo.

[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.tippnet.co.rs.



+218 Profil

icon Re: Problem sa pretragom !05.04.2017. u 12:23 - pre 85 meseci
Kazes "prikazuje praznu tablu a prilikom unosa u inputu i klikom na dugme". Ne znamo sta si uneo u input.
Onda sledece..
1. nemoj koristiti bgcolor='#2196F3' vec koristi css.
2. Takodje i za ovo: width='80%' border=0
3. Bolje koristi mysqli klasu nego procedure.
4. Nemoj u istom fajlu da imas i php i html
5. Proizvode prikazuje samo ako je kliknuto pretraga if(isset($_POST['pretraga'])). Obicno cim dodje prikazu se svi proizvodi.

Vidim da vec nesto znas php i pomalo barata. Trebao bi poceti razmisljati da koristis neki framework.

[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem sa pretragom !06.04.2017. u 08:09 - pre 84 meseci
Rešio sam problem.

Evo rešenja možda nekom zatreba:

Code:

 $result = mysqli_query($mysqli, "SELECT * FROM products WHERE name LIKE '%$proizvod%' AND login_id=".$_SESSION['id']." ORDER BY id DESC");

Ovo sam sa LIKE već probao odmah na početku ali nije radilo falilo je u onom kodu što sam napisao (%) i umesto OR trebao je AND ovo ostalo sve ostaje isto.
I sada sve radi kako treba.
Što se tiče Vlado ove napomene i hvala ti puno na upozorenju ja sam već neke šminke radio u css a ovo što sam stavio (bgcolor='#2196F3') i (width='80%' border=0)
to je samo trenutno te šminke će ići u css-u, a ono 4. Nemoj u istom fajlu da imas i php i html i to ću promeniti ovo sam napisao samo bukvalno jer sam imao problem
sa pretragom jer su mi promakli (Operatori) jednostavno nisam obratio pažnju.
Što se tiče programiranja u PHP sam počeo da učim pre 2 do 3 meseca jer mi je sada trenutno ovo potrebno za sopstvene potrebe ne za bilo kakvu komercijalu a za dalji nastavak videćemo ali mislim da ću nastaviti,a pre toga sam pisao desktop aplikacije u delphi-ju isključivo sa bazama podataka oko petnaestak godina a i dalje ću ako zatreba.
Jedno izvesno vreme sam radio sa (Paradox) starom bazom pa onda access pa inter bazom pa firebird i sa još nekim komercijalnim bazama da ih ne nabrajam sada jer trenutno nisu ni važne e sada počex i sa MYSQL bazom tako da je u mojoj glavi sve pomešano pa otuda i ova query greška a i neiskustva u PHP-u.
Samo još pitanje u vezi:
1.nemoj koristiti bgcolor='#2196F3' vec koristi css
4.Nemoj u istom fajlu da imas i php i html
Zbog čega bih ovo trebao promeniti da li zbog zaštite koda ili nečeg drugog ovo pitam usput ako nije problem ?
U svakom slučaju pozdrav i hvala na tvojoj jedinoj pomoći.
Boban
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.tippnet.co.rs.



+218 Profil

icon Re: Problem sa pretragom !06.04.2017. u 12:07 - pre 84 meseci
Ovo sto si prepravio da bude '%$proizvod%' umesto '$proizvod' nije bila greska u kodu vec u postavci zadatka.
% ti je kao zvezdica, tj dzoker znak. Npr ti imas prozvod 'mlecna cokolada' a trazio si cokolada i ako stoji '$proizvod' onda neces dobiti rezultat a ako stoji '%$proizvod%' onda ces dobiti.
1. Koristi css da projekat razdvojis na sto je vise moguce fajlova. Ako razdvojis html i css onda recimo ako imas tabelu i hoces da dodas novi red umesto jednog tr i jedan lil par td-a ti moras da kucas i ceo style.
Pri tome ako ti je recimo pozadina plava a hoces da promenis u crvenu onda moras da trazis sve redove gde je plavo pa da menjas u crveno a ovako samo promenis css.
Da ne kazem ako isti izgled tabele koristis na jos 10 mesta onda je sve to x 10 posao sa velikom verovatnocom da ces izostaviti nesto. Umesto sat vremena posla ti to uradis za minut.
4. Svakom pocetnku savetujem da razdovji html, css, js i php.
U php radis prikupljanje i obradu podataka i ne zanima te izgled. Ako imas kolegu koji se samo bavi izgledom tj html i css za njega ce biti tesko da u masi tvog php koda trazi odgovarajuci html.
Ako razdvojis onda ce html biti vrlo slican onome sto i dobijes u browseru i lako je tako odrzavati kod.
Opet ti treba da se skonctrises na citanje iz baze, pisanje, brisanje i druge obrade i ne treba da vidis kako to izgleda. Samo gledas php. Neka izgled bude na drugom mestu.
I da ne radis sa nekim kolegom vec ti sam sve to da radis opet ti je mnogo lakse.

Ako ti je razdvojen html onda taj fajl tj html mozes da koristis na vise stranica a ako je pomesan sa php moze ali pises dodatno php u isti fajl i to php koji po logici ne treba tu da stoji i onda se kod sve vise i vise komplikuje.

Za 2-3 meseca bavljenja php-om ovo je lep napredak sto si uradio.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem sa pretragom !06.04.2017. u 18:57 - pre 84 meseci
Hvala na dobrim savetima za ovo što si napisao sve si u pravu pa gledaću da krenem ovim putem a ako nešto dalje zapne evo mene ponovo na forumu za pomoć.
Boban
 
Odgovor na temu

[es] :: PHP :: Problem sa pretragom !

[ Pregleda: 7445 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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