Kezdőoldal » Számítástechnika » Weblapkészítés » Próbálok összerakni egy...

Próbálok összerakni egy keresőt, ami adatbázisból keres kulcsszó alapján. Tudnátok segíteni a lenti kérdésekben?

Figyelt kérdés

Elvileg a var dump-t ki kellene venni. viszont ha kiveszem nem írja ki a keresés eredményét(igaz vannak benne olyan sorok, ami nem kellene pl.: object(stdClass)#1 (13) { ["nid"]=> string(1) "8" ["name"]=> string(29)).Mit írjak át, hogy müködjön?

Ezen kívül szeretném az eredményt kiiratni egy aloldalra. hogyan oldjam meg?



<?PHP

##############################

$_MYSQL['HOST'] = ""; // MySQL host

$_MYSQL['USER'] = ""; // MySQL felhasználónév

$_MYSQL['PASSWORD'] = ""; // MySQL jelszó

$_MYSQL['DB'] = ""; // MySQL adatbázis


$_CONF['TABLA'] = "news"; // Amelyik táblában akarunk keresni

$_CONF['MEZO'] = "name"; // Abba egy bizonyos mezo amelyben keresünk

##############################


mysql_connect( $_MYSQL['HOST'], $_MYSQL['USER'], $_MYSQL['PASSWORD'] );

mysql_select_db( $_MYSQL['DB'] );



if(!IsSet($_REQUEST['search_text']) || empty($_REQUEST['search_text'])) {

print'

<form method="GET" action="search.php">

<input type="text" name="search_text" size="25">

<input type="Submit" value="Keresés">

</form>';

} else {



$search_text = mysql_escape_string($_REQUEST['search_text']);


$eredmeny = mysql_query("SELECT * FROM ".$_CONF['TABLA']." WHERE ".$_CONF['MEZO']." LIKE '%$search_text%'");


while($sor = mysql_fetch_object($eredmeny))

{

var_dump($sor);

$mezo = $sor->cim;

$name = $sor->uzenet;

$mid = $sor->datum;

$link = $sor->id;



echo "<p>".$link.". ".$mező."<hr>".$name."<hr>".$mid."</p>";



}


}


?>



2015. júl. 17. 08:38
 1/9 anonim ***** válasza:

1, ne hagynálj mysql_ függvényeket.

2, nézd meg hogy milyen sruktúrát dumpolsz, abban nid meg name van itt most csak, azok a mezők amihez hozzá tudsz férni, tuti jó táblában próbálkozol?

3, hiába a mysql_escape_string akkor is csúnya egybe fűzni a lekérésnél az SQL-t. Mint már írtam az 1. pontban, ne használj mysql_ függvényeket, helyett mysqli-t vagy PDO-t prepared statementekkel.

2015. júl. 17. 09:31
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

ha msqli függvényre irom át, akkor semmit sem ír ki.


a nid meg a name mezőben kellene keresnie és a tényleges tartalom mellett írja még ki azt amit fent írtam.

2015. júl. 17. 10:12
 3/9 Drone007 ***** válasza:

Ne haragudj, de nagyon úgy tűnik, hogy neked fogalmad nincs mi az a kereső, mire való, mi az az adatbázis, mik a lekérdezések, egyáltalán mi az a php.

Ez most olyan, mintha bontóból elhoztál volna egy acpumpát, hozzágyorskötőzöd a trabantod motorjához, és csodálkozol, hogy nem működik.

1. ha szeretnéd magad megoldani a problémát, akkor javaslom tanuld meg a php és sql kezelésnek legalább az alapjait.

2. ha mással akarod megcsináltatni, akkor fizetési megjelöléssel rakd ki a kérdést

2015. júl. 17. 10:12
Hasznos számodra ez a válasz?
 4/9 A kérdező kommentje:

Én nem haragszom, Te se haragudj ezért de

nyilván ha értenék ezekhez a dolgokhoz, akkor nem a gyakorikérdések.hu-n kérdeznék.ennyi tudási szinttel összeraktam már pl. egy login rendszert a legutóbb,ami adatbázisból veszi a userek jogosultságait. nyilván kértem a neten segítséget. De magam raktam össze.Sikerült mert voltak olyan emberek, akik segíteni akartak és tudtak. Azzal, hogy felsorolod a tudásbeli hiányosságaimat vagy hogy mit kellene megtanulnom esetleg hogy használjam a google keresőt nem segítesz. ha nem akarsz ne segíts, nem személyesen Tőled kértem a segítséget. nem kértelek, hogy kommenteld a bejegyzést. olyan emberek segítségét kérem/kértem akik segíteni akarnak és nem arra gondolok, hogy milyen hülye a kérdező. köszönöm szépen az eddigi segítségedet.

2015. júl. 17. 10:26
 5/9 Drone007 ***** válasza:

Kedves kérdező, én nem hülyéztelek le. De azt látnod kell, hogy a kérdésedben rejlő dolgokra a google baromi gyorsan kidobja a választ.

Ha valóban te akarod megcsinálni, akkor először is nézz utána az alapoknak. (pl codeacademy vagy w3schools) Elhiszem, hogy a neten szerzett kódokból összeollóztál már egy login rendszert (ahogy te írtad), de hidd el nekem - mint szakértőnek - hogy ha nem érted mit pakolsz össze, akkor hosszútávon csak neked lesz rossz.


Persze igazad van, mindenki kezdi valahol, de amikor én kezdtem, akkor a magam erejéből megtanultam amit lehetett, és csak akkor kérdeztem meg valakit, amikor végképp nem találtam megoldást könyvekben vagy a neten. A mai fiataloknak is meg kéne szokniuk az önerő szó gyakorlását mielőtt triviális kérdésnek álcázott kérésekkel bombáznak másokat.


Sokaknak szoktam segíteni, ha úgy érzem, hogy látok a feltett kérdés mögött munkát, amit a keresésbe ölt. Nálad ezt nem érzem, bocs.


Sok sikert!

2015. júl. 17. 23:10
Hasznos számodra ez a válasz?
 6/9 Djjjozsiiiii ***** válasza:

A dump alapján csak ezek a mezők léteznek a táblában, amiből lekérsz.

object(stdClass)#1 (13) { ["nid"]=> string(1) "8" ["name"]=> string(29))


Vagyis a $sor->nid és $sor->name változók.

Ezeket inkább ne tedd újabb változókba, csak azért hogy kiírasd őket.

Ha már mysql_ függvényeket használod, a mysql_escape_string helyett a mysql_real_escape_string() -et használd.


Ezalatt mit értesz:

"Ezen kívül szeretném az eredményt kiiratni egy aloldalra. hogyan oldjam meg? "


Plusz, "$mező" -vel kapcsolatban, szokj le az ékezetekről ha változóneveket használsz. Egyáltalán nem célravezető gyakorlat.

2015. júl. 18. 16:26
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:

köszönöm a segítő szándékot


Az adatbázisból az összes mezőt kiírja, nekem csak a mező kellene. ezért írtam fent a $_CONF['MEZO'] = "name";


Az eredménynek létrehoztam egy aloldalt, amin ugyanazon a boxot és elemek vannak, mit a weboldal főoldalán. Ide szeretném kiiratni az eredményt. include-al próbáltam megoldani, de gyakorlatilag nem jelenik meg csak egy üres fehér oldal az eredménnyel.

2015. júl. 20. 09:05
 8/9 A kérdező kommentje:

az adatbázis részt megoldottam, most már azt írja ki, amit szeretnék.


az aloldalon való megjelenítést hogyan próbáljam megoldani? include-ni kellene?de hogyan? a keresés eredményét tároljam el és azt hívjam meg az aloldalon?

2015. júl. 21. 10:37
 9/9 Djjjozsiiiii ***** válasza:

Ha az aloldalt search.php -nek hívod, akkor az valahogy így épül fel:


include("kapcsolodas.php"); // ebbe teszed a MYSQL -hoz való kapcsolódást


include("fejlec.php"); // ebbe teszed a dizájn fejrészt, menüpontokat


/* ide tehetetd ki a formot meg a keresés lekérését */


include("footer.php"); // ebbe meg a lábléc kerülhet.



Így ha több aloldalt készítesz, nem kell mindegyikbe betenned külön-külön a kapcsolódást és a HTML kódrészeket.


Így lesz minden aloldalnak egy fix dizájnja, közös adatbázis kapcsolódása. Menüpont bővülés esetén elég lesz csak a fejlec.php -ben átírnod a menüt. Ez egy olyan praktikus dolog, amire az include() használatos, annyi kiegészítéssel, hogy ez nagyon alap technika.


<offtopik>

Modernebb oldalt ilyen módon nagyon kínkeserves 'leprogramozni'.


Érdemes megismerni az MVC tervezési mintát.

</offtopik>

2015. júl. 23. 19:09
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!