- Fejhallgató erősítő és DAC topik
- OLED monitor topic
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- AMD Navi Radeon™ RX 9xxx sorozat
- Egérpad topik
- AMD Navi Radeon™ RX 6xxx sorozat
- HiFi műszaki szemmel - sztereó hangrendszerek
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- Hisense LCD és LED TV-k
- Milyen házat vegyek?
Aktív témák
-
papa019
senior tag
válasz
Briganti #2103 üzenetére
Még egy kérdésem lenne:
Ha csinálok egy ilyen kódot:$result = $DB->query("SELECT * FROM places WHERE id = '$parent_area')");
$result->setFetchMode(PDO::FETCH_COLUMN);
while($row = $result->fetch())
{
$has_parent=$row['parent_has_parent'];
}Akkor a PHP hibát ír ki:
SCREAM: Error suppression ignored for
( ! ) Fatal error: Call to a member function setFetchMode() on a non-objectA lekérdezés egyetlen sort ad ki eredményül, ennek az egyik attribútumából szeretnék változót létrehozni. Miért nem működik ez a megoldás, és mi lehet a helyes megoldás erre?
Ha így próbálom megoldani:
$result = $DB->query("SELECT parent_has_parent FROM places WHERE id = '$parent_area')");
$row = mysql_fetch_row($result);
echo 'alert('.$row[0].')';Akkor pedig az alábbi hiba van:
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\ajaxPost.php on line 20
-
cucka
addikt
válasz
Briganti #1967 üzenetére
az egyetlen gond a te lekerdezesesidben hogy csak a cikkek tabla tartalmat kapom meg, nem lesz melletuk 1-1 tag is
Mivel egy cikkhez tetszőleges számú tag tartozhat, nem látom, hol segít az, ha ezek közül véletlenszerűen 1 megjelenik a sorokban.Egyébként a lekérdetzéseid 1-2 ms alatt lefutnak, nem értem, mit akarsz még optimalizálni rajtuk. Ami jól működik, azt nem kell megjavítani.
-
cucka
addikt
válasz
Briganti #1965 üzenetére
Valami hasonló esetleg?
select cikkek.* from cikk_tag left join cikkek on (cikk_tag.cikk_id=cikkek.id) group by cikkek.id
vagy
select * from cikkek where exists (select * from cikk_tag where cikk_tag.cikk_id=cikkek.id)Amennyiben a kulcsok indexelve vannak (primary és foreign egyaránt), mindkét lekérdezés elég gyors lesz.
-
zka67
őstag
válasz
Briganti #1822 üzenetére
<?
date_default_timezone_set('UTC');
$ts = strtotime("2010-12-15 18:00:00");
echo "1 - PHP time: " .$ts ."<br>";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script>
var d = new Date()
var timezone = -d.getTimezoneOffset()*60;
var cur_date = new Date("Dec 15 2010 18:00:00");
ts = Math.round(cur_date.getTime()/1000);
document.write("2 - js time: " + ts + "<br>");
document.write("3 - timezone offset: " + timezone +"<br>");
document.write("4 - utc time: " + (ts + timezone) + "<br>");
</script>
</head>
<body>
</body>
</html>Megmagyarázhatatlan módon a
var cur_date = new Date(2010, 12, 15, 18, 0, 0, 0);
sorod a következő eredményt adja:
Sat Jan 15 2011 18:00:00 GMT+0100 -
zka67
őstag
válasz
Briganti #1805 üzenetére
Én ezt valahogy úgy csinálnám meg, hogy az első php-ben lekérdezném, hogy összesen hány művelet lesz. (query ... COUNT). Majd indítanék egy timert a legkisebb értékkel. A timer rutinjában ajax-szal megívnám a progress bar képét generáló php programot, aminek így már át tudom adni azokat a paramétereket, amikre szüksége van a progress barhoz és a fájlok egy részének a legenerálásához. Pl. kezdő sorszám, darabszám, összes darab, a progr.bar php-ben pedig ezek alapján ismét lekérdezném az adatokat (query ... LIMIT), és ebben generálnám le először a fájlokat, majd a progress bar képét, amit a végén visszaadok a hívó proginak. Amikor ez megjött, újraindítom a timert ha van még adat.
-
VladimirR
nagyúr
-
ArchElf
addikt
válasz
Briganti #1380 üzenetére
1. a valami, valami2, valami3 mappák és van bennük default oldal (index.html, index.php, stb)
2. a valami, valami2, valami3 fájlok és azokat dolgozza fel a webszerver
3. a valami, valami2, valami3 kicsit bonyolultabb kifejezések (pl valami/oldal/kljghkldfklsj/aloldal), ilyenkor a középső rész pl sessionID lehet (szintén webszerver beállítás - bár nem vagyok benne biztos, hogy az apache ezt - alapból - pont támogatná)
...
n. a könyvtárak/fájlok nem léteznek és a 404 kezelője helyére tesznek be értelmezőtAE
-
Benmartin
senior tag
válasz
Briganti #1213 üzenetére
$res = mysql_query(''SELECT alma.nev,korte.nev FROM alma,korte'');
while($db = mysql_fetch_row($res)) {
print $db[0]; //alma.nev
print $db[1]; //korte.nev
}
persze ezzel vigyázni kell, mert addig íratja ki a felsorolt változókat, amíg végig nem pörög a while, ha a nev mezők sorainak száma megegyezik nem lesz gond.
[Szerkesztve] -
Lortech
addikt
válasz
Briganti #1198 üzenetére
Mi az akadálya annak, hogy a 3. 4-es alapján rendezz.
SELECT * FROM materia WHERE cod LIKE '$cod%' ORDER BY SUBSTRING(cod,8,4) DESC;
Ha nálad nem megy ez, akkor írd le, mi a hiba. mysql_error() stb.
Másik megoldásnál: Nem kell szétszedned 4-esekre, a meglévő kód maradhat úgy, ahogy van, és beszúrsz egy új mezőt a táblába, ahol csak a rendezés alapját képező 4-számjegy áll, és azalapján rendezel. -
Lortech
addikt
válasz
Briganti #1194 üzenetére
Azt gondoltam, hogy nem megy, de miért nem? Mert nekem elsőre ment.
csak nem kapom meg en a teljes cod reszletet, es nemtudom az order by -ba azt irtni hogy substr($cod,8,4)
Ezt nem egészen értem, illetve többféleképpen is tudnám értelmezni. Valami egzaktabb nyelvezettel le tudnád írni? Esetleg példával szemléltetve.
[Szerkesztve] -
Jester01
veterán
válasz
Briganti #1194 üzenetére
A substr az sql függvény is, ne php részben használd. Magyarul szedd ki az aposztrófokat körüle:
$sel=mysql_query(''SELECT * FROM materia WHERE cod LIKE '$cod%' ORDER BY substr(cod,8,4) DESC'');
MOD: ja most látom, nem is a php részben volt, de ettől még nem kellenek oda az aposztrófok (mivel úgy string konstans lenne).
[Szerkesztve] -
szicsu
őstag
válasz
Briganti #1161 üzenetére
HI!
Én nem vagyok teljesen meggyőzödve, hogy egy dologról beszélünk,de azért megpróbálom hátha:
tehát az előző hsz.-ben pár sor alapján :
if(isset($_GET['frist_id'])){
$frist_id=$_GET['frist_id'];
}
else{
$frist_id=0;
}
//elso lapbehívásnál $frist_id=0
$sql=''SELECT ID, Name FROM table WHERE Name LIKE '%_xxx_%' LIMIT $frist_id, 5''
$eredmeny=mysql_query($sql);
$x= ($frist_id==0)? 0:($frist_id-1);
while($sor=mysql_fetch_assoc($eredmeny)){
echo '<a ...php?frist_id=$x.......'
$x++;
}
a kimenetben keletkező linkek:
<a href=''...php?frist_id=0'' >n_xxx_2 ....
<a href=''...php?frist_id=1'' >n_xxx_8....
<a href=''...php?frist_id=2'' >n_xxx_12 ....
<a href=''...php?frist_id=3'' >n_xxx_28 ....
<a href=''...php?frist_id=4'' >n_xxx_113 ....
Majd valaki rákatt a n_xxx_28 as linkre, akkor újra tölltödik az odal.
a $frist_id=3 lesz
a linkek:
<a href=''...php?frist_id=2'' >n_xxx_12 ....
<a href=''...php?frist_id=3'' >n_xxx_28....
<a href=''...php?frist_id=4'' >n_xxx_113 ....
<a href=''...php?frist_id=5'' >n_xxx_234 ....
<a href=''...php?frist_id=6'' >n_xxx_537 ....
[Szerkesztve] -
szicsu
őstag
válasz
Briganti #1159 üzenetére
Hi!
Tehát van egy litád, amit részletenként akarsz megjeleníteni, úgy hogy a kiválasztot elem és után is legyen elem.
Ha az elemek id-val szeretnéd kezelni, akkor az elemeknek megfelelő sorrendben kell lenniük és rendezni kell id szerint (order by id). Ez szerintem nem a legjobb megoldás (ha tényleg erről van szó), mert ha hiányzik elem akkor már nem működik rendesen
Esetleg amit tudsz csinálni:
if(isset($_GET['frist_id'])){
$frist_id=$_GET['frist_id'];
}
else{
$frist_id=0;
}
$sql=''select ........limit ''.$frist_id.'',5'';
....
wihle($sor=mysql.......){
$x= ($frist_id==0)? 0:($frist_id-1);
echo '<a href=''.......php?frist_id='''.$x.'''>.....'';
$frist_id++;
}
Én valami ilyesmire gondolok, De a $_GET -ből jövő adatot kicsit jobban kell majd ellenőrizni.
[Szerkesztve] -
Louloudaki
aktív tag
-
RedAnt
aktív tag
válasz
Briganti #1074 üzenetére
Még megemlíteném, mert ide tartozik, a data: URI sémát [link] aminek segítségével közvetlenül be lehet ágyazni base64 kódolással a képeket. Ennek a megoldásnak mondjuk van egy olyan hátránya, hogy IE-vel nem működik (gyakorlatilag minden mással igen)
Pl. az avatarod ilyen módon:
[Szerkesztve] -
czappa
aktív tag
válasz
Briganti #1074 üzenetére
Bár már megoldódott a kérdés, de azért megjegyzem, hogy egy másik megoldás, hogy a képet egy könyvtárban tárolod, a táblázatban pedig csak a file nevét (esetleg eléréssi úttal, de ez később problémás lehet, ha másik könyvtrában szeretnéd tárolni a képeket).
Ilyenkor a file elmetésekor jó ötlet, ha véletlenszám+eredeti_file_neve -t tárolsz, hogy lehessen ''két egyforma'' nevű file, ne keljen ezzel szenvedni a kép feltöltésekor.
(És persze ilyenkor a file-nak az új nevét tárolod.)
Már nem emlékszem, hogy ph!-n, vagy php.net-en olvastam ezt a vletlenszámos megoldást, de tetszik mert nagyszerű és egyszerű.
Amúgy a véletlenszám lehet egy time() fv. ha php-t használsz. -
paramparya
őstag
válasz
Briganti #1002 üzenetére
Kinyírni nem lehet ilyenekkel, de ha hozzá tudsz férni a serverhez valahogy máshogy, pl phpmyadmin-nal, vagy közvetlenül, az még kényelmesebb, valami mysql frontend-del, akkor először tesztelgesd ott a bonyolultabb selecteket, hogy jók-e, nyilván behelyettesítve valami teszt értéket
-
cucka
addikt
válasz
Briganti #964 üzenetére
jójó, de ha simán csak két táblázatot kell egymás mellé rakni, akkor berakod a kettőt két dobozba vagy táblázat cellába és külön-külön kiírod őket, ez a normális megoldás.
ha a két táblázat funkcionálisan összefügg, akkor lehet értelme egyszerre kiírni a kettőt. na akkor tudsz írni join-os query-t amivel kiírod egy menetben.
a fapados megoldás két egymás utáni foreach-al megoldható. először az egyik sort írod ki táblázat cellá(k)ba, utána a másikat. -
cucka
addikt
válasz
Briganti #962 üzenetére
szerintem a foreach szar így
van olyan, hogy array pointer, úgy érzem, hogy még nem hallottál róla, meg lehet azzal is oldani (each, current, next, reset, stb. függvények). mivel fetch_array-el szeded ki a sorokat, ezért azok számokkal lesznek indexelve 0-tól, tehát egy klasszikus for ciklussal is végigitetrálhatsz rajtuk. ha a két tábla között van kapcsolat, akkor pedig egyetlen sql lekérdezéssel is megoldhatod az egészet.
vagy szétszeded azt a foreach-et kettőbe.
pontosan mire lesz ez jó egyébként, akkor esetleg tisztább lesz, hogy mit szeretnél.. -
Jester01
veterán
válasz
Briganti #934 üzenetére
Megjött. Első körben hiba sokkal egyszerűbb mint gondoltam, már-már
: a like operátornak minta kell! Helyesen: ... like '%stood%' ... stb.
(Tehát az általad megadott feltételekre nincs illeszkedő sor, ezért volt üres az eredmény!)
A lekérdezésed amúgy véletlenül sem azokat a táblaneveket használja amiket a tesztadatbázisod. -
Jester01
veterán
válasz
Briganti #932 üzenetére
illeszkedo sorokkal gondolom arra gondoltal
Igen. Viszont ha már az eredeti lekérdezésed sem ad eredményt, akkor a további feltételek belepakolása nem fog segíteni.
szamite a sorrend az AND-knel
Nem. Az a lényeg, hogy minden táblát kapcsolj össze megfelelően, ez úgy látom sikerült a 4., 6. és 7. sorokban. Ezeket szerintem csoportosítsd egy helyre és a szűrések ezután legyenek.
Gondolom van valami kis tesztadatbázisod, ha felrakod valahová a webre (mondjuk script formában) akkor talán többet tudok segíteni. -
Jester01
veterán
válasz
Briganti #930 üzenetére
Ez így egy ún. inner join aminek csak akkor van eredménye, ha minden táblában van legalább egy illeszkedő sor. Neked van?
Amúgy a lekérdezésedben célszerű lenne a táblákat a megfelelő mezők egyezésével összekapcsolni, pl. az author és quotes tábláknál ez author.author_id = quotes.author_id módon lehetséges. Ha ezt kihagyod, akkor az összes sor kiszorzódik (Descartes szorzat). -
-
cucka
addikt
válasz
Briganti #736 üzenetére
ez esetben a programod elég sok sebből vérzik
1. url-t ne get-ben küldd át, mert vicces eredményeket kaphatsz. használj post-ot.
2. az insert rész úgy ahogy van rossz. először is nem új sort kell beszúrni, hanem meg kell növelni a view értékét az illető sorban, vagyis insert helyett update.
első ránézésre ennyi.
elegáns megoldás az lenne, hogy javascript-ből küldésnél küldesz egy httprequest-et a szerveren található php filenak, ami pedig megoldja a háttérben az adatbázis matatását (azt, hogy éppen mire kattintott a júzer meg mondjuk kiolvassa post-ból). -
cucka
addikt
válasz
Briganti #734 üzenetére
egyrészt: debugolj lépésről lépésre. nézd meg az első query-det, figyeld meg mit csinál pontosan a programod. irass ki debug üzeneteket.
másrészt: ha kérdezel, akkor próbáld úgy tenni, hogy a többiek segíthessenek. itt egy nem dokumentált kód, amiről még annyit sem árultál el, hogy mire jó. mi van a $_GET[url]-ben? mit akarsz a $view-al csinálni? mire kell a $view++ sor? satöbbi satöbbi. -
RedAnt
aktív tag
válasz
Briganti #731 üzenetére
Első blikkre nem látok benne hibát. A mysql_db_query helyett inkább mysql_query-t használj, előbbi elavult. Az adatbázist pedig mysql_select_db-vel adhatod meg.
Egyébként meg debugolj, ha nem megy valami, nézd meg mit is csinál a program, pl. írasd ki a query-t, nézd meg stimmel e, ilyesmi.
mod. lassú vagyok
[Szerkesztve] -
Terminus_
aktív tag
válasz
Briganti #422 üzenetére
A link így nézzen ki: <a href=\''szerzodes.php?id=$id\''>$company [#$id]</a>
A szerzodes.php-ben figyeld a $_GET[''id''] változót és e szerint dolgozz tovább.
A lényeg, hogy add át az url-ben azt a változót, amivel később dolgozni akarsz. Utána a $_GET tömbből asszociatívan a válozó nevével indexelve visszakapod a változó értékét.
[Szerkesztve] -
cucka
addikt
-
cucka
addikt
válasz
Briganti #335 üzenetére
először: ha a lekérdezésed több sort ad vissza, akkor abból csak az utolsót fogod eltárolni az $e_ kezdetű változókban. használj 2dimenziós tömböt, sorait akár a $row-ból is felépítheted, nem kell minden mezővel külön pöcsölni.
másodszor: ha a lekérdezésed mindig egy sort ad vissza, akkor az a ciklus fölösleges
harmadszor: ha a lekérdezés véletlenül nem ad vissza egyetlen sort sem, akkor azt hogyan kezeled le?
negyedszer: biztos vagy benne, hogy a $_SESSION['login'létezik? ellenőrizd isset()-el.
-
-
VladimirR
nagyúr
válasz
Briganti #310 üzenetére
lehet session-el, es cookie-val
elobbi esetben a $_SESSION tomb-be irod be, hogy milyen felhasznaloval leptel be, meg hogy egyaltalan be vagy lepve, majd ezt kesopbb ugyanonnan ki is tudod olvasni (ezesetben a php file-ok elejen meg kell hivnod a session_start fuggvenyt)
cookie eseten pedig a getcookie es a setcookie fuggvenyek segitsegevel -
cucka
addikt
válasz
Briganti #308 üzenetére
GET az az url-ben továbbítja a változókat. előnyös ha csak kevés adatra van szükség, illetve így bookmark-olni is lehet az oldalt. pl. oldal.php?vált1=ert1&valt2=ert2 . lásd pl. google, ahol a keresés összes paraméterét az url-ben küldi át.
POST a háttérben történik az adatcsere, jó, ha nagy mennyiségű adatról van szó, ha nem szeretnéd kitenni az url-be az adatokat (pl. jelszó). lásd pl. bármilyen űrlap, ahol jelszót kell beírni, vagy prohardveren a hosszászólás-szerkesztő oldal.
[Szerkesztve] -
burgatshow
veterán
válasz
Briganti #303 üzenetére
Mér nem úgy csinálod a lekérdezést, hogy a selectbe beleszúrod:
''SELECT * FROM users WHERE username='$user' and password='$pasw'''
Ha van visszatérési értéke (értsd létezik ezekkel a keresési feltételekkel record) akkor belépteted, ha meg nincs tehát a visszatérési érték 0* akkor meg nem lépteted be.
* 0 = nincs ezekkel a keresési feltételekkel rekord így logikus, hogy nem lesz fetchelendő érték(ek)
Ami pedig a header-t illeti:
Gondolom a beléptető scripted egy másik php fájlba van beincludeolva, ha igen, akkor logikus, hogy azt a hibát dobja, miszerint a headers already sent by... mert a header paramétereket a fileok leges legeléjbe kell beszúrni. Tehát, ha egy másik fájlba hívtad be a beléptető scripted, akkor a lefutás után, az ''anya'' file már elküldte a header információkat, tehát már nem tudod módosítani. Nem tudom érthető volt-e...
Egyébként a header referenciája: [link]
Mod: Ketten is megelőztek...
[Szerkesztve] -
faster
nagyúr
válasz
Briganti #303 üzenetére
Header előtt nem lehet kiírás. Egyébként nem értem, miért így vizsgálod meg a password helyességét, azt ugyanúgy belerakhatod a select WHERE részébe.
$sel=mysql_query(''SELECT * FROM users WHERE username='$user' AND pasw='$pasw''');
if(mysql_num_rows($sel)) {
// beléphet
}
else {
// név vagy jelszó nem stimmel
}
[Szerkesztve] -
cucka
addikt
válasz
Briganti #296 üzenetére
egyrészt id számolásához használj auto increment-et, mint ahogy már említették
másrészt ez a query így nem valószínű, hogy jó lesz. ugye a $query az egy string, a stringbe pedig szeretnél behelyettesíteni értékeket. ezt kétféleképpen tudod:
- konkatenálás. $query=''insert into...''.$_POST[first_name].''query többi része, stb.''
- változókat {} közé rakod a string-ben. $query=''insert into...{$_POST[first_name]}query többi része, stb.'' -
Jester01
veterán
válasz
Briganti #296 üzenetére
Sajnos nem tudtam kibogozni, hogy mit is csináltál pontosan, mindenesetre
mysqlben van AUTO_INCREMENT, ami pont azt csinálja amit szeretnél:
CREATE TABLE T ( id bigint NOT NULL PRIMARY KEY AUTO_INCREMENT, ...)
Az id értékét innentől kezdve nem kell beadni az insertben, azt az adatbáziskezelő automatikusan generálja.
Aktív témák
Hirdetés
- BESZÁMÍTÁS! Apple MacBook Pro 16 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple MacBook Pro 16 2024 M4 Max 64GB 2TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple Macbook Pro 13 2020 M1 16GB 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS TUF VG27AQ 165Hz QHD IPS 1ms monitor garanciával hibátlan működéssel
- Xiaomi Redmi Note 14 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! Lenovo IS8XM LGA 1150 DDR3 alaplap garanciával hibátlan működéssel
- REFURBISHED és ÚJ - HP USB-C/A Universal Dock G2 docking station (5TW13AA) (DisplayLink)
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- REFURBISHED - HP USB-C Dock G4 docking station (L13899-001)
Állásajánlatok
Cég: FOTC
Város: Budapest