Próbálok összerakni egy keresőt, ami adatbázisból keres kulcsszó alapján. Tudnátok segíteni a lenti kérdésekben?
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>";
}
}
?>
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.
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.
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
É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.
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!
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.
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.
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?
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>
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!