» »

[PHP] iskalnik po mysql bazi

[PHP] iskalnik po mysql bazi

urban27 ::

Ciao,
Prosim, pomagajte mi. Nardit morm iskalnik iz tabele seznama nekaj ljudi (Ime, priimek, spol,...). Tabelo sem že kreiral, zdej morm še skripto php, tako da bo islanik iskal npr črka b* -najde vse na b ,... itd. Kje dobim scripto php?
Hvala


[Spremenil naslov teme v skladu z PREBERI ME: označevanje topicov v oddelku programiranje! - snow]
  • spremenilo: snow ()

snow ::

V googla napiši: php mysql search
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

NeOman ::

Ignoriraj oblikovne zadeve, to bos pac spremenil (in seveda imena spremenljivk):

<?php

include("header.php");

echo("<tr>");
echo("<th scope='col' width='150' style='vertical-align:top'>");

include "meni.php";

echo("</th>");
echo("<th scope='col' width='10'></th>");
echo("<th scope='col' width='640'  style='vertical-align:top'>");

$iskanje_avtor = $_POST["iskanje_avtor"];
$iskanje_naslov = $_POST["iskanje_naslov"];
$iskanje_vsebina = $_POST["iskanje_vsebina"];

// povezemo se na podatkovno bazo

require("db_povezava.php");

$iskalni_niz = 'select * from novice where';

if ($iskanje_avtor!='' or $iskanje_naslov!='' or $iskanje_vsebina!='')
{

// generiramo iskalni niz

	if ($iskanje_avtor!='') { $iskalni_niz = $iskalni_niz." avtor='".$iskanje_avtor."' "; }
	if ($iskanje_naslov!='')
	{
		if ($iskanje_avtor!='') { $iskalni_niz = $iskalni_niz." and "; }
		$iskalni_niz = $iskalni_niz." naslov like '%".$iskanje_naslov."%'";
	}
	if ($iskanje_vsebina!='')
	{
		if ($iskanje_avtor!='' or $iskanje_naslov!='') { $iskalni_niz = $iskalni_niz." and "; }
		$iskalni_niz = $iskalni_niz." vsebina like '%".$iskanje_vsebina."%'";
	}

$iskalni_niz = $iskalni_niz." order by id asc";

$poizvedba = mysql_query("$iskalni_niz");

echo("<div align='left' class='naslov2'><b>Iskalni parametri:</b></div>");
echo("<div style='height:5px'></div>");
if ($iskanje_avtor!='') { echo("<div align='left' class='naslov2'>Avtor: $iskanje_avtor</div>"); }
if ($iskanje_naslov!='') { echo("<div align='left' class='naslov2'>Naslov: $iskanje_naslov</div>"); }
if ($iskanje_vsebina!='') { echo("<div align='left' class='naslov2'>Vsebina: $iskanje_vsebina</div>"); }
echo("<div style='height:15px'></div>");
echo("<div align='left' class='naslov2'>");	
$stevec = 1;	
while($vrstica = mysql_fetch_array($poizvedba))
	{
	$poizvedba_user = mysql_query("select id,username from uporabniki");
	$rezultat = mysql_fetch_array($poizvedba_user);
	$avtor_id = $rezultat["id"];
	mysql_close;
	echo("$stevec. <a href='novice.php?action=prikaz&id=".$vrstica["id"]."'>".$vrstica["naslov"]."</a>, avtor: <a href='profil.php?id=$avtor_id'>".$vrstica["avtor"]."</a>");
	$stevec++;
	echo("<div style='height:1px'></div>");
	}
echo("</div>");
}
else
{
	echo("<div align='center' class='naslov2'>Ni vpisanih iskalnih parametrov!<br><br><a href='novice.php?action=iskanje'>Nazaj</a></div>");
}

echo("</th>");
echo("</tr>");

include("footer.php");

?>

jeti51 ::

Da ne bi slučajno uporabil te kode! Ima namreč hude varnostne pomanjkljivosti, poleg tega pa je tudi primer slabe arhitekture, saj je poslovna logika pomešana s predstavitvijo, dostop do baze ni abstrahiran s svojim layerjem itd.
Priporočam ti, da si sam prebereš kakšen tutorial o SQL ter o dostopu do baze iz PHP, potem pa ti ne bo več noben problem spisati skripte pa še naučil se boš več, kot če bi vzel samo eno že narejeno skripto.

thramos ::

poleg tega pa je tudi primer slabe arhitekture, saj je poslovna logika pomešana s predstavitvijo, dostop do baze ni abstrahiran s svojim layerjem itd.


Veš mogoče kje bi se dal zvedeti kej več o tem?

jeti51 ::

Načrtovanje je samo po sebi zelo obsežna tema in človek se lahko tega nauči šele z izkušnjami. Gre pa za probleme, ki se znova in znova pojavljajo pri načrtovanju aplikacij, ter za rešitve (preizkušene metode), ki te probleme dobro in elegantno rešujejo, tako da je potem koda bolj pregledna, aplikacija lažja in cenejša za vzdrževanje itd. Vsemu skupaj se reče načrtovalski vzorci (design patterns) in o tem je napisano malo morje knjig in člankov. Pobrskaj na Googleu za ključnimi pojmi kot so večnivojska arhitektura (n-tier/multilayer/3-layer application/arhitecture), MVC degisn pattern (model-view-controller) itd. Poleg koncepta imaš na enostavnih primerih prikazano, kako te načrtovalske vzorce uporabiti in ko enkrat osvojiš te koncepte, niti pomisliti več ne moreš, kako si lahko prej sploh programiral tako, da je bil tvoj HTML, PHP ter SQL stavki vse skupaj pomešano in manj pregledno, kot bi lahko bilo.

Kar se pa tiče varnostne luknje, si pa poglej "SQL injection". Izogneš se mu lahko s preverjanjem in pravilnim filtriranjem vhodnih podatkov, s pravilno uporabo stored procedur, za to poskrbi tudi vsaka spodobna knjižnica za dostop do baze (poglej si npr. PHP adoDb in prepared statements). Druga huda varnostna luknja, ki jo takole na hitro človek vidi v kodi, pa je nevarnost cross-stie scriptinga (XSS attacks). Tudi to je dobro znana zadeva, o kateri je veliko napisanega.

Mislim, da imaš več kot dovolj materiala za študiranje, če se pa med branjem kaj zatakne, imaš pa vedno na voljo razne forume za vprašanja. Pa vso srečo in malo lukenj v kodi želim.:)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

HTML in SQL pomoč (strani: 1 2 )

Oddelek: Programiranje
517078 (5956) def0r
»

Manjši problem z php kodo!

Oddelek: Izdelava spletišč
10990 (902) glavic
»

Kako izdelati spletno stran na osnovi tabele?

Oddelek: Izdelava spletišč
141938 (1676) Jackass
»

PHP in mySQL

Oddelek: Programiranje
241830 (1538) rasta
»

charset ?

Oddelek: Programiranje
132976 (2812) cahahopie

Več podobnih tem