Aktív témák
-
DeltaPower
addikt
szerintem:
(SELECT * FROM table1 LEFT JOIN table2 ON (table1.field1=table2.field3 and table1.field1>0))
UNION
(SELECT * FROM table1 LEFT JOIN table2 ON (table1.field2=table2.field3 and table1.field1=0))esetleg
SELECT * FROM table1 LEFT JOIN table2 ON
((table1.field1=table2.field3 AND table1.field1>0)
OR
(table1.field2=table2.field3 AND table1.field1=0))fejből írtam, nincs tesztelve
-
zka67
őstag
Sziasztok! Ismét szükségem lenne egy kis segítségre:
Azt szeretném megoldani, hogy van két index mezőm az egyik táblában. Ha az első nem nulla, akkor az, ha pedig nulla akkor a másik alapján kérdezném le a másik táblából az indexhez tartozó értéket. Nagyjából így képzeltem el, csak nem működik:
SELECT IF(field1 > 0,field1,field2) AS field , table2.field3
FROM table1
LEFT JOIN table2 ON table2.id=field;Van-e erre valami megoldás?
Előre is köszi a segítséget! -
zka67
őstag
Én latin2-t szoktam használni, a db.php fájlom így néz ki, természetesen a $db... változóknak az értékeit értelemszerűen kell beállítani:
<?php
$dbhost = "localhost";
$dbuser = "user";
$dbpassword = "pass";
$dbdatabase = "database";
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
$cp="latin2";
mysql_query("SET NAMES '".$cp."'",$db);
mysql_query("SET character_set_client=".$cp,$db);
mysql_query("SET character_set_connection=".$cp,$db);
mysql_query("SET character_set_database=".$cp,$db);
mysql_query("SET character_set_results=".$cp,$db);
mysql_query("SET character_set_server=".$cp,$db);
?> -
maestro87
őstag
Szia!
A letoltes.php-ban ez van:
<?php
function db_connect()
{
$dbname=""; // Adatbázis neve
$dbhost=""; // host általában: localhost
$dbuser=""; // Felhasználóneved
$dbpass=""; // Jelszavad
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
}
function show($d)
{
$result = mysql_query("SELECT * FROM `szamlalo` WHERE `id` = '".$d."'");// szamlalo: aktuális tábla neve
$line = mysql_fetch_array($result);
return $line['count'];
}
db_connect();
if(isset($_GET['id']))
{
$ip = $_SERVER['REMOTE_ADDR']; $honnan = $_SERVER["HTTP_REFERER"]; $ido = (" ".date("Y.m.d. H:i:s", time())."\r\n");
$result = mysql_query("SELECT * FROM `szamlalo` WHERE `id` = '".$_GET['id']."'");// szamlalo: aktuális tábla neve
$line = mysql_fetch_array($result);
$line['count']++;
mysql_query("INSERT INTO szamlalo(ip,honnan,ido) VALUES ('$ip', '$honnan', '$ido')");
mysql_query("UPDATE `szamlalo` SET `count` = '".$line['count']."' WHERE `id` = '".$_GET['id']."' ");// count: itt számolja az adott kattintást.
header("Location: ".$line['url']);// url: itt tárolja az url-t.
} else {
}
?>
Ezt felmásoltam a főoldal szerverére.A hozzá tartozó .sql fájl meg ez:
CREATE TABLE `szamlalo` (
`id` int(11) NOT NULL auto_increment,
`nev` varchar(100) NOT NULL default '',
`url` varchar(255) default NULL,
`count` int(11) default NULL,
`ip` varchar(100) NOT NULL default '',
`honnan` varchar(100) NOT NULL default '',
`ido` varchar(100) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2;Az index.php-ban pedig így hivatkozok rá:
<?php include("letoltes.php");?>
<a href="letoltes.php?id=1">pdf neve</a>
Letöltve: <b><?echo ' '. show(1) .'';?></b>A php eredeti letöltési helyét sajnos nem találtam meg.
A távoli szervereket több ingyenes tárhelynek képzeld el amin a fájlok vannak. Azért van több szerón, mert ingyenben elég kevés tárhelyet adnak.
A readfile-os megoldáshoz minden href linket módosítani (kiegészíteni) kellene?
Az ékezetekre nem tudsz megoldást? Mert a nem pdf kiterjesztésű fájlokat letudná tölteni, csak az ékezetes karaktereket átnevezi.
-
rt06
veterán
válasz
maestro87 #1793 üzenetére
a letoltes.php-ben mit csinalsz pontosan, hogyan adod at a bongeszonek a php file-t?
ha atiranyitast hasznalsz (erre tippelek abbol, hogy tavoli szerveren levo file-okra is hivatkozol), akkor legjobb tudomasom szerint nem tudod megoldani, hogy letoltesre kinalja a file-t, a kliensoldali beallitasoktol fugg, mit akar majd kezdeni vele a bongeszo
jobb megoldas (viszont ez php beallitasoktol fuggoen nem biztos, hogy mukodni fog*), ha readfile-lal kinyomod a file tartalmat, de meg elotte elkuldod a bongeszo fele az alabbi header-eket:
header( "content-type: application/octet-stream');
header( "content-disposition: attachment; filename="{$filename}" );
ahol a $filename valtozo ertelemszeruen a file neve, amilyen neven fel kivanod kinalni mentesre (ez jelenik meg a mentes ablakban, amit persze a user atirhat)ezutan mehet egy
readfile( $file );
ahol a $file valtozo a file eleresi utvonala a filerendszeren (vagy a tavoli szerveren levo file-ra mutato url*)*: amennyiben tavoli szerverrol szeretned readfile-lal megnyitni az allomanyokat, szukseges az allow_url_fopen valtozot on ertekre allitanod a php.ini-ben
bovebbet php.net-en talalsz a readfile es fopen fgv-ek leirasanal
-
rt06
veterán
a latin1-es karakterkeszletben ninscenek meg a magyar abc betui kozul a kovetkezok: őŐűŰ (ezek helyett hullamos teteju o es kalapos u van legjobb esetben)
en mindenkeppen az utf8_hungarian_ci-t javaslom, esetleg ha nem akarsz utf8-at (bar hirtelen otletem nincs ra, miert ne akarna valaki), lehet meg latin2_hungarian_ci
az utf8/latin2 a karakterkodolas (utf-ben van minden jo, koztuk ekezetes magyar betuk is, a latin2, vagy mas neven az iso-8859-2 pedig tartalmazza a kozepeuropai karaktereket, koztuk a magyar ekezetes betuket is)
a hungarian (esetedben a swedish) az arra vonatkozik, hogy rendezesnel mely nyelv abc-je szerint rendezzen
a ci pedig case insensitive-et jelent, vagyis a kis es nagybetuk kozt nem tesz kulonbseget rendezeskor -
vamzi
senior tag
-
maestro87
őstag
Sziasztok!
Először is leszögezném, hogy nem értek a web programozáshoz, de kellene egy kis segítség a weblapomhoz.
1. Azt, hogy lehetne megoldani, hogy a honlapra feltöltött pdf fájlok ne a böngészőben nyíljanak meg, hanem ajánlja fel a letöltést? (a pdf fájlok linkjei más tárhelyekre (saját) is mutatnak)
2. Van egy letöltés számláló mysql-es php szkriptem. Ami a phpmyadmin felületen kéri az url címet. A link amit meg az index.php-ba illesztek be valahogy így néz ki:
<a href="letoltes.php?id=1">valami</a><?echo ' '. show(1) .'x';?>
A kérdés meg az, hogy hogy lehetne azt megcsinálni, hogy letöltéskor az ékezetes karakterek helyett ne %E7 meg ilyeneket írjon ki a fájl nevében, hanem rendesen az ékezetes betűt?Előre is köszönök minden segítséget!
-
zka67
őstag
mysql-ben a SHOW TABLES; paranccsal, php-ben pedig a mysql_list_tables-el:
$res = mysql_list_tables('database');
while ($row = mysql_fetch_array($res)) {
echo $row[0].'<br />';
} -
vamzi
senior tag
Sziasztok, újabb kérdésem van
Hogyan tudom kilistázni az adatbázisomban szereplő tábla neveket?
A probléma a következő: Az adatbázisban több tábla is van. Mindegyik táblában egy fájlnak a teljes tartalma van, amikkel én a későbbiek folyamán dolgozni szeretnék.
Végeredményben azt szeretném elérni, hogy a szerkesztő oldalon egy listából kiválasztom a táblaneveket és a választottal dolgozok..
Előre is köszi
-
vamzi
senior tag
És lám, működik. De láma vagyok
a lekérésben elfelejtettem mind a két esetben átírni, szóval lehet jó lett volna addslash-sel is
Na mindegy, így jobban tetszik. Ezeket egy újabb lekérésnél kitudom valahogyan szedni belőlük?
Valahogy úgy képzelném a dolgot, hogy mikor bírom, akkor a függvény által formált stringet töltöm fel, mint most, aztán kiolvasom, de úgy, hogy ezek ne legyenek benne, mert ezekkel a sztingekkel dolgoznom kell. Mikor kész vagyok, akkor újra feltöltöm, de már megint a mysql_real_escape_string-es verzióját.
Btw, köszi szépen
U.i:
köszi a tippet, így sokkal érthetőbb, mint a sok macskakörömmel meg vesszővel.
-
rt06
veterán
if ($handle)
{
do
{
$a = fgets($handle);
$b = mysql_real_escape_string($a);
echo $b,"<br>";
mysql_query("INSERT INTO `teszt`(`id`,`teszt`) VALUES('','$a')");
print mysql_error();
}while (! feof($handle));
}
fclose($handle);a kiemelt reszen ne az a, hanem a mysql_real_escape_string fgv-vel megaldott b valtozot hasznald
illetve ha string-be akarsz valtozot beilleszteni, inkabb az alabbi format hasznald (igy akar tombok elemeit is beillesztheted, nem akad ki az idezojelek sokasagan)
$string = "valami {$valtozo} valami mas {$tomb["index"]} meg valami mas";
-
vamzi
senior tag
I\'m gonna grab my passport\r\n
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'm gonna grab my passport ')' at line 1
and be back hopefully by tomorrow.\r\n
\r\nUgyan úgy szintaxis hibát dob az aposztrófos sorokra. Nincs valami egyéb kritériuma? Kódolás vagy valami?
//az adatbázishoz csatlakozás sikeres volt, innen jön a kérdéses programrészlet
if ($handle)
{
do
{
$a = fgets($handle);
$b = mysql_real_escape_string($a);
echo $b,"<br>";
mysql_query("INSERT INTO `teszt`(`id`,`teszt`) VALUES('','$a')");
print mysql_error();
}while (! feof($handle));
}
fclose($handle); -
vamzi
senior tag
Sziasztok!
Aposztróf problémáim vannak.
A művelet a következő:
A szerveren tárolt (angol szövegű[ez csak az aposztrófok miatt érdekes])txt minden sorát szeretném felvinni egy táblába. Ez sikerül is, csak épp amelyik szövegben van aposztróf, azt nem hajlandó felvinni az adatbázisba.
I\'m writing your story.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'm writing your story. ')' at line 1Amint az látszik, előbb ráengedem az addslashes függvényt, majd ki echozom magamnak, hogy lássam is és csak aztán vinném fel az adatbázisba. A backslash-t be is szúrja a megfelelő helyekre, de így sem hajlandó felvinni a táblára.
Egyébként egy tipikus file-t szeretnék felvinni adatbázisba, ami így épül fel:
- sorszám[1-n-ig]
- ebben a sorban egy időpont van
- itt pedig jön a tartalom,
ami több soros is lehet, de legalább egy[tipikusan 2-3 sor]
- ez pedig egy üres sor, amiben csak enter karakter vanés ez ismétlődik véges sokszor
Valaki tudna segíteni? Igazából csak az aposztróf a kérdés, mert amíg nem tudok felvinni egy ilyen egyszerű szöveget: I'am Legend, addig nem is tudok tovább haladni a problémámmal.
-
rt06
veterán
hulye vagyok, azt akartam irni (a link arra mutat, nem tudom, miert datediff-et irtam)
viszont ha igy, masodpercre akarod osszehasonlitani, meg kelleni fog szerintem a time_to_sec fgv is
SELECT * FROM table WHERE TIME_TO_SEC( TIMEDIFF( dt1, dt2 ) ) > 180 * 60;
illetve ez is csak akkor jo, ha a dt1 minden esetben kesobbi, mint a dt2
ha ezt nem tudod elore, vagy valtozo, melyik a nagyobb, akkor igy kellene:SELECT * FROM table WHERE ABS( TIME_TO_SEC( TIMEDIFF( dt1, dt2 ) ) > 180 * 60 );
-
zka67
őstag
Sziasztok! Egy kis help-re lenne szükségem:
Hogyan tudom lekérdezni két datetime mező alapján, hogy nagyobb-e az eltérés mint 180 perc. Tehát nekem azokra a rekordokra lenne szükségem, amelyikben a dt2 - dt1 > 180*60 mp.
Előre is köszi a segítséget!
-
Briganti
tag
En ezt jQuery -vel oldanam meg, pontosabban a $.load fugvennyel ...
a lekerdezes meg php-bol sima kiiratas
Valami ilyesmi a php file:
<div id=''valami_div'>
<?php
$r = mysql_result(mysql_query("SELECT ertek FROM ..."), 0, 0);
echo $r;
$sel = mysql_query("SELECT ... FROM ... WHERE valami = '$r' ");
while ($r2 = mysql_fetch_array($sel) ) {
//masodik lekerdezes kiirasa
}
?>
</div>
<input type='button' onClick='ertekValtoztatas(\"csokkent\") ' value='Csokkent' />
<input type='button' onClick='ertekValtoztatas(\"novel\") ' value='Novel' />Kell egy javascript fuggvenyt, ami valami ilyesmi:
function ertekValtoztatas(action_neve) {
$("#valami_div").load(php_file_neve,{action: action_neve});
}meg annyit csinalsz hogy a php-ba ellenorzod hogy letezike a $_POST['action'] valtozo, es ha letezik akkor az elso lekerdezes utan noveled az $r erteket amerre eppen kell, es ha nem letezik akkor azt jelenti hogy elso betoltes, es nem kell semerre novelni.
Ez csak egy tipp, nem biztos a legjobb megoldas, es persze lehet optimalizalni a dolgot
Sok sikert hozza
-
pape03
csendes tag
Hello!
Van egy mysql lekérdezésem amivel lekérek egy értéket, majd kiiratom. Ezt az értéket felhasználva csinálok még egy lekérdezést. Ezután van 2 gomb amivel szeretném az értéket változtatni hol csökkenteni hol növelni és ez alapján változna a lekérdezés is. Ez hogy lenne megoldható? Előre is köszi.
-
rt06
veterán
válasz
Jester01 #1769 üzenetére
eljutottam vegre odaig, hogy kiprobaljam es gyonyoruen mukodik
bar en megtartottam a parent mezot is a left es right melle, mert ugy nem szamottevo a tabla helyfoglalasa, cserebe sokkal egyszerubb a kozvetlen gyermekek lekerdezesemegegyszer koszonom, pont erre volt szuksegem
-
gabipaci
őstag
válasz
DeltaPower #1771 üzenetére
Köszönöm, de megoldottam "parasztosan".
Béreltem egy admin szervert (20 dolcsi egyszeri költség) és bele van integrálva.
Azért kösz a helpet -
Briganti
tag
Hellosztok, nem talaltam kizarolag PHP -s topicot ugyhogy ide irom
Egy erdekes dologgal talalkoztam, es kivancsi lennek miert is lehet ez, mert nekem mar nincs tippem
Nagyvonalakban leirom hogy mirol van szo: csinaltam egy feluletet ahol flash (swf) fajlokat lehet feltolteni, majd a rendszer html fajlokat general a feltoltott allomanyokkal, ahol fontos tudjam a swf file meretet. Tehat vegigmegy az adatbazison, es szerre mindegyik bejegyzesnek leellenorzi a mereteit es letrehoz egy fajlot. Ezt az elso verzioban elkeszitettem hagyomanyos proceduralis programozasi formaban ( itt lehet hulyeseget irtam, tul reggel van, hogy jobban megfogalmazzam
), es persze kifogastalanul mukodik, es 24 bejegyzesre teszteltem, es a script 2-300 ms alatt lefut.
ahogy lekerem a flash file mereteit:
list($g_width, $g_height) = getimagesize("swf/" . $res_g['g_swf']);
Ugyanezt elkszitettem az M-V-C architekturat alkalmazva, tehat fogtam az elso verziobol a kodot, beraktam a Controller egyik fugvenyebe, es a lekerdezeseket atraktam a Modell osztalyba, majd meghivtam a Controllerbol a fuggvenyt. Ez is tokeletesen mukodik, csak ugyanaz a 24 bejegyzes generalasara 1.7 s -ra van szuksege, ami nagyon nagy kulonbseg, es a rendszer ellesbe majd 3-4 ezres bejegyzest kell kezeljen, es ilyen ido kulombseggel hetekig fog tartani
Ha az elozo sort kiszedem a fuggvenybol es helyettesitem ertekekkel, akkor megint pillanatok alatt lefut, valahogy igy:
$g_width = 200;
$g_height = 1;Tehat nyilvanvalo hogy az a getimagesize fuggveny lassitja le a scriptet, csak eppen azt nemertem hogy egyik verzioba miert gyors, a masikban meg lassu?
Ha van valami tippetek kivancsi vagyok ra
-
DeltaPower
addikt
válasz
gabipaci #1770 üzenetére
ha jól értelmezem a dolgokat:
- kell egy legalább 5.1-es mysql szerver, ami engedi a távoli kapcsolatot. ehhez létre kell hozni egy felhasználót az adatbázishoz, és beállítani hogy melyik hostról érheti el
- arra a gépre ami a plugint futtatja, fel kell telepíteni az odbc drivert a linkről, aztán beállítani a konfigjában az adatbázis elérését
- a web tárhelyeden engedélyezni kell a kimenő kapcsolatokat és telepítve kell legyen a curl függvénytár -
gabipaci
őstag
Sziasztok.
Ebből ki tudna valaki okosítani, hogy hogyan tudnánk megcsinálni?
Requirements:
Access to a MySQL database that accepts remote connections is required so you need to create a user and database if not exists.
It reqiues the use of a MySQL database with INNODB engine that allows remote connections.(MYSQL Version 5.1.x is required!!!)
Also the ODBC 5.1 Driver (the latest is 5.1.7(24.08.2010)) is needed and can be found here http://dev.mysql.com/downloads/connector/odbc/5.1.html .Installation:
The Installation is described in the readme.txt
Extract CChatGUIDStatsLogger.cs into plugin directory.
Set DB Server Settings and the Plugin SettingsAdd the machine running the plugin to the remote mysql access host list.
Will throw a permissions error if not doneEnable outgoing ODBC Connections, located in Tools -> Options -> Plugins
Will throw a permissions error if not doneEnter the correct details for your database connection in the plugin settings tab. You dont need to create tables, the plugin will do that.
The Standard MySQL Port is 3306.
Meg egy másik kiegészítés ez:
outgoing connections allowed and Curl on your Webspace for fetching stats from bfbcs.com (ranks="1")
outgoing connections allowed for ($bc2conn_enable="1")Ez tulajdonképp egy privát stst rendszer a játékszerveren elért eredmények alapján, amit egy adminprogram (procon) felügyel.
Nos, Valakinek van kedve segíteni?Szerk: ha sikerül, így nézne ki: [link]
-
Jester01
veterán
Oracle tud hierarchikus lekérdezést ... mysql, passz ... pedig már az is oracle
MOD: ezt nézd meg
-
rt06
veterán
Hi!
van egy site, ahol starcraft2-es replay-eket lehetfeltolteni, s azokat ligakba sorolni
a ligak tabla a kovetkezo keppen nez ki:
id: int, primary key
parent: int, hivatkozas a ligak tabla egy masik sorara
name: a liga nevea replayek tabla pedig tartalmaz egy mezot, melyben megadhato, hogy az adott repaly mely ligaba tartozik
ez eddig szep, mukodik is, amit szeretnek megoldani, hogy ha bemegyek egy ligaba, akkor ne csak a kozvetlenul ahhoz rendelt replay-eket lassam, hanem emellett az osszes gyermekehez tartozot is
kerdesem, hogy erre mi a legszebb megoldas, illetve ezt php, vagy sql oldalon illik megcsinalni?
sajnos, amik eddig eszembe jutottak, mind eleg csunya megoldasok:
- lekerni rekurzivan az adott liga osszes gyermekehez tartozo replay-eket
- lekerni rekurzivan az adott liga osszes gyermeket, majd union select
- adott mennyisegu join a ligak tablara, es lekeresnel a feltetelbe valami olyasmi, hogy WHERE parent1.parent = X OR parent2.parent = X... (bar ez rendkivul gusztustalan)
- adatbazisban string-kent, osszefuzve tarolni az osszes szulot (ez lekereskor egyszerubb, itt az adatbazis nem tetszik)szoval melyik ut kovetendo? esetleg valami mas?
segitsegeteket elore is koszonom,
Udv: VladimirR -
Sk8erPeter
nagyúr
válasz
vincent001 #1762 üzenetére
Nálam AppServ van fent, de korábban WampServer is volt, azzal sincs gond.
Amúgy a második hiba lehet azért, mert nincs benne a MySQL-könyvtár a környezeti változókban. De ezt elvileg az AppServ elintézi (bár úgy emlékeztem, a WampServer is, de akkor lehet, hogy nem).
Nem tudom, mi van az index.php-dben, az nyitja-e meg a webshopodhoz szükséges fájlokat, feltételezem, hogy igen (ha tényleg az ahhoz tartozó kezdőlapról van szó).(#1765): és már enged csatlakozni az adatbázishoz?
Nehéz így megmondani a hiba okát, hogy nem tudjuk, a szükséges fájl-e az az index.php. -
vincent001
csendes tag
válasz
DeltaPower #1764 üzenetére
Sziasztok,
Na most feltettem az appservet és most ott tartok ,hogy nincs hiba üzened hanem csak egy teljesen üres fehér oldal. Ez akkor jelentkezik ha megnyitom az index.php fájlt.
Üdv
Gábor -
DeltaPower
addikt
válasz
vincent001 #1763 üzenetére
szerintem jelszó gond lesz. localon próbáld meg átírni a prestashop configjában a név/jelszót arra, amivel konzolban is be tudsz lépni.
-
vincent001
csendes tag
válasz
Sk8erPeter #1761 üzenetére
Szia,
Bocsi de rég nem voltam gép közelben. Szóval melyik szerver programot használjam, neked melyik amelyik bejött? Most nálam a wamp fut és a mellékelt képek alapján valamiért hibaüzenetet dob ki a mysql-re pedig ha jól látom akkor ebben van mysql és fut is. Csatoltam egy képet amin két üzenet is látható.
Szóval tanácstalan vagyok mert valamit nagyon elcseszek de nem tudom mit. Már feltettem az appservet is azon sem lett jobb. Egy egyszerű ostoba kérdés. Én a www mappába bemásolt fájlokból az index.php akarom indítani. Gondolom ez nem baj..... -
Sk8erPeter
nagyúr
válasz
vincent001 #1760 üzenetére
Ha tuti jól adtad meg az adatokat (odafigyelve, hogy pl. számíthat a kis- és nagybetű közötti eltérés), akkor egy elég fontos kérdés: telepítettél MySQL-szervert a saját gépedre is?
Apache önmagában nem elég!
Egy elég egyszerű teszt lehet pl. Windows alatt, hogy elindítod a parancssort (Start - Futtatás - cmd ), majd beírod, hogy mysql, és Enter, ha nincs hiba, elindul a MySQL-parancssor, akkor okés, jól működik a szerver.Ha biztosan telepítetted a MySQL-szervert, akkor hibaüzenet alapján elvileg a következők közül nem stimmel valami:
define('_DB_SERVER_', 'localhost');
define('_DB_USER_', '**********');
define('_DB_PASSWD_', '*******');Nézd át, hogy biztos jók-e ezek az adatok.
Ezenkívül figyelj rá, hogy eltérhet a localhoston (a saját gépeden) a jelszó-felhasználónév páros, attól függően, mit állítottál be.Látszik, hogy a PrestaShop MySQL-osztálya akkor jelzi ezt a hibaüzenetet, amikor a fentiekben található hiba miatt nem tud csatlakozni a MySQL szerverhez.
if ($this->_link = @mysql_connect($this->_server, $this->_user, $this->_password))
{
if(!$this->set_db($this->_database))
die(Tools::displayError('The database selection cannot be made.'));
}
else
die(Tools::displayError('Link to database cannot be established.')); -
vincent001
csendes tag
válasz
Sk8erPeter #1759 üzenetére
Szia,
Lehet félre értettél. A prestashop az működik élesben, rendesen fel lett telepítve. A localhoston való tesztelgetés nem működik és a config fájlba nem nyúltam bele, nem írtam át semmit ( mivel nem értek hozzá) de azt olvastam róla, hogy itt is lehet gond amiért nem működhet a localhoston ezért osztottam meg hátha ti látok benne valamit. Persze,hogy próbálkoztam mivel nem kaptam választ ezért megpróbáltam máshol is hátha sikerrel járok, mivel szertném ha működne csak én nem tudom ,miért nem működik amikor szerintem úgy csinálom ahogy kellene.
Köszi
-
Sk8erPeter
nagyúr
válasz
vincent001 #1758 üzenetére
Soha nem használtam még ezt, de miért nem a telepítési útmutató szerint csinálod? OLVASD EL EZT.
Igazából nem is értem, minek turkálsz a config-fájlokban, amikor pont ennek elkerülésére való a felhasználóbarát telepítős módszer.
Látom máshol is feltetted a kérdést...
(grat.)
-
vincent001
csendes tag
válasz
Sk8erPeter #1757 üzenetére
Szia,
php myadmin oldalon megcsináltam az adatbázist úgy hogy az éles rendszerből kiszedtem az adatokat majd a localhoston levőre importáltam.Pontosan annyi lett a sor mint az éles rendszerben. A dolgokat bemásoltam a www könyvtárba.
Nem tudom, hol kell beállítani a localhoston az adatokat. Ez egy prestashop webshop és a configban ilyet találtam. Gondolom ez az ahol a csatlakozási adatok megvannak.
persze én csillagoztam ki a dolgokat.
<?phpdefine('__PS_BASE_URI__', '/');
define('_THEME_NAME_', 'prestashop');
define('_DB_NAME_', 'webshopelitrade');
define('_DB_SERVER_', 'localhost');
define('_DB_USER_', '**********');
define('_DB_PREFIX_', 'ps_');
define('_DB_PASSWD_', '*******');
define('_DB_TYPE_', 'MySQL');
define('_COOKIE_KEY_', 'PdEMbF57zz8vmU7aRaUNIiKPOPFEpzQn2qLubDvDOSOVI6HOwt9zV1wE');
define('_COOKIE_IV_', 'yFnG48BI');
define('_PS_VERSION_', '1.3.1.1');?>
Ennyi elég? Mit küldjek még?
Üdv
Gábor -
Sk8erPeter
nagyúr
válasz
vincent001 #1756 üzenetére
Hogyan próbálsz csatlakozni az adatbázishoz?
Megfelelő a jelszó-felhasználónév párosítás?
A kódod hogy néz ki (persze kivéve a jelszót és felhasználónevet, az nem érdekel)? -
vincent001
csendes tag
Sziasztok,
Ezt a hibaüzenetet kapom
Link to database cannot be established.
amikor a localhoston elindítom a index.php fájlt.
Gondolom, nem jó valami beállításom de mi lehet a baj?Appserver használok de valamiért nem jól működik. mi lehet a baj? Tudnátok ebben segíteni?
Találtam egy fájl amiben a jelszavak meg a felhasználok vannak meg a cookie key. Nem tudom ,hogy ezeket kell-e variálnom?Köszi
-
Sk8erPeter
nagyúr
válasz
Speeedfire #1752 üzenetére
cucka nyilván arra céloz, hogy az elegáns megoldás az, ha a nyers szöveges változatban keresel (igazából pont ezt mondta), nem a HTML-tagekkel teli szövegben - mondok egy nem is annyira elrugaszkodott példát:
tegyük fel, hogy a ckeditor szerkesztője egy adott stílusú szöveget úgy formáz, hogy hozzáteszi a "text" nevű osztályt - pl. beírod a szövegedet (legyen az, hogy 'blabla'), majd megformázod ckeditorral, és tételezzük fel, hogy így fog kinézni eredményként a ckeditor HTML-kódja:
<p class="text">blabla</p>Mit csinálsz akkor, ha valaki rákeres éppen a "text" szóra? A keresőd az adatbázisban megtalálja ezt a karaktersorozatot, még ha az csak a HTML-tagek között is van, és a felhasználó csak néz, hogy miért is jött ki ez a találat, amikor ott csak a 'blabla' karaktersorozat van...
Remélem így már világos, miért okozhat ez problémát. -
Speeedfire
félisten
válasz
vincent001 #1753 üzenetére
Wampserverben van mysql és hozzé phpmyadmin. Exportálni úgy tudsz, hogy a saját adatbázisodra rámész, majd jobb oldalt fent expotrálás. Fájlként lemented visszamész localhostra és ott a phpmyadmin részénél fent jobb oldalt az importálásra mész, betallózod neki a fájl, aztán enjoy.
-
vincent001
csendes tag
Sziasztok,
Abban szeretném kérni a segítségeteket, hogyan kell MySql adatbázisból importálni ,hogy az localhosttra fel tudjam exportálni.
Szeretnék php fájlokat tesztelni illetve nézni ha a css ben átírok valamit akkor hogyan mi változik.
Wampot szeretnék használni mint szerver oldali progi de adatbázis nélkül ez nem fog menni ha jól tudom.Kérlek segítsetek. :-)
Köszi -
cucka
addikt
válasz
Speeedfire #1750 üzenetére
Azért, mert a ckeditor által küldött szövegben vannak html tag-ek is a szöveg közé ékelve (akár egy szavon belül is). Általában a like-os keresés is működik, de ha normálisan szeretnéd megcsinálni, akkor az általam vázolt megoldás jobb.
-
cucka
addikt
válasz
Speeedfire #1748 üzenetére
1. A ckeditor-t be tudod úgy állítani, hogy ne alakítsa át. Nézd meg a doksiját, rengeteg beállítási lehetősége van.
2. A keresett szöveget is átalakítot html kóddá és úgy keresel. Gondolom valamilyen php alkalmazásba szeretnél beilleszteni egy keresőt, ez esetben a htmlentities() függvényt használhatod.Amúgy a keresés már csak azért sem fog így működni, mert a ckeditor a szöveg mellett más html elemeket is eltárol. Kereséshez érdemes eltárolni minden cikkről a nyers szöveges változatot (tehát html tag-ek nélkül) és abban keresni. Ehhez a strip_tags() nevű php függvény tökéletes.
-
Speeedfire
félisten
Az első megoldás jó lett, viszont most meg megint lett egy másik gondom. Ez inkább a ckeditor miatt lehet. Amelyik adatban van ékezet azt átalakítja html kóddá, így nem tudok adatot keresni megfelelően az adatbázisban ahol a ckeditorral töltöttem fel adatot.
Konkrétan a szoveg és rovid mezőkbe töltök fel ilyet.
Pl.: Üdv az oldalon! helyett ez van az adatbázisban:
Üdv az oldalon!
Erre van valami megoldás? Vagy a ckeditornál kellene keresni a megoldást?
-
rt06
veterán
válasz
Speeedfire #1746 üzenetére
az a gond, hogy ha nem adod meg, mi alapjan kapcsolja ossze a tablakat, akkor (ha jol remlik, egy descartes szorzatot kapsz (minden sort osszekapcsol minden sorral)
ket modon lehet ezen segiteni (a join-oknal es a felteteleknel hasznalt mezonevek csak talalgatasok, oda ertelemszeruen helyettesitsd be a kivant mezok neveit):
SELECT
szapar_tartalom.id, szapar_tartalom.cim, szapar_tartalom.tipus,
szapar_tartalom.fid, szapar_tartalom.szoveg, szapar_tartalom.rovid,
szapar_tartalom.datum, szapar_alias.eng, szapar_tipus.nev, szapar_felhasznalo.fnev
FROM `szapar_tartalom`
INNER JOIN szapar_alias ON szapar_alias.tartalom_id = szapar_tartalom.id
INNER JOIN szapar_tipus ON szapar_tipus.id = szapar.tipus_id
INNER JOIN szapar_felhasznalo ON szapar_felhasznalo.id = szapar_tartalom.felhasznalo_id
WHERE ...vagy
SELECT
szapar_tartalom.id, szapar_tartalom.cim, szapar_tartalom.tipus,
szapar_tartalom.fid, szapar_tartalom.szoveg, szapar_tartalom.rovid,
szapar_tartalom.datum, szapar_alias.eng, szapar_tipus.nev, szapar_felhasznalo.fnev
FROM `szapar_tartalom`, szapar_alias, szapar_tipus, szapar_felhasznalo
WHERE szapar_alias.tartalom_id = szapar_tartalom.id
AND szapar_tipus.id = szapar.tipus_id
AND szapar_felhasznalo.id = szapar_tartalom.felhasznalo_id
... -
Speeedfire
félisten
válasz
Speeedfire #1745 üzenetére
lehet én értek valamit rosszul, de úgy olvasom h a join művelet csak tábláknál használható
nálam a tábla ugyan az, csak más mező van megadva
szóval a where mezőnél lenne érdekes a dolog, a szoveg, cim és rovi mezőknél
ha valamit rosszul értelmeztem akkor elnézést -
zka67
őstag
válasz
Speeedfire #1743 üzenetére
Igen, INNER JOIN-al.
-
Speeedfire
félisten
Üdv!
Van egy lekérdezésem:
SELECT
szapar_tartalom.id, szapar_tartalom.cim, szapar_tartalom.tipus,
szapar_tartalom.fid, szapar_tartalom.szoveg, szapar_tartalom.rovid,
szapar_tartalom.datum, szapar_alias.eng, szapar_tipus.nev, szapar_felhasznalo.fnev
FROM `szapar_tartalom`, szapar_alias, szapar_tipus, szapar_felhasznalo
where (
( szoveg LIKE '%$search_text%' )
or ( rovid LIKE '%$search_text%' )
or ( cim LIKE '%$search_text%' )
and ( szapar_alias.tid = szapar_tartalom.id )
and ( szapar_tipus.id = szapar_tartalom.tipus )
and ( szapar_tartalom.engedely = '1' )
and (szapar_felhasznalo.id = szapar_tartalom.fid) )
ORDER BY `szapar_tartalom`.`id` DESCA problémám az h ha a keresett kifejezés benne van a rovid, szoveg vagy cim között mondjuk akár 2-ben is akkor sokkal több eredményt ad mint amennyit kellene.
Meglehet oldani azt h ha a szovegben megvan akkor nem keresi tovább? Vagy csak egy for ciklussal lehet megoldani ezt? -
akopacsi
csendes tag
Sziasztok,
Lenne két kérdésem:
1. Van annak valamilyen hátránya, ha egy query-t nem rendelek hozzá előbb egy string változóhoz, amit aztán elküldök a mysql_query-vel, hanem az alábbi módon közvetlenül szerepeltetem paraméterként?
$result=mysql_query("select * from test", $link) or die(mysql_error());
while ($row=mysql_fetch_array($result)) {
print("$row[name] <br />");
}2. A print utasítás a $row[name] értéket kiírja, de ha $row['name'] szerepel, akkor nem. Mi ennek az oka? Nyugodtan lehet aposztróf nélkül használni?
-
Jester01
veterán
válasz
DeltaPower #1729 üzenetére
Megnézted, hogy az indexeket ténylegesen használja is a lekérdezés?
-
nuendo
tag
válasz
DeltaPower #1731 üzenetére
aham...értem
érdekes mert hát pl az a 40sornyi adat..hát z nem sok..mi lenne ha a 4szeres lenne...
szerintem debuggolj egyet! lehet hogy van pár ciklus ami véges és sok ismétlődő lassító folyamatoto eredményez! tehát végezz részenként kiiratást, hogy mindenhol megkapja-e azokat ez étékeket amiket te szeretnél!
hol van az oldala? mien tárhely? mien php verzió van fennt? -
nuendo
tag
válasz
DeltaPower #1729 üzenetére
ezt a gépenden próbáltad még csak vagy már weben?
-
DeltaPower
addikt
kis segítség vagy ötlet kellene nagy méretű adatbázisok terén tapasztalt emberektől
adott egy kb 40k soros tábla, amit joinolnom kell egy 30k, egy 5k soros és még 2-3 kisebb (1k alatti) táblával, többfeltételes keresés miatt.
a gond ezzel az, hogy elég durva terhelést generál és időnként 30mp körüli query idők jönnek ki.
próbáltam a kereséshez szükséges mezőket egy view táblába összevonni, de így sem gyorsult jelentősen. (a forrás táblákban az összes keresésben vagy joinban szereplő mező indexelve van).
mit lehetne ezzel csinálni, hogy kevesebb erőforrást zabáljon? -
j0k3r!
őstag
hello!
idorent szerint csokkeno sorrendbe rendeztem egy sql tablat. a kerdesem az volna, hogy hogy lehet az elso 5 elemet kiiratni?
az egyszeruseg kedveert legyen a tabla neve: komment, adattagjai: ki,mit,mikor
elore is koszonom a segitseget. -
j0k3r!
őstag
hello!
adott az adatbazisomban pl. 116 komment, ezeket szeretnem 20asaval kilistazni.
mi erre a legegyszerubb/leghatasosabb modszer?
elore is koszonom a segitseget. -
Speeedfire
félisten
Sikerült megszülni az eredményt tökéletesen működik.
$kereses = 1;
while ( $kereses > 0 ) {
if ($i > 0) {
$alias = str_replace('-'.end(explode('-',$alias)),'',$alias) ;
}
$alias .= '-'.$i;
$i++;
$keres = mysql_query("select * from alias where eng = '".$alias."' ");
if (!$keres) {
die('Hiba: ' . mysql_error());
}
$kereses = mysql_num_rows($keres);
} -
ArchElf
addikt
válasz
Speeedfire #1714 üzenetére
Ha nem megy az on duplicate, akkor:
- először "select id", hogy megnézd, van e már feltöltve ezzel a névvel, akármivel
- ha van a selectnek visszatérési érték, akkor UPDATE, ha nincs, akkor INSERT
Nem értem miért kell cifrázni...AE
-
Speeedfire
félisten
válasz
ArchElf #1713 üzenetére
Az auto incrementtel tisztában vagyok én is. Az on duplicate miatt került bele, bár ez csak próbálgatás volt, de mint utólag kiderült amire én szeretném használni arra nem megfelelő.
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;Előbb szeretném a tesztelést és csak a végén beillesztést.
Az if-fel az a problémám, hogy amit fent is írtam már, ha fent van már az az adat h egy akkor abból egy-0-át generál az if viszont ha megint fel akarom tölteni, hogy egy akkor is egy-0 lesz feltöltve mert azt már nem nézi meg hogy az egy-0 fent van-e csak azt h az egy fent van-e, ezért ragaszkodok a while ciklushoz, de nem akar összejönni.Vagy végtelen ciklusba kerülök vagy nem megfelelő adat kerül fel, vagy be sem lép a ciklusba.
-
ArchElf
addikt
válasz
Speeedfire #1712 üzenetére
Akkor mit is szeretnél pontosan csinálni?
Amúgy INSERT esetén nem kell ID-t megadni, ha AUTO-INCREMENT a mező:
egy táblában, ahol a mezők: tabla [id, a, b, c]
elég egy: INSERT INTO tabla (a, b, c) VALUES ($a, $b, $c). AZ ID-t automatikusan legyártja az adatbázis motor.
Insert or update megoldás pszeudo kóddal:
select$ = mysql_query("SELECT id FROM tabla WHERE a = $a")
if (num_rows(select$) != 0)
mysql_query("UPDATE tabla SET a=a$, b=b$, c=c$ WHERE id = ".select$['id'])
else
mysql_query("INSERT INTO tabla (a,b,c) VALUES (a$, b$, c$)")AE
-
ArchElf
addikt
válasz
Speeedfire #1710 üzenetére
Nem ártana, ha az INSERT a while ciklusban lenne
AE
-
Speeedfire
félisten
válasz
ArchElf #1709 üzenetére
Ez már majdnem tökéletes, viszont a második ugyanolyan adatnál hibásan illeszti be.
Pl: ha fent van az h egy, akkor utána az lesz h egy-0 viszont ha megint fel akarom tölteni h egy akkor ismét az egy-0 kerül fel.
Ilyenkor szeretném, hogy egy-1, egy-2 és így tovább
A while ciklusommal van a probléma. -
ArchElf
addikt
válasz
Speeedfire #1708 üzenetére
Talán azért, mert ez csak akkor megy bele, ha a $kereses változó 0...
while ( $kereses == 0 ) {
helyett
while ( $i<$kereses ) {
kellene. A többi részébe nem néztem bele (fel is kellene dolgozni a fetchelt adatokat).AE
-
Speeedfire
félisten
válasz
ArchElf #1707 üzenetére
Azért mert kínomban már mindent kipróbáltam, a mysql referencia oldalon meg volt ilyen. Igazából nem tudom sehogysem megoldani ezt a gondomat.
Az alap elképzelés ez volt de soha nem megy be a while ciklusba, hiába 4 mondjuk a $keresesnek az értékbe:
$id = mysql_insert_id() ;
$keres = mysql_query("select * from alias where eng = '".$alias."' ");
if (!$keres) {
die('Hiba: ' . mysql_error());
}
$i=0;
$kereses = mysql_num_rows($keres);
//echo $kereses;
while ( $kereses = 0 ) {
$alias = $alias.'-'.$i;
$i++;
$kereses = mysql_num_rows($keres);
}
//echo $alias;
$url = 'tartalom.php&tipus='.$tipus.'&id='.$id.'';
$sql2 = mysql_query("insert into alias (url,eng,tid)
values (
'".mysql_real_escape_string($url)."',
'".mysql_real_escape_string($alias)."',
'".mysql_real_escape_string($id)."' ) ");
if (!$sql2) {
die('Hiba: ' . mysql_error());
} -
ArchElf
addikt
válasz
Speeedfire #1706 üzenetére
insert into tabla (a,b,c)
values ('blabla','ez','11' )
on duplicate key update id=LAST_INSERT_ID(id), b= b-0
Ezt miért tetted bele? Update esetében a LAST_INSERT_ID()-nak nincs sok értelme (mondjuk ebben a példában az egész update-nak nincs semmi értelme)AE
-
Speeedfire
félisten
Üdv!
Fel szeretnék tölteni egy adatot az adatbázisba, viszont ha már a fent lévő adat megvan akkor azt szeretném, hogy változtassa meg egy másikra.
példa:
insert into tabla (a,b,c)
values ('blabla','ez','11' )
on duplicate key update id=LAST_INSERT_ID(id), b= b-0Szóval ha már fent van az ez szó akkor írja át ez-0 -ra.
A b tábla egyedi indexxel van ellátva.
-
PazsitZ
addikt
válasz
Speeedfire #1704 üzenetére
Nem néztem csak a regisztrációig és ott pont nincs, de loginnál látom van.
mysql csak akkor menti úgy, ha úgy írod az sql-t vagy már php-ban alakítod md5-re, de ez a példában is látható.
-
j0k3r!
őstag
válasz
PazsitZ #1702 üzenetére
pont most akartam irni.
itt azt irja:
"Amit mi most ellenőrizni forunk, azok a következők:-az összes mezőt kitöltötték - e
-a nickben csak a magyar ábécé betűi, számok, _ és - vannak - e
-valós e-mail címet adtak - e meg
-regisztráltak - e már a megadott nickkel
-a két jelszó egyezik - e"ergo nincs sql injection ellen semmi vedelem.
a masik meg az, hogy a 2 jelszo / 2 email cim egyezesenek az ellenorzese kliens, vagy server oldalon a jobb, ha tortenik?a jelszavakat amugy az sql tablaba titkositva menti el, vagy erre kell kulon valami? (md5 pl.)
Aktív témák
Hirdetés
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- PlayStation 5
- Több mint 500 millió dollárt spórolt az AI a Microsoftnak
- Eredeti játékok OFF topik
- Kiszivárgott a Pixel 10 Pro
- Konteó topic
- CURVE - "All your cards in one." Minden bankkártyád egyben.
- Azonnali navigációs kérdések órája
- Google Pixel topik
- Milyen légkondit a lakásba?
- További aktív témák...
- Samsung Galaxy S22 Ultra 512GB, Kártyafüggetlen, 1 Év Garanciával
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- Új! Számla + 1-3ÉV Gari! Áfás! Gamer PC - Számítógép! R5 8400F / RX 9060XT / 32GB DDR5 / 1TB SSD M.2
- ALIENWARE Area-51 R5
- Bomba ár! Lenovo ThinkPad T480s - i7-8GEN I 16GB I 256GB I 14" WQHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest