Aktív témák
-
tkazmer
addikt
-
Jester01
veterán
válasz
tkazmer #1344 üzenetére
Érdekes, nekem működik. Még úgy is, ahogy te írtad.
Your MySQL connection id is 1 to server version: 5.0.13-rc-standard
mysql> select * from t;
+------------+
| date |
+------------+
| 2007-10-10 |
| 2007-11-01 |
| 2007-11-29 |
| 2007-12-01 |
+------------+
4 rows in set (0.00 sec)
mysql> select month(date),count(*) from t group by month(date);
+-------------+----------+
| month(date) | count(*) |
+-------------+----------+
| 10 | 1 |
| 11 | 2 |
| 12 | 1 |
+-------------+----------+
3 rows in set (0.00 sec) -
DeltaPower
addikt
válasz
tkazmer #1331 üzenetére
ez egy szép hosszú query lesz... az a gáz, hogy valszeg sub-query kell hozzá, azt meg nem minden mysql verzió támogatja. holnap talán lesz egy kicsivel több időm mint ma, összehozom neked a queryt.
és egy kérdés, amivel már napok óta szenvedek:
mysql 4.0.24, phpmyadmin 2.10.2, egyik szerverről a másikra kellene átmentenem az adatbázist. az egyetlen marha nagy probléma az, hogy a forrás utf-8, a cél szerver latin1 kódolású, sima exportnál az összes ékezetes karakter eltűnik vagy utf jellegű karakterek jelennek meg helyette. ráadásul a myadmin rosszul generálja le az exportot, mysql állandóan hibát jelez (update jellegű query, a hiba a feltételben keletkezik, nem tudja értelmezni a "convert('érték' using utf8)" függvényt).
megjegyzés: a szerveren debian sarge-féle mysql, a hivatalos oldalról letöltött win32 alapú szerver gond nélkül értelmezi.
hogy a #&@#@&# francban konvertáljam át? -
VladimirR
nagyúr
válasz
tkazmer #1139 üzenetére
uj elem beszurasakor az elso mezonek olyan erteket adtal, amilyen mar szerepel a tablaban es az elso mezo primary key, vagy unique
ha primary key, akkor adj neki egy autoincrement-et, es az insert-bol hagyd ki (igy szepen sorszamozza majd magatol)
ha unique, vagy a fneti megoldas nem kivitelezheto, insert elott ellenorizned kell, hogy szerepel-e mar ilyen ertek a tablaban
szerk.: tovabba gyanus nekem az a 255 - milyen tipusu a mezo?
[Szerkesztve] -
VladimirR
nagyúr
válasz
tkazmer #1023 üzenetére
amennyire tudom, a legjobb megoldas igy, kyulon tablaban tarolni a kapcsolatokat
a lekerdezesnel megy egy egyszeru join-nal meg tudod oldani
ha pl a 123-as id-ju user ismeroseire vagy kivancsi, akkor valahogy igy:
SELECT * FROM felhasznalok INNER JOIN kapcsolatok ON felhasznalok.id=kapcsolatok.user1 where kapcsolatok.user2=123
ez kivalogatja azon felhasznalokat, akik ismerik a 123-as id-ju felhasznalot
de ugye ez nem fog mindenkit visszaadni, mert ha a kapcsolatok tabla barmely oszlopaban szerepl a 123-as id, akkor az nekunk jo, mig a fenti lekerdezes csak azokat adja vissza, ahol a user2 oszlopban szerepel az
ezert kell egy masik lekerdezes is:
SELECT * FROM felhasznalok INNER JOIN kapcsolatok ON felhasznalok.id=kapcsolatok.user2 where kapcsolatok.user1=123
aki tudja, hogyan lehetne ezt egy lekerdezessel megoldani, az ne kimeljen -
cucka
addikt
nem értem pontosan, mit értesz hirdetési felület alatt.
ha mondjuk van az oldaladon 3-4 bannernek hely és a bannerek egyszerű hivatkozások (mondjuk animált gif-re vagy flash-re), akkor simán mehetnek egy táblába. a táblához hozzáadsz egy hirdetesi_felulet_id oszlopot, és az alapján szűröd a tábládat. ha kulturált admin felületet akarsz, mondjuk új hirdetés hozzáadásánál legördülő dobozból lehessen kiválasztani, hogy hova kerüljön az a banner, akkor csinálhatsz egy hirdetesi_felulet táblát, ahol felsorolod a felületek neveit. ebben az esetben a fentebb említett hirdetesi_felulet_id oszlop külső kulcs lesz és a hirdetesi_felulet táblára fog mutatni. -
cucka
addikt
mit érdemesebb inkább használni, kevesebb táblát sok oszloppal, vagy több táblát kevés oszloppal?
normálisan megtervezett adatbázist érdemes használni. egy táblába logikailag összetartozó dolgok kerülnek (pl. a személy táblába a név, jelszó, mailcím, satöbbi). ha a személynek sok tulajdonsága van, akkor sok oszlop lesz, ez van.
logikailag különálló fogalmakat külön táblában tárolsz. például a személynek van rengeteg olyan tulajdonsága, amelyeket legördülő menüből választhat (ergo előre adott opciók közül választhat). például milyen színű a haja, melyik a legmagasabb iskolai végzettsége, stb. namost ha nagyon sok ilyen tulajdonsága lesz, akkor nagyon sok kis tábla lesz. máshogy is meg lehet oldani, de az valószínüleg rossz megoldás: nehezen érthető struktúra és kód, az egész karbantartása horror, vagyis összességében rossz adatszerkezet és ebből adódóan szar kód.
egyébként pontosan mi a felállás, aminek kapcsán feltetted a kérdést? milyen adatokat szeretnél tárolni? -
Louloudaki
aktív tag
abban a függvényben, ahol az új adatokat viszed fel, csinálsz egy lekérdezést és eltárolod a mysql_num_rows értékét, ebből megkapod, hány sor van jelenleg.
majd egy feltétel, hogy ha ez kisebb 100nál, akkor beírod az adatokat,
ha 100, akkor lekérdezed a legkisebb dátumot min(datum), törlöd, és utána írod be az újat. ha lesz időm délután, konkrétan le is fogom programozni. -
Forest_roby
őstag
Azt hittem, hogy a $_SESSION['loginName'
-ben a loginName van eltárolva és ebből olvassa ki az oldal, hogy be vagyok jelenkezve és hogy aki be van jelentkezve annak mi a neve.
Akkor ezek szerint a $_SESSION['loginName'-ben több dolgot is el lehet tátolni?
----
ha sikerül elmenteni az authorization-t akkor azt, hogy tudom kiolvasni a sessionből?
( a login nevet így olvassa ki az oldal: <?=$login->loginName?> )
köszönöm a válaszokat! -
Forest_roby
őstag
már próbáltam
de most mégegyszer kipróbáltam és semmi hatas.
Lehet nem a forrasban van a hiba, hanem a tarhelyben. Igazabol csak azert tettem fel a forrast, hogy biztos legyek benne, hogy ez tenyleg jo, de szamitottam ra,hogy az lesz.
A gond az, hogy mar lattam masnak a weblapjat az extra.hu -n ami ilyen beléptetos és mukodott, nem ertem,hogy akkor az enyem miért nem jo.
ui: raadasul probaltam egy teljesen masik belepetetot is aminel ugyan ez volt a hatas - az jelezte,hogy belepet, de nem irta ki a nevemet és ha átkattintottam egy masik ''vedett'' oldalreszre akkor ujra be kellett jelentkeznem....
Szoval van vmi baj, de inkább a tarhelyben lehet a baj. Másnak se muxik az extra.hu ezem része???? -
-
Forest_roby
őstag
Nem, az jó. Nem titkositva tárolom a jelszót,pont azért írtam át.
Egyebként itt:
if ($eredm = mysql_query($query) and mysql_num_rows($eredm)==1)
{ //Helyes nick+pass
$_SESSION['nick'] = addslashes($_POST['nev']);
$_SESSION['belepett'] = true;
header(''Location: ''.$_SERVER['PHP_SELF']);
}
else
{//Hibás nick+pass
print ''hibás nick/pass'';
echo ''<br>'';
print $query;
}
az if rész teljesul ( persze helyes jelszonal )-kiprobalta, de amikor lefut ez: header(''Location: ''.$_SERVER['PHP_SELF']); akkor vissza tolti az eredeti oldalt és mivel a session nem muxik ( pedig mukodnie kellene ) ezert visszakerul az eredeti helyzetbe.
Mindenesetre koszi a valaszodat!
mod:
a print $query; parancsnak hála jottem ra, hogy ki kell szedni a passnal a titkositast. : )
[Szerkesztve]
[Szerkesztve] -
-
woodpaul
őstag
DELETE FROM <tábla neve> WHERE <attribútum> = <attribútum értéke>;
pl.
DELETE FROM register WHERE login = 'woodpaul';
Szerk:
Nagyon figyelj oda arra, hogy jól add meg a WHERE feltételét, mivel könnyedén törölheted a tábla összes sorát! Ha nem vagy túl gyakorlott SQL-ben, ajánlom, hogy készíts másolatot az adott tábláról!
[Szerkesztve] -
Forest_roby
őstag
igazabol ezt: ''( ?vhogy? )'' azert irtam, mert bar a fileokat fel tudom tolteni egy mappaba, akar igy php-s file feltolotovel, akar total commanderrel, nem tudom, hogy ez igy szerencses -e? igy egy direkt linkkel barmikor le tudom tolteni a fileokat, bar asszem vhogy be lehet allitani adott mappara, hogy az ott levo filokat ne lehesen csak ugy letolteni, de mar erre sem emlekszem.
Amikor egy php-mysql-es weblapon leakarok tolteni egy file es bead egy fura dinamikus linket, akkor az a file siman megtalahato egy mappaban a webserveren v. vhogy benne van a mysql adatbazisban? ( ez a kerdes lehet, hogy nagy hulyeseg volt ) csak azert kerdezem, mert ha a file adatbazisban van, akkor nem olyan egyszeru a feltoltese se....
mindenesetre koszi a linket!!!
[Szerkesztve] -
paramparya
őstag
$cim = str_replace('' '', '''', $_POST['cim'
);
Tehát:
fogadó változó = str_replace(mit, mire, miben);
másodikra: lehet unique tulajdonságot adni neki mysql-ben (phpmyadmin a táblastruktúra résznél a sorban ott lesz valahol a végén a unique, ahol a primary key, meg a fulltext vannak... -
VladimirR
nagyúr
... WHERE cim LIKE '%{$_POST["cim"]}%' OR ...
-a % joker-karakter, tetszoleges szamu (akar nulla is) tetszoleges karakterre
-egy darab tetszoleges karakterre az _ (alulvonas) a joker-karakter
-tombelemre hivatkozaskor az index-et idezojelbe kell tenni ( $_POST[cim] helyett $_POST["cim"] )
-mivel az elobbi miatt borulnak a string hatarai (meg egyebkent is sokkal kevesebb gondot okoz) ha idezojelek kozt szursz be valtozot, tedd kapcsos zarojelbe -
alitak
senior tag
Az, hogy az előző egyszerű php-mysql oldal nem fut le hiba nélkül, az nem túl jó.
Ennek az oldalnak az eleje jól néz ki. Viszont szerintem ez a die() nem nyerő. Próbáld meg if-fel csinálni, ahogy én is csináltam.
<?php
if ($kapcs = mysql_connect(''localhost'',''root'','''')) echo ''Kapcsolat OK<br>'';
else echo mysql_error() . ''<br>;
if (mysql_select_db(''filmek'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error() . ''<br>'';
?>
<font size=''5''>filmek</font><br>
<table border=1 cellpadding=''3'' cellspacing=''3''>
<tr>
<td>cim</td>
<td>nyelv</td>
<td>felirat</td>
<td>hossz</td>
</tr>
<?php
$par = ''select * from dvd_filmek'';
if ($adatb = mysql_query($par)) echo ''Adatbázis beolvasás OK<br>'';
else echo mysql_error();
while ($sor = mysql_fetch_array($adatb))
{
?>
<tr>
<td><?= $sor[''cim'']?></td>
<td><?= $sor[''nyelv'']?> </td>
<td><?= $sor[''felirat'']?></td>
<td><?= $sor[''hossz'']?></td>
</tr>
<?php } ?>
</table>
<?php
mysql_close($kapcs);
?>
Figyelj rá, hogy a ph motor a kettős idézőjelből két darab szimpla idézőjelet rak! '' => ' '
[Szerkesztve]
[Szerkesztve] -
alitak
senior tag
Hát én ezt futattam le:
<html>
<head>
<title>Teszt</title>
</head>
<body>
<?php
if ($kapcs = mysql_connect(''localhost'',''proba'',''proba'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''forum'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
És ezt adta:
Connect OK
Select OK
Persze a localhost-on van a mysql telepítve, proba a usernév és proba a pass, valamint van egy forum adatbázisom. Ha ez már sehogy sem fut le, akkor szerintem nem jól van/nincs mysql telepítve. -
alitak
senior tag
Ez lefut?
<html>
<head>
<title><?= ''Teszt''?></title>
</head>
<body>
<?
if ($kapcs = mysql_connect(''localhost'',''user'',''pass'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''atadb'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
mod: Figyelj oda az idézőjelekre: a PH! motor átírja ezt: '' erre: ' '
[Szerkesztve] -
alitak
senior tag
Próbáld meg így átírni minden parancsot:
<html>
<head>
</head>
<body>
<?
if ($kapcs = mysql_connect(''localhost'',''user'',''pass'')) echo ''Connect OK<br>'';
else echo mysql_error();
if ($sel = mysql_select_db(''atadb'',$kapcs)) echo ''Select OK<br>'';
else echo mysql_error();
.
.
.
if (mysql_query($sql)) $eredmeny = mysql_query($sql);
else echo mysql_error();
if ($kiir = mysql_num_rows($eredmeny)) echo $kiir;
else echo mysql_error();
mysql_close($kapcs);
?>
</body>
</html>
[Szerkesztve] -
Jester01
veterán
Szabvány html-t, mondjuk legegyszerûbb formában:
<html><body><pre> ... ide már (majdnem) akármit írhatsz ... </pre></body></html>
A wget az parancssori letöltõ. cmd ablakból add ki, hogy ''wget -O eredmeny.txt http://ahol.a.lapod/van.php'' és akkor lementi az eredmeny.txt fájlba amit visszakap a szervertõl. Utána tetszõleges nézegetõvel belekukkanthatsz. -
-
Lortech
addikt
-
skera
tag
1. A mysql_select_db(), illetve a mysql_query() fv-nél csak akkor kell a 2. paraméter, ha több adatbáziskapcsolatot akarsz használni egyszerre, valamint a lekérdezést írhatod a mysql_query() fv-be. Mindezt akkor nem érdemes így csinálni, ha valamilyen külső paraméter befolyásolja a lekérdezést. Tehát
$sql = ''INSERT INTO test values ('teszt')'';
mysql_query($sql, $ossz)
helyett
mysql_query(''INSERT INTO test values ('teszt')''); -t
is írhatsz.
2. Az
$eredmeny = mysql_query($sql, $ossz) or die(mysql_error());
echo $eredmeny;
is rossz, mert még kell egy mysql_fetch_row() vagy mysql_fetch_array() fv, attól függően, hogy mekkora az eredményhalmaz (1 sor, vagy több sor).
- [link]
- [link]
[Szerkesztve] -
Lortech
addikt
De mégis mit vársz vissza? Az insert egy művelet, nem lekérdezés, nincs eredménye, felesleges eltárolni változóban a queryt. Minden művelet után írj egy or die-t hibaüzenettel, vagy pl or die(mysql_error());
Így láthatod ha valami gubanc volt, ha nem ír ki semmit akkor lefutott az inserted és elvégezte a műveletet. -
Lortech
addikt
Mivel az adatbázisterved el van szúrva, csak favágó módszer(em) van. Ezért olyan fontos a tervezés és az elmélet.
SELECT * FROM dvd_filmek WHERE hossz LIKE '9_ perc' OR hossz LIKE '10_ perc' OR hossz = '110 perc'
Ezzel nyilváán az a baj, hogy nem csak számokra működik, hanem pl 9z percre is. Másik -szintén gyenge- megoldás lehet pl WHERE hossz IN ('90 perc','91 perc',...,'110 perc'). -
skera
tag
-
paramparya
őstag
Ez így nem fog semmire vezetni, ha itt kérdezgeted az alapokat, amiket pl. főiskolán is heti 4x45 percben tanítanak fél éven keresztül, egész jó tempóban. Be kéne szereznem egy könyvet, amiből el tudod sajátítani az alapokat, pl. mysql 24 órán belül, asszem van ilyen...
-
cucka
addikt
nézd meg jobban, biztosan kell legyen rajta * gomb.
(angol kiosztásnál shift + 8, magyarnál ált. altgr + - )
pityegéshez meg próbáld meg kikapcsolni a beep-et, szerintem az lesz a nyerő megoldás. device manager-ben bepipálod, hogy ''show hidden devices'', és a ''non plug and play'' kategóriában találod. -
manrick
tag
* karakter: Primitiv megoldás de működik. tartsd lenyomva az ALT-ot és a numerikus billentyűzeten írd be: 42 (ALT+42).
A sípolást biztosan ki lehet kapcsolni, nézz körbe a beállítások között.
Szerk.: jaj most olvasom, notebookod van.De ott is lehet használni a numerikus gombokat. Csinálj egyet egy szerkeztőbe, és innen tudod másolni.
Én is így csinálom, mert a Virtual PC nem engedi használni az ALT-GR gombot. Átállítani nincs kedvem
[Szerkesztve]
Aktív témák
Hirdetés
- Gamer/Multimédia PC Eladó - GTX 1070 + Ryzen 5 + 16GB RAM
- Xiaomi Redmi Note 14 Pro 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG UltraWide 29WQ60A-B LED IPS Monitor! sRGB 99% / 5ms / 100Hz / FreeSync
- Honor 400 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG UltraWide 34WR50QC-B Monitor! VA 3440x1440 / 100Hz / FreeSync
- Csere-Beszámítás! AMD Ryzen 7 7700X Processzor!
- Külföldi csomagszállítás Packeta csomagpontokon keresztül!
- ÁRCSÖKKENTÉS Lenovo ThinkPad T570, T580, P51s, P52s eredeti Lenovo, belső akkumulátor eladó
- Csere-Beszámítás! Lenovo Legion 5 White ! R5 5600H / RTX 3050Ti / 16GB / 500GB SSD
- Bomba ár HP X360 11 G5 - Intel 4020 I 4GB I 128GB SSD I 11,6" HD Touch I Cam I W11 I Garancia!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest