Új hozzászólás Aktív témák
-
trisztan94
őstag
Sziasztok!
PostgreSQL adatbázisból lekérek egy tömböt, ilyen formában kapom vissza:
{alma,barack,körte}
Ebből nekem ilyet kellene készítenem:
alma, barack, körte
Ennek eléréséhez ezt a kódot használom:
$karakterek = array("{", "}");
$eddigiKategoriakRosszVesszokkel = str_replace($karakterek, "", $shirtImagesDb->categories);
$eddigiKategoriakJoVesszokkel = str_replace(",", ", ", $eddigiKategoriakRosszVesszokkel);Itt ugye az a lényeg, hogy a vesszők mögé be kell rakni egy szóközt. Lehet ezt valahogy egyszerűbben és szebben egyszerre csinálni a { és } karakterek eltávolításával, vagy jó így?
[ Szerkesztve ]
https://heureka-kreativ.hu
-
Tele von Zsinór
őstag
válasz trisztan94 #14751 üzenetére
Lehet egyszerre:
$replace = array(
"{" => "",
"}" => "",
"," => ", ",
);
$output = str_replace(array_keys($replace), array_values($replace), $input);De az érdekesebb kérdés: honnan jön ez az adat eredetileg? Emlékeztet a jsonra, ha valóban az a forrás, akkor már tárold a json_encode kimenetét adatbázisban, és azt egyszerűbb (és szebb) dekódolni. Hosszútávon a legjobb meg ezt nem tömbként, hanem kapcsolótáblával tárolni.
[ Szerkesztve ]
-
trisztan94
őstag
válasz Tele von Zsinór #14752 üzenetére
Király, köszönöm!
honnan jön ez az adat eredetileg?
Ez egy PostgreSQL tömb, annak ez a formátuma. Tényleg eléggé hasonlít a JSON-ra most, hogy így mondod, megpróbálom majd ha lesz egy kis szabadidőm a JSON encode-dal.[ Szerkesztve ]
https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #14753 üzenetére
"Ez egy PostgreSQL tömb, annak ez a formátuma. Tényleg eléggé hasonlít a JSON-ra"
Hát szerintem nem a JSON-re hasonlít, hanem pont egy tömbinicializációra, ugyanúgy, mint például C-ben/C++-ban/C#-ban/Javában/stb... általában JSON-ben az objektum kulcs-érték párok gyűjteménye, ez pedig nem az.Sk8erPeter
-
SektorFlop
aktív tag
Sziasztok!
Egy alapvető dologgal kapcsolatban szeretnék tanácsokat kérni. Már elég régóta php-ok hobbi szinten, viszont világ életemben gondok voltak ezekkel az include és társaival. Megpróbálom pontosabban leírni, hogy mi is a gondom.
Lehet alapjában azzal van a gondom, hogy rosszul kezelem a php-ban az "objektum orientáltságot", ha szabad ilyet mondanom. PHP-nak ezen része nálam nagy űr és nem találtam rá bevett módszert, de rá is térek a lényegre. Szóval, van egy osztályom külön fájlban, majd ha ezt szeretném használni valahol más fájlokban, includolni kell, vagyis én úgy tudom Viszont sokszor már kezdek belekavarodni ezekbe a kapcsolatokba és a kódom is dobálja miatta a hibákat.
Biztos van erre valami bevett módszer, csak én vagyok olyan béna hogy még nem találkoztam vele. Esetleg 1-2 tippet, ötletet tudnátok adni?
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
-
wis
tag
válasz SektorFlop #14755 üzenetére
-
Tele von Zsinór
őstag
válasz Sk8erPeter #14754 üzenetére
Valóban arra is. De ha a bajszok helyett szögletes zárójelet képzelsz oda, plusz az idézőjeleket, akkor máris van egy json tömböd; én meg erre gondoltam.
-
Sk8erPeter
nagyúr
válasz Tele von Zsinór #14758 üzenetére
Sejtettem, de itt nem szögletes zárójelek vannak, és nincsenek idézőjelek. Csak azért jegyeztem meg Trisztánnak, mert kiderült, hogy PostgreSQL tömbről van szó, annak a szintaktikája meg végül is teljesen indokolt, a JavaScriptes tömbökre meg ez speciel pont kevésbé emlékeztet. A json_encode-dal meg végképp nem tudom, mit akar kezdeni ebben az esetben.
Sk8erPeter
-
trisztan94
őstag
Sziasztok!
Korábban kérdeztem a .htaccess-es jelszóvédelemről. Na most itt próbálkozok vele egy ideje, de mindig 500-as server hibát dobál. Elég nagy a .htaccess, biztos rossz helyre pakolom. Így néz ki most a fájl:
#
# Apache/PHP/Drupal settings:
#
# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
Order allow,deny
</FilesMatch>
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
# Follow symbolic links in this directory.
Options +FollowSymLinks
# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php
# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
# There is no end quote below, for compatibility with Apache 1.3.
ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>
# Set the default handler.
DirectoryIndex index.html index.php
# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.
# PHP 4, Apache 1.
<IfModule mod_php4.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
<FilesMatch \.php$>
# Do not allow PHP scripts to be cached unless they explicitly send cache
# headers themselves. Otherwise all scripts would have to overwrite the
# headers set by mod_expires if they want another caching behavior. This may
# fail if an error occurs early in the bootstrap process, and it may cause
# problems if a non-Drupal PHP file is installed in a subdirectory.
ExpiresActive Off
</FilesMatch>
</IfModule>
# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# If your site can be accessed both with and without the 'www.' prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
# RewriteBase /
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
# $Id: .htaccess,v 1.90.2.5 2010/02/02 07:25:22 dries Exp $
RewriteCond %{HTTP_HOST} ^fenykepespolo\.hu$ [OR]
RewriteCond %{HTTP_HOST} ^www\.fenykepespolo\.hu$
RewriteRule ^/?$ "http\:\/\/fenykepespolo\.hu" [R=301,L]
RewriteCond %{HTTP_HOST} ^gyermekpolo\.hu$ [OR]
RewriteCond %{HTTP_HOST} ^www\.gyermekpolo\.hu$
RewriteRule ^/?$ "http\:\/\/gyermekpolo\.hu" [R=301,L]
RewriteCond %{HTTP_HOST} ^horoszkopospolo\.hu$ [OR]
RewriteCond %{HTTP_HOST} ^www\.horoszkopospolo\.hu$
RewriteRule ^/?$ "http\:\/\/horoszkopospolo\.hu" [R=301,L]
RewriteCond %{HTTP_HOST} ^noipolo\.hu$ [OR]
RewriteCond %{HTTP_HOST} ^www\.noipolo\.hu$
RewriteRule ^/?$ "http\:\/\/noipolo\.hu" [R=301,L]
RewriteCond %{HTTP_HOST} ^emblemazottpolo\.hu$ [OR]
RewriteCond %{HTTP_HOST} ^www\.emblemazottpolo\.hu$
RewriteRule ^/?$ "http\:\/\/pologuru\.hu" [R=301,L]
RewriteCond %{HTTP_HOST} ^pologuru\.hu$ [OR]
RewriteCond %{HTTP_HOST} ^www\.pologuru\.hu$
RewriteRule ^/?$ "http\:\/\/pologuru\.hu" [R=301,L]
RewriteCond %{HTTP_HOST} ^szulinapipolo\.hu$ [OR]
RewriteCond %{HTTP_HOST} ^www\.szulinapipolo\.hu$
RewriteRule ^/?$ "http\:\/\/szulinapipolo\.hu" [R=301,L]
#
#RewriteCond %{HTTP_HOST} ^jelespolo\.hu$ [OR]
#RewriteCond %{HTTP_HOST} ^www\.jelespolo\.hu$
#RewriteRule ^/?$ "http\:\/\/gyermekpolo\.hu" [R=301,L]
#
#RewriteCond %{HTTP_HOST} ^csakrapolo\.hu$ [OR]
#RewriteCond %{HTTP_HOST} ^www\.csakrapolo\.hu$
#RewriteRule ^/?$ "http\:\/\/horoszkopospolo\.hu" [R=301,L]Hová pakoljam ezt a kódot:
AuthUserFile /.htpasswd
AuthType Basic
AuthName "Jelszoval vedett tartalom"
Require valid-userMég egy kérdés: a .htaccess a public_html mappa gyökerében van, a .htpasswd fájlt pedig egy mappával feljebb, a gyökér mappában van ("/"). Jól írtam az útvonalat?
Amúgy nem én írtam a .htaccess-t, egy korábbi srác munkáját fejezem be. Eléggé fogom mondjuk miatta a fejem, sok hülyeség van.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #14760 üzenetére
Ezt olvasd el, generáltasd le, és akkor láthatod, milyen útvonalat kell megadnod:
http://tools.dynamicdrive.com/password/Sk8erPeter
-
PumpkinSeed
addikt
válasz trisztan94 #14760 üzenetére
Én úgy szoktam, hogy a phpinfo() függvénnyel megnézem a mappa elérési útvonalát és a teljes elérési utat beleteszem.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
trisztan94
őstag
válasz Sk8erPeter #14761 üzenetére
Olvastam már, nézegettem is már. Nem az útvonal a legnagyobb probléma, vágom ám, hogy hogyan működnek az útvonalak, csak biztosra akartam menni. De attól függetlenül még mindig nem tudom tesztelni, hogy jó helyen van-e, mert akárhova rakom a auth kódot a .htaccess-ben, mindig internal server error-t kapok.
https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #14763 üzenetére
"Nem az útvonal a legnagyobb probléma, vágom ám, hogy hogyan működnek az útvonalak"
Ömm, pont azért linkeltem, mert ezek szerint mégsem vágod. Ott le van írva a módja...
Egyébként ha azt írod, hogy vágod, akkor miért kérdeztél rá? (Idézlek: "Még egy kérdés: a .htaccess a public_html mappa gyökerében van, a .htpasswd fájlt pedig egy mappával feljebb, a gyökér mappában van ("/"). Jól írtam az útvonalat?")"akárhova rakom a auth kódot a .htaccess-ben, mindig internal server error-t kapok"
Igen, ha rossz az útvonal-megadás a fájlhoz, akkor teljesen "normális", hogy 500 Internal Server Error a büntetésed.
De egyszerűbb lett volna ismét Guglizni.
http://httpd.apache.org/docs/2.0/mod/mod_auth.html#authuserfile
"If it is not absolute (i.e., if it doesn't begin with a slash), it is treated as relative to the ServerRoot."
Lényeg: abszolút elérési útvonal kell a document rootodhoz képest eggyel visszábbra, mert azt írod, oda pakoltad a .htpasswd-fájlt (egyébként jól tetted, hogy nem a publikusan elérhető könyvtárba pakoltad).Valami ilyesmi lesz az egész:
AuthName "Azonositsd magadat, IDEGEN!!!!444negynegynegy"
AuthType Basic
AuthUserFile /home/akarmi/trisztanweboldala.hu/.htpasswd
AuthGroupFile /dev/null
require valid-userEbből persze az
AuthUserFile /home/akarmi/trisztanweboldala.hu/.htpasswd
a lényeg, ehhez képest a public_html útvonala ez lenne:
/home/akarmi/trisztanweboldala.hu/public_html
Remélem, így már érthető.Tehát amit csinálnod kell: pont a document rootban írasd ki a document root útvonalát:
echo $_SERVER['DOCUMENT_ROOT'];
ebből megtudod ezt az ilyesmi útvonalat:
/home/akarmi/trisztanweboldala.hu/public_html
és ehhez képest eggyel feljebb lévő útvonalat kell megadnod, a .htpasswd-del kiegészítve.Szerk.:
legalábbis ha jól értettem, nem az a probléma, hogy megkapod a bejelentkezéshez szükséges popupszerűséget a böngészőben, beírod a helyes adatokat, és utána kapsz szerverhibát, hanem már eleve az adott könyvtárhoz navigálásnál kapsz 500-as hibát, tehát még a bejelentkezésre való lehetőséget sem látod. Ugye?[ Szerkesztve ]
Sk8erPeter
-
fordfairlane
veterán
válasz trisztan94 #14760 üzenetére
Hová pakoljam ezt a kódot:
AuthUserFile /.htpasswd
AuthType Basic
AuthName "Jelszoval vedett tartalom"
Require valid-userA végére mehet, nincs különösebb jelentősége a helynek.
Még egy kérdés: a .htaccess a public_html mappa gyökerében van, a .htpasswd fájlt pedig egy mappával feljebb, a gyökér mappában van ("/"). Jól írtam az útvonalat?
Igen, amennyiben az tényleg a root könyvtár. A .httpasswd-re abszolut hivatkozás kell, hogy mutasson. Az Apache processnek, ami alapból a www user-t jelenti, legyen olvasási hozzáférése a fájlhoz.
[ Szerkesztve ]
x gon' give it to ya
-
Sk8erPeter
nagyúr
válasz fordfairlane #14765 üzenetére
Kösz, hogy leírtad ugyanazt, amit én, csak rövidebben
Sk8erPeter
-
trisztan94
őstag
válasz Sk8erPeter #14764 üzenetére
Igen, ha rossz az útvonal-megadás a fájlhoz, akkor teljesen "normális", hogy 500 Internal Server Error a büntetésed.
Na ez az amit nem tudtam! Pedig direkt nézegettem az apache error logokat, de ott sem láttam semmit. Néha amúgy elég érdekesen működik, bejön a login ablak, beírom az adatokat és kapom az Internal Server Error-t, máskor még a login ablak sem jön be.
Nem tudom amúgy, hogy miért relatív útvonalat adtam neki, megpróbálom mindjárt ahogy írtad, abszolút útvonallal.Köszi!
https://heureka-kreativ.hu
-
fordfairlane
veterán
válasz trisztan94 #14767 üzenetére
Nem tudom amúgy, hogy miért relatív útvonalat adtam neki...
A példádban nem relatív útvonal volt. Azt gyanítom, hogy a .htpasswd nem a root folderben volt.
x gon' give it to ya
-
Tamoo
MODERÁTOR
Nem vagyok egy nagy php guru, ráadásul már lefőtt az agyam, nem tudok gondolkozni. Hátha valaki megszán és kisegít..
gondolom a preg_replace az én függvényem. A lila részt kellene valahogy helyettesíteni reguláris kifejezéssel és úgy megadni a paramétereket a függvénynek. Ha jól gondolom... Na ezt nem tudom most megírni.
-
Sk8erPeter
nagyúr
Ezt írtad, hogy abból, hogy
href="http://valami.hu/kep.jpg"
legyen az, hogy
href="http://valami.hu/kep.jpg" data-lightbox="example-2"
és kijelölted a lila részt, vagyis azt, hogy "http://valami.hu/kep".
Erre regexpet írni nem nagy szám, de az "example-2" szöveget honnan kéne szedni? Az a cél, hogy egyszerűen szó szerint example-2-t írjunk bele, ez nem csak egy minta, hogy arra az attribútumra kell majd a replace? Az example-2 szöveghez minek a "http://valami.hu/kep"? Gondolom valamit elírtál, de ezek fényében nehéz segíteni.
Nem az a cél, hogy a href-ben lévő lilán kijelölt részt cseréld a data-lightbox attribútumhoz? Ha igen, akkor miért kell a protokoll (http://), miért kell az elérési út, miért nem elég a fájlnév maga (jelen esetben a kep.jpg-ből a "kep")?
Mit replace-eljünk a lila részből?
Kicsit túl sok kérdést hagytál nyitva...[ Szerkesztve ]
Sk8erPeter
-
Tamoo
MODERÁTOR
válasz Sk8erPeter #14770 üzenetére
Minden jpg-re történő hivatkozás után hozzáakarom még fűzni konkrétan ezt: data-lightbox="example-2" Ennyi. Az a szöveg mindig fix.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Csak a jpg-kiterjesztésre keres (png- és többi képformátum szándékosan kizárva, hogy megfeleljen annak, amit írtál):
$count = null;
$returnValue = preg_replace('/(href=".*?\\.jpg")/i', '$1 data-lightbox="example-2"', $test_string, -1, $count);A $count változó csak azt tartja nyilván, hogy mennyi találat van, egyébként nem lényeges.
GYORSTESZT:
http://www.functions-online.com/preg_replace.html
$test_string = '<a href="http://valami.hu/kep.jpg">valami jpg-kép</a>
<div>asdlajkdsasjld</div>
<a href="asd/kep.jpg">valami jpg-kép</a>
<a href="/akarmi/asd/kep.jpg">valami jpg-kép</a>
<a href="/akarmi/asd/nem.jpg.png">nem jpg-kép</a>
';
$count = null;
$returnValue = preg_replace('/(href=".*?\\.jpg")/i', '$1 data-lightbox="example-2"', $test_string, -1, $count);EREDMÉNY:
<a href="http://valami.hu/kep.jpg" data-lightbox="example-2">valami jpg-kép</a>
<div>asdlajkdsasjld</div>
<a href="asd/kep.jpg" data-lightbox="example-2">valami jpg-kép</a>
<a href="/akarmi/asd/kep.jpg" data-lightbox="example-2">valami jpg-kép</a>
<a href="/akarmi/asd/nem.jpg.png">nem jpg-kép</a>[ Szerkesztve ]
Sk8erPeter
-
Tamoo
MODERÁTOR
válasz Sk8erPeter #14772 üzenetére
Király! Köszi!
és ha minden/több képformátumra szeretném?
Csak utána kell néznem majd ennek, de olyan ritkán használom... kb. mindent elfelejtek.[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Akkor lehet úgy, hogy például felsorolod azokat a képformátumokat, amik nálad előfordulhatnak, most csak azokat írtam bele, amik így hirtelen eszembe jutottak (jpg, png, gif, bmp, tif, tiff, ico, még egy csomó kiterjesztés van):
'/(href=\".*?\.(?:jpg|png|gif|bmp|tiff?|ico)\")/i'
Ez lesz az első paramétere a preg_replace()-nek.
Úgy tudod bővíteni több kiterjesztéssel is, hogy a | karakterrel választod el, és utánaírod az adott kiterjesztést, a fenti mintának megfelelően (a | karakter a "vagy"-ot jelenti).Sk8erPeter
-
Tamoo
MODERÁTOR
válasz Sk8erPeter #14774 üzenetére
Tiszta sor, csak a php-s reguláris kifejezésekkel vagyok hadilábon.
Beépítettem a helyére, tökéletesen működik.
Jövök eggyel.[ Szerkesztve ]
-
PumpkinSeed
addikt
Van egy ilyen kódom:
$fp = fopen ("latogatok_szama.txt",'r');
$current_latogatok_szama = readfile("latogatok_szama.txt");
echo $current_latogatok_szama;A latogatok_szama.txt tartalma: 12
Az output pedig minden esetben: 125
Ez miért van?
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #14776 üzenetére
Biztos azért, mert 125 van a fájlban.
(#14775) Tamoo :
örömSk8erPeter
-
PumpkinSeed
addikt
válasz Sk8erPeter #14777 üzenetére
Igény szerint levideózom, ha nem hiszed el.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
wis
tag
válasz PumpkinSeed #14776 üzenetére
A readfile() a fájl méretét adja vissza, nem a tartalmát
echo helyett használd a var_dump()-t és egyből látod, hogy a visszatérési értéke int és nem string.
[ Szerkesztve ]
-
PumpkinSeed
addikt
(#14780) Sk8erPeter
PHP és MySQL webfejlesztőknek c. könyv 49. oldal:
"A readfile() hívása megnyitja az állományt, megjeleníti tartalmát a szabványos kimeneten, majd bezárja a fájlt."
Akkor most mi, hogy, hogyan?
Illetve
"Reads a file and writes it to the output buffer."
....
[ Szerkesztve ]
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
wis
tag
válasz PumpkinSeed #14781 üzenetére
Igen, a readfile kíirja a tartalmat a kimenetre. A probléma ott volt, hogy a visszatérési értéket is kiírtad.
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #14781 üzenetére
És ebben a mondatban hol szerepel az, hogy a visszatérési értékét kellene felhasználni?
Angol amúgy megy? Mert nem meglepő módon a php.net az elsődleges dokumentációs forrás.
Sk8erPeter
-
PumpkinSeed
addikt
válasz Sk8erPeter #14784 üzenetére
Megértem, de nem nyelvvizsga 100% (amikor utoljára voltam 58% lett.. ), de nem szeretem.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
fordfairlane
veterán
válasz PumpkinSeed #14776 üzenetére
A readfile-t így kell használni:
<?php
readfile("fajlnev");
?>Se fopen nem kell, sem a visszatérési értékkel nem kell foglalkozni.
[ Szerkesztve ]
x gon' give it to ya
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #14785 üzenetére
Mármint az angol nyelvet nem szereted? Hát az kellemetlen, mert infósként nagyjából lehetetlen az angol nyelv értése és használata nélkül létezni.
Sk8erPeter
-
PumpkinSeed
addikt
válasz Sk8erPeter #14787 üzenetére
Ezt tudom, ezért is tanulom.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
csabyka666
addikt
Üdv mindenkinek!
A weblapkészítés topicban már feltettem a kérdésem, onnan irányítottak ide.
Szóval... Szeretnék kérdezni egy SQL-lel kapcsolatos dolgot - MySQL illetve PHP, amivel ezt meg szeretném oldani.
Adott az alábbi rész egy EK-diagramból:
Több-a-többhöz kapcsolat, tehát a szabály értelmében készítenem kell egy további kapcsolótáblát is, amibe bele kell tennem a kettő, már meglévő elsődleges kulcsot, és ezek együtt fogják alkotni a kapcsolótábla elsődleges kulcsát. Eddig tiszta, legalábbis azt hiszem.
Viszont esetemben magának a kapcsolatnak is van tulajdonsága, mégpedig az, hogy egy adott terméket mikor töltöttek fel (érzésem szerint ez nem a termék tulajdonsága, hanem a feltöltésé, azért nem a termékhez tettem). Ezt a tulajdonságot is a kapcsolótáblába kell tennem?További kérdés, hogy a MySQL-lel hogy tudom megértetni ezeket a táblákat? Konkrétan a kapcsolótáblára gondolok, hogy azt miként állítom be, hogy 2 kulcsból jön az elsődleges kulcs, ami csak a kapcsolótáblában elsődleges, mert amúgy idegen kulcs...plusz ugye ott van a feltöltés ideje is.
Utolsó kérdés: amikor például PHP-ből feltöltöm a táblákat adatokkal, akkor a kapcsolótáblával nekem kell foglalkoznom, vagy ezt majd megoldja a MySQL? (Azt már megtudtam, hogy nekem kell ezt lekezelni, de a kérdés továbbra is él: hogyan?)
Köszönöm a segítséget előre is!
[ Szerkesztve ]
Ágdarálást, kaszálást, területtisztítást vállalok profi gépekkel! Elsősorban Zala megye és vonzáskörzete, de minden megkeresést meghallgatok. +36305633091
-
sztanozs
veterán
válasz csabyka666 #14789 üzenetére
Táblákat összekapcsolni adatbázis szinten FOREIGN KEY Constraint-el tudsz.
Lekérdezés szinten pedig JOIN-nal tudsz összekapcsolni táblákat.A MySQL semmit nem old meg helyetted. Mind a táblákat, mind a lekérdezéseket neked kell elkészíteni.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
fordfairlane
veterán
válasz csabyka666 #14789 üzenetére
Mivel a feltöltés külön entitás, ezért a feltöltés ideje a feltöltéshez kapcsolódik. Tehát a feltöltés ideje a kapcsolótáblába kerül.
További kérdés, hogy a MySQL-lel hogy tudom megértetni ezeket a táblákat? Konkrétan a kapcsolótáblára gondolok, hogy azt miként állítom be, hogy 2 kulcsból jön az elsődleges kulcs, ami csak a kapcsolótáblában elsődleges, mert amúgy idegen kulcs...plusz ugye ott van a feltöltés ideje is.
Most nincs sok időm részletesen elmagyarázni, érdemes utána nézni a neten a "mysql set foreign key constraints" szavakkal, hogy hogyan kell foreign key referenciákat beállítani. Röviden annyi, hogy innodb táblaformátumot kell használni, emlékeim szerint indexelni kell az idegen kulcs mezőket is:
A szintaktika le van írva a CREATE TABLE - ALTER TABLE oldalakon, de guglival gyorsan találsz példakódokat.
A kapcsolótáblában az elsődleges kulcs attól függően, hogy egy termék-felhasználó pároshoz egy- vagy több rekord tartozhat, ettől függően vagy a két idegen kulcs PRIMARY KEY ( felhasználóinév , vonalkód ) vagy pedig a PRIMARY KEY (felhasználóinév , vonalkód, időpont )
Utolsó kérdés: amikor például PHP-ből feltöltöm a táblákat adatokkal, akkor a kapcsolótáblával nekem kell foglalkoznom, vagy ezt majd megoldja a MySQL?
Nem értem a kérdést.
[ Szerkesztve ]
x gon' give it to ya
-
csabyka666
addikt
Húh, köszi a választ mindkettőtöknek! Ezt még egy kicsit emésztenem kell, de utána fogok nézni az említett helyeken!
@ fordfairlane: Az utolsó kérdésre közben megkaptam a választ, miszerint mindent nekem kell intéznem.
[ Szerkesztve ]
Ágdarálást, kaszálást, területtisztítást vállalok profi gépekkel! Elsősorban Zala megye és vonzáskörzete, de minden megkeresést meghallgatok. +36305633091
-
nameklako
újonc
Sziasztok !
Elég amatőr vagyok még a témában igaz elég sokat olvasgattam már és azt hallottam hogy ha esetleg valaki tudna egy teljes példát adni utána azt lehetne variálgatni, próbálgatni, hogy a parancsok mit csinálnak.....
Találtam egy jó példát, (a netről szedtem) amin szerintem lehetne gyakorolgatni. Elkezdtem php-ban de sehogysem akart összejönni.
Esetleg lenne valaki aki le tudná nekem programozni a képben szereplő dolgot? Hogy legalább meglegyen a hibátlan program. Utána én magam csendességében elkezdem mélyebben tanulgatni a dolgokat.Előre is köszi, aki esetleg megcsinálná.
http://itcafe.hu/dl/upc/2014-01/11/478506_japrricbtmyjo99w_php_feladat.jpg -
PumpkinSeed
addikt
válasz nameklako #14793 üzenetére
Szvsz ha van kérdésed akkor itt szívesen megmondják rá a profik a legjobb megoldást, de szerintem nem lesz ember a földön aki ezt ingyen megcsinálja helyetted. Azért ezt meg is kell tervezni ahhoz, hogy jó legyen.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
csabyka666
addikt
válasz nameklako #14793 üzenetére
Hát, ha valaki, akkor én nagyon kezdő vagyok a PHP-ban, de hazudnék, ha azt mondanám, hogy egyáltalán neki tudnék állni ennek az "egyszerű" feladatnak.
Ágdarálást, kaszálást, területtisztítást vállalok profi gépekkel! Elsősorban Zala megye és vonzáskörzete, de minden megkeresést meghallgatok. +36305633091
-
rootkiller
őstag
Abba segítsetek nekem legyetek szívesek hogy az admin.php megnyitásakor a GET tömbbe beleíródik egy bizonyos változó aminek segítségével bizonyos tartalom megjelenik vagy sem. Itt a felhasználó ügyködik mindenfélét. Azt szeretném elérni hogy ha bármikor visszatér az admin.php oldalra ugyanúgy megmaradjon az a bizonyos specifikus tartalom, ne tűnjön el.
Köszi!
Artengo TR 990 Pro
-
Sk8erPeter
nagyúr
válasz rootkiller #14798 üzenetére
Mentsd el session-változó(k)ba vagy adatbázisba az adott felhasználóhoz tartozó, megfelelő paramétereket, és az admin.php megnyitásakor ellenőrizd le, hogy az adott felhasználói azonosítóhoz lett-e már korábban elmentve ilyen paraméter-együttes - ha igen, töltsd be azt, ha nem, akkor pedig az alapértelmezett oldalt (tehát legyenek alapértelmezett paraméterek).
A session-változóba mentésnek természetesen hátránya, hogy adott böngészőhöz kötődik, míg az adatbázisba mentésnél akárhol jelentkezik is be, az admin.php megnyitásakor mindig az utoljára mentett paramétereket töltheted be számára.Sk8erPeter
-
rootkiller
őstag
válasz Sk8erPeter #14799 üzenetére
Kösz Brian! Session lett belőle végülis, az pont jó lesz nekem!
Artengo TR 990 Pro
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen