Aktív témák
-
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. -
tkazmer
addikt
Értem. A kérdés annak kapcsán merült fel bennem, hogy a ma délutáni fejlesztéseim eredményeképpen az auktuális weblapomhoz tartozó adatbázisban lévő táblák száma megduplázódott, (bár mondjuk szerintem logikailag összekapcsolhatók a bennük lévő adatok), és az érdekelt, hogy próbáljak e meg minél kevesebb táblát használni több oszloppal, vagy ez annyira nem lényeges, ha azért valamennyire különválasztható tartalomról van szó. (pl csináljak e minden hirdetési felülethez külön táblát, vagy jó lesz az is, hogyha egyben tárolom az összeset...)
-
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? -
tkazmer
addikt
-
tkazmer
addikt
válasz
paramparya #993 üzenetére
Ez így azt hiszem, jó lesz....
Mégegy kérdés:
Lehet olyan lekérdezést írni, amelyik egy datetime mezőből csak a date részt választja ki? A lényeg az lenne, hogy egy option-t csak a napokkal töltsek fel, de megmaradjon az időpont is(ezért nem jó, ha átírom a típust date-re) -
paramparya
őstag
válasz
Louloudaki #992 üzenetére
Úgy a leggyorsabb, ha először beleírod az adatot, vagy akár több adatot, ha egyszerre több megy, és utána törtöd egy lendülettel a 100-on felülieket, ha vannak...
-
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. -
tkazmer
addikt
Meg lehet azt csinálni, hogy egy táblában összesen csak 100 sor legyen, ha ennél több lenne, a legrégebbi mindig törlődjön?
-
Briganti
tag
miert van az, hogy en phpMyAdmin-ba csinalom a tablazatot, es en megaddom az oszlop tulajdonsagait hogy: float es 4,3 ... es megis ha 12.325 -s akarok tarolni benne akkor 9.999 -l helyetesiti ... probaltam double-vel, es ugyis ugyanaz ... vagy nem igy kell megadni a dolgokat?
-
Forest_roby
őstag
válasz
Forest_roby #987 üzenetére
sorry, rajottem!
<?php
session_start();
function kiir($text){
if($_SESSION['belepett'== true)
{
print $text;
}
else
{
print ''Csak szeretnéd...'';
}
}
?>
<html>
<head>
</head>
<body>
<?php
kiir(''proba'');
?>
</body>
</html> -
Forest_roby
őstag
válasz
paramparya #986 üzenetére
Koszi a segitseget, de ez nekem magas!!!
Attertem a masik fajta loginos ''cucc''ra. Ezt ertem is. A masik, amivel kapcsolatban tettem fel a kerdeseket, nekem tul bonyolult ( oblektumorientalt, anyazos /hol ezen a bill-en a csillag/ no mindegy ) - annyira meg nem ertek a php-hez.
No, de most vmi mas. Mar regebben kerdeztem, de mar nem emlekszem a valszra.
Hogy kell php -vel fuggveny letrehozni, egy szoveges parameterrel?
pontositok:
ezt szeretnem meghivogatni:
if($_SESSION['belepett'== true)
{
print $text;
}
és a text valtozot parameterkent kapna amikor meghivom a fv-t. -
paramparya
őstag
válasz
Forest_roby #985 üzenetére
A $_SESSION egy tömb, tehát a loginName indexű elemének csak egy értéke lehet.
Kiolvasni pedig ugyanúgy tudod, mint értéket adni neki tehát ugyanúgy hivatkozol rá
a $login->loginName dolog már oop, a $login példány loginName mezőjére hivatkozik... -
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! -
tkazmer
addikt
válasz
Forest_roby #982 üzenetére
A
$authorization = $sor[''authorization'';-t szeretnéd tárolni a sessionban? Akkor azt lehet
$_SESSION['loginName'= $authorization; módon is elérheted.
-
Forest_roby
őstag
válasz
vakondka #981 üzenetére
asszem ezt egyenlőre letudtam. Az uw most ideiglenesen megfelel.
MÁS:
ALL!
function beleptet() {
global $uLogin, $uNev, $uJelszo;
global $HTTP_SESSION_VARS;
//$uLogin = ''2'';
if (isset($_POST[''uNev''])) {
//az urlapból jöttek adatok
mysql_connect(DBHOST, DBUSER, DBPASS);
mysql_select_db(DBNAME);
$query = ''SELECT loginName '' .
''FROM users '' .
''WHERE loginName='''.$_POST[''uNev''].''' '' .
''AND password='''.$_POST[''uJelszo''].''''';
if ($eredm = mysql_query($query) and mysql_num_rows($eredm)==1) {
/* helyesek voltak az adatok -> el kell tárolni
a session-ben a felhasználó azonosítóját */
$sor = mysql_fetch_array($eredm);
$authorization = $sor[''authorization''];
global $loginName;
$loginName=$uNev;
session_register(''loginName'');
$this->helyesBelepes = true;
$this->voltProbalkozas = true;
$this->loginName = $uNev;
} else
$this->voltProbalkozas = true;
} elseif (isset($HTTP_SESSION_VARS[''loginName''])) {
//session-ból jöttek az adatok
$this->loginName=$HTTP_SESSION_VARS[''loginName''];
$this->helyesBelepes = true;
}
if (!$this->helyesBelepes) {
//nem lepett be a felhasználó, űrlapot kell neki kirakni
$this->loginUrlap();
exit();
}
}
Az igazat megvalva nem sokat értek ebből a login.php -ből, elég cifrán lett megírva. Nagyon valószínű, hogy áttérek a már fentebb említettre, de addig is szeretném megkérdezni, hogy a kiemelt részt, amivel most bővítettem a forrasat, hogy tudnam menteni session-el, mint a loginName -et, szükséem lenne rá?
Előre is köszi! :R :R
Forest
[Szerkesztve] -
vakondka
őstag
válasz
paramparya #979 üzenetére
esetleg egy próbát megér...nem ?
-
tkazmer
addikt
válasz
Forest_roby #977 üzenetére
Hát az uw-hoz ne nagyon menj, ott meglehetősen gyatra a php támogatás, elég gyakran kapok 502-t.
-
vakondka
őstag
válasz
Forest_roby #977 üzenetére
Szia,
Szerintem az a gond, hogy beléptetéskor nincs létrehozva a session változó.
Arra gondolok, hogy ezt a rész kicsit bővíteni kellene:
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']);
}
szerintem így:
if ($eredm = mysql_query($query) and mysql_num_rows($eredm)==1)
{ //Helyes nick+pass
session_register(''nick'');
session_register(''belepett'');
$nick = addslashes($_POST['nev']);
$belepett = true;
header(''Location: ''.$_SERVER['PHP_SELF']);
}
(nem próbáltam ki a konkrét szkripteddel, de szerintem ez a megoldás...ha minden más jó...) -
Forest_roby
őstag
válasz
Forest_roby #976 üzenetére
ugy nez ki, hogy az uw-n mukodik! Lehet atmegyek akkor oda, mar ha vki nem tud vmi olyan megoldast amivel az extra.hu -n is be lehet ezt izzítani.
-
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???? -
tkazmer
addikt
válasz
Forest_roby #974 üzenetére
Szerintem azért próbáld ki, hogy a login.php-ben is csinálsz egy session_start()-ot...
-
-
tkazmer
addikt
válasz
Forest_roby #972 üzenetére
Jah, most nézem, szerintem hiányzik egy session_start() a lapból...
-
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] -
tkazmer
addikt
válasz
Forest_roby #970 üzenetére
Nem tudom, hogy ez megoldás e, de ha titkosítva tárolod a jelszót az adatbázisban, akkor szerintem ez így nem jó:
$nick = addslashes($_POST['nev');
$pass = md5($_POST['jelszo');
$query = ''SELECT loginName '' .
''FROM users '' .
''WHERE loginName='''.$nick.''' '' .
''AND password='''.$_POST['jelszo'.''''';
Mert szerintem akkor ...password='$pass' -t kellene használnod. -
Forest_roby
őstag
válasz
Forest_roby #969 üzenetére
-
Forest_roby
őstag
válasz
Forest_roby #968 üzenetére
Ez megoldva, de a session nem muxik,nem marad nyoma,hogy be vagyok jelentkezve....
/lehet,hogy az extra.hu -n tiltva van ez a funkcio
/
-
Forest_roby
őstag
hi!
Egy konkurens oldalon található, szabadon letölthető beléptetős oldalt próbáltam átírni az igényeimnek megfelelően, de valamiért csak nem akar működni.
A probléma gondolom ott kezdődik, hogy az én users táblám teljesen más mint az eredeti programé.
Megnéznétek, hogy mit basztam el?
[link]
Már átirtam benne dolgokat, próbáltam megcsinálni, de valszeg nem sikerült, vagyis biztos nem sikerült. Beletettem a rar-ba a users tábla létrehozásához írt php filet is.
Remélem tudtok segíteni
Előre is köszönöm!
Forest -
-
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. -
Briganti
tag
ezt nem en akartam hasznalni, hanem valaki megkert hogy segitsek, 2 kulon while volt, es a tablazatokat egymasala irta ki, en probaltam egymasba rakni, es hirtelen gondolkoztam hogy valahogy igy meg lehete oldani, mert en is elore azt javasoltam hogy ujra kell irni, de gondoltam megint megszivom, pont mind az ezelotti kerdessel
-
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.. -
Briganti
tag
en olyan szepen elkepzeltem ezt, es nem mukodik, vagy egyaltalan meg lehet ezt oldani? a lenyeg hogy a ket tablazat oszlopait egymas melle kellene berakja ...
$keres = 'SELECT name, username, email,registerDate FROM jos_users';
$keres1 = 'SELECT user1, user2, user3, user4 FROM jos_user_extended';
$eredmeny = mysql_query($keres) or die('Hiba a kérésben: ' . mysql_error());
$eredmeny1 = mysql_query($keres1) or die('Hiba a kérésben: ' . mysql_error());
echo ''<table>'';
while (($line = mysql_fetch_array($eredmeny, MYSQL_ASSOC)) and ($line1 = mysql_fetch_array($eredmeny1, MYSQL_ASSOC)) ) {
echo ''<tr>'';
foreach (($line as $egy_oszlop) and ($line1 as $egy_oszlop1)) {
echo ''<td>$egy_oszlop . $egy_oszlop1 </td> '';
}
echo ''</tr>'';
}
echo ''</table>''; -
tkazmer
addikt
Bocs, h külön írom, lejárt a mod idő, és gondoltam, ez még segíthet, szóval ezeket a hibákat írja ki:
Notice: Use of undefined constant uploads - assumed 'uploads' in C:\www\upload\login\users.php on line 762
102.jpg
Warning: unlink(101.jpg) [function.unlink]: No such file or directory in C:\www\upload\login\users.php on line 765
101.jpg
A legviccesebb az, hogy mégis csak kell lennie valamilyen fájl-nak ott, mivel egyszerre több képet töröltem, az összeshez kiírta ezt, viszont csak az egyik maradt meg. -
tkazmer
addikt
Készítek egy olyan oldalt, ahol lehet a felhasználóknak egyedi képgyűjteményük. Namost az a gond, hogy megpróbáltam megoldani, hogy törölhetők is legyenek a képgyűjtemények, minden szép és jó(nak tűnik), csak végül a képgyűjteményből 1 kép nem törlődik.(maga a kép, és a hozzá tartozó adatbázisbejegyzések, a gyűjteményhez, és a többi képhez tartozó bejegyzések törlődnek) A kódom:
if (isset($_GET['torlendo_gyujtemeny')){
$torlendo_gyujtemeny = mysql_real_escape_string($_GET['torlendo_gyujtemeny');
print ''A törlendo gyujtemeny: $torlendo_gyujtemeny'';
$sql_szoveg_gyujttorleshez_1 = ''delete from gyujtemeny where gyujtnev='$torlendo_gyujtemeny''';
mysql_query($sql_szoveg_gyujttorleshez_1);
if (isset($_GET['kepeketis')){
if($_GET['kepeketis'== 'yes')
$sql_szoveg_gyujttorleshez_2 = ''update fileinfo set letezik='N' where gyujtemeny ='$torlendo_gyujtemeny''';
mysql_query($sql_szoveg_gyujttorleshez_2)or die(mysql_error());
$sql_szoveg_kepazonositashoz = ''select * from fileinfo where gyujtemeny='$torlendo_gyujtemeny''';
$keres_kepazonositashoz = mysql_query($sql_szoveg_kepazonositashoz);
$kepazonositashoz_tomb = mysql_fetch_array($keres_kepazonositashoz);
chdir ('uploads');
while ($keptorles = mysql_fetch_array($keres_kepazonositashoz)){
unlink($keptorles['name');
print ''$keptorles[name]'';
}
}
}
Nem tudom, hogy egyáltalán jó e a megoldásom, de ennél jobbat nem sikerült kitalálnom. A formban van egy checkbox, ami ugye ''yes'' értékkel bír, és ha be van jelölve, akkor törli csak a képeket, egyébként csak magát a gyűjteményt. Ha a képeket nem akarom törölni, csak a gyűjteményt, akkor minden kiváló.
[Szerkesztve] -
Briganti
tag
jovok meg egyel ...
van ket tablazatom:
result => id, score
es
temp => id, score
hogy tudom en az elso tablazatbol az azonos id -ju soroknak a score erteket osszedani es beleirni a masodikba?
en gondoltam hogy megszamolom az elso tablazat sorait, es egy for ciklussal osszeadatom az azonos id-juket, de ha veletlenul van 2 azonos id az elejen, es 2 a kozepen, akko pl az utolso 3 szor fog szerepelni ... meg betennek melleje egy resz ami ellenenorzi hogy az az id mar vane a masodik tablaban, de ez mar bonyolult, szerintem van valami egyszerubb megoldas is -
Briganti
tag
hogy lehetseges legrovidebben egy array minden ertekere hivatkozni?
tehat:
$nosearch = array( 'if', 'and', 'so' , 'for' );
if ( $lajika = 'laji' and $lajika != $nosearch() ) <--- itt a vegen ilyen letezik, vagy hasonlo? -
alitak
senior tag
Egy tábla egyik cellájának értékét szeretném növelni 1-gyel. Így néz ki:
$par = ''select szav from sz$id where id=$szavid'';
$adatb = mysql_query($par);
$sor = mysql_fetch_row($adatb);
$ertek = $sor[0] + 1;
$par = ''update sz$id set szav=$ertek where id=$szavid'';
mysql_query($par);
Ennél rövidebb módszer nincs? Minden ilyen esetben ezt végig kell járni? -
tkazmer
addikt
válasz
Jester01 #945 üzenetére
Ismét próbálkoztam. A mysql_result-ra azt mondta, hogy neki nem jók azok a paraméterek, amiket kap.....végigpróbáltam a fetch-eket(asszem az összeset), de vagy nem ismeri a php-m, vagy nem jók, jó részük végtelen ciklust okozott. A legközelebb még így
$keres_szoveg = ''SELECT * FROM tabla'';
$keres = mysql_query($keres_szoveg);
$szam = mysql_num_rows($keres);
for($i = 5; $i < $szam; $i += 5)
{
print ''<option value=\''$osszkepszam -1\''>$szam'';
} ?>
jutottam a legközelebb a megoldáshoz, így az <option>-ban lévő sorok száma rendben volt, csak az értékük nem. -
tkazmer
addikt
Próbálkoztam, de valamit szerintem rosszul csinálok, mivel nem egészen az lett, amit szeretnék. Itt a kód:
<?
$keres_szoveg = ''SELECT count(*) FROM tabla'';
$keres = mysql_query($keres_szoveg);
$szam = mysql_num_rows($keres);
while($szam % 5 != 0)
{
?>
<option value=''<?= $szam -1 ?>''><?= $szam?>
<? $szam++;
} ?>
Az a baj, h az <option>-omba ez csak 4 sort csinál, holott elvben szükség lenne többre is.
csináltam jó kis végtelen ciklust is, viccesen mutatott a 380MB-os firefox exe, de még mindig az IE vezet a maga 760MB-jával -
tkazmer
addikt
Hogyan tudnék olyan lekérdezést írni, ami mondjuk minden 5.-ik sort kérdez le? Szóval valami olyasmit szeretnék hogy egy <option>-ba beírnám, hogy 5, 10, 15 és így tovább, de csak akkor legyen ott a 10, ha 5 nél több sort kapok. Nagyon remélem, sikerült érthetően fogalmaznom
-
Briganti
tag
na megint jovok a search-l :) a helyzet az, hogy ez jo s szep, ha mindenhova csak 1 szavat irunk, vagy egymasutan kovetkezo szavakat ... de tokeletesiteni szeretnem es olyasmit is keresni hogy ''legkozelebb allo talalat'' ... tehat ha a szoveg ugyvan hogy ''Ez a szoveg amiben keresek'', es a input-ba azt irom be hogy: ''szoveg keresek'' akor talalja meg ... en ezt ugy oldottam meg hogy lebontottam szavakra mindegyiket (amit keresek), a qoutation, author, dictionary, es attribution, es ha mindegyikhez beirok 3 3 szavak akkor az: 9 * 9 * 9 * 9 = 6561 variacio :) (itt lehet hogy nemjol szamoltam, mert gyanusan nagy szam ... ), en ezt 4 egyberakott for-l oldottam meg s nekem igy csak 81 variaciot futtat vegig ...
igy nez ki nekem:
$sel_num=0;
//search in database
for ($q=0;$q<$j;$q++) {
for ($w=0;$w<$k;$w++) {
for ($e=0;$e<$l;$e++) {
for ($r=0;$r<$m;$r++) {
echo ''j[$q]:k[$w]:l[$e]:m[$r]<br>'';
$sel[$sel_num] = mysql_query(''SELECT * FROM quote_author, quote_dictionary, quote_dictionary_quotation, quote_quotation
WHERE quote_quotation.author_id = quote_author.author_id
AND quote_quotation.quotation_id = quote_dictionary_quotation.quotation_id
AND quote_quotation.quotation LIKE '%$quotation_j[$q]%'
AND quote_author.author_name LIKE '%$author_j[$w]%'
AND quote_quotation.attribution LIKE '%$attribution_j[$e]%'
AND quote_dictionary.dictionary_name LIKE '%$dictionary_j[$r]%''');
if ($query=mysql_num_rows($sel[$sel_num])) {
echo ''Rows found: $query, sel: $sel_num<br>'';
}
$sel_num++;
}
}
}
}
$j = $k = $l= $m = szavak szama amit be irtam a keresobe (quotation, author, attribution, dictionary)
azthiszem itt szavankent minden variaciot kiprobal, de ha pl. quotation: ''szoveg keresek ez'' , es authornak beirom hogy: ''en briganti csongor'', akkor nem keres pl ugy hogy a ''szoveg keres'' es a ''briganti'', tehat nem csoportositsa kettesesevel, es igytovabb ... vagy egyaltalan szukseg van erre hogy fel tudjak epiteni egy olyan ranglistat hogy ''legkozelebb allo bejegyzesek''? az igazsag az hogy mar bele gabalyodtam ebbe a sok logikaba, s variaciokba ... esetleg ha erre van valami konnyebb megoldas annak is nagyon orvendenek ...
koszi! -
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. -
Briganti
tag
válasz
Jester01 #931 üzenetére
nemtudom jo fele keresgeleke, az illeszkedo sorokkal gondolom arra gondoltal hogy a quote_dict. onaryba legyen olyan szo hogy ''Dictionary'', es igytovabb ... biztos hogy mindegyik tablaba van egy megfelelo sor, mert direkt onnan masoltam ki az ertekeket ...
tehat akkor valahogy ugy kene csinaljam hogy:
(1)SELECT * FROM quote_author, quote_dictionary, quote_dictionary_quotation, quote_quotation
(2)WHERE quote_quotation.quotation LIKE 'stood'
(3)AND quotes_quotation.attribution LIKE 'advertisement'
(4)AND quote_quotation.author_id = quote_author.author_id
(5)AND quote_author.author_name LIKE 'Otto'
(6)AND quote_quotation.quotation_id = quote_quotation_dictionary.quotation_id
(7)AND quote_quotation_dictionary.dictionary_id = quote_dictionary.dictionary_id
(8)AND quote_dictionary.dictionary_name LIKE 'Dictionary'
na bele gabalyodtam a sok tablazatba, s eszembe jutott egy kerdes amin eddig meg soha nem gondolkoztam ... szamite a sorrend az AND-knel? tehat vegyuk a 6-dik sort, ott 2 tablazaton kell vegig mennyek ... tehat megnezi hogy a quotation_id -nek meik dictionar_id felel meg, es ezt a sort kene ellenorizze tovabb abba a tablazatba amelyikbe elvannak tarolva a dictionary nevek ...
na ez egy kicsit bonyolult lett, de legalabb annyit hogy jo fele indultame el, vagy haggyam az egesszet es elolrol mindent :) -
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). -
Briganti
tag
hm ... meg 1 kerdes ...
most egy advanced search -n butykolok, de nem nagyon jon ossze
van 4 tablam:
author:
-> author_id
-> author_name
dictionary:
-> dict_id
-> dict_name
quotes:
-> qt_id
-> author_id
-> quot
-> attrib
dict_quot
-> dict_id
-> qt_id
egy formon meg lehet hatarozni mindegyiknek egyet, de en eloszor egy konkret peldat akartam kiprobalni,e s irtam egy olyan select-t hogy:
$sel14 = mysql_query(''SELECT * FROM quote_author, quote_dictionary, quote_dictionary_quotation, quote_quotation
WHERE quote_author.author_name LIKE 'Otto'
AND quote_dictionary.dictionary_name LIKE 'Dictionary'
AND quote_quotation.quotation LIKE 'stood'
AND quote_quotation.attribution LIKE 'advertisement''');
teszteltem, es a select le is fut helyesen, de ha fetch-elem nem ad vissza semmit ... lehetseges ezt az egesszet egy selectbe megirni, vagy csomo ciklussal s csomo mindenel le kell ellenorizni az egeszet? -
Briganti
tag
hellosztok
hogy lehet egy adatbazisban ugy keresni hogy nem tudom az egesz cella ''erteket'', pl egyik cellaba van egy egesz mondat : ''Ebbe a cellaba van egy csomo mondat'', es en csak a ''csomo'' szora keresek ra ...
talaltam valamit a MATCH() es AGAINST -l, csak nem egesszen ertem hogy hogy mukodik ... plz help! -
skera
tag
válasz
Forest_roby #924 üzenetére
echo ''</textarea>'' . $sor[''comment''
. ''</textarea>'';
Az elejét egy kicsit kalapáld át -
Forest_roby
őstag
válasz
Forest_roby #923 üzenetére
lejárt az időm :((( ,de megvan a megoldás.
még ez maradt ki:
echo ''</textarea>'' . $sor[''comment''] . ''</textarea>'';
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #922 üzenetére
elírtam a WHERE -t, de még így se jó
-
Forest_roby
őstag
Hi!
Szeretném comment_id alapján egy már létező commentet megnyitni textarea -ban, de nam akar összejönni.... :(
<?php
include(''../config.php'');
mysql_connect(DBHOST, DBUSER, DBPASS);
mysql_select_db(DBNAME);
$comment_id = $_GET['comment_id'];
$par = ''select * from comments WHER comment_id=''' . $comment_id . ''''';
$adatb = mysql_query($par);
$sor = mysql_fetch_array($adatb);
echo ''<textarea>'' . $sor . ''</textarea>'';
?>
Próbáltam már máshogy is / lehet eltávolodtam a megoldástól / .
Tudnátok segíteni?
Előre is köszi!
Forest!
[Szerkesztve] -
alitak
senior tag
Milyen paranccsal lehet megállapítani, hogy egy táblában hány darab sor van? Id azért nem jó, mert ha sort törlök, már nem lesz pontos.
-
czappa
aktív tag
Köszi mindkettőtöknek!
-
czappa
aktív tag
Meg tudom azt nézni, hogy az adatbázisban létezik-e egy adott nevű tábla?
Konkrét példa: Van egy cikk, amihez hozzá lehet szólni. Amíg viszont még nincs benne egy hsz. sem, addig nem akarom legenerálni a táblázatot (melyben a ''topic'' lenne), mert minek legyen addig ott.
Pl.: látszatra így működik a ph!-n is. A valóságban persze nem biztos.
Előre is köszi. -
alitak
senior tag
Milyen paranccsal lehet azt megmondani, hogy pl a táblából olvasson be 10 sort, az id=5 -től kezdve?
a limit 10 az megvan, a másik felét a kérdésnek nem tudom -
Forest_roby
őstag
válasz
Forest_roby #909 üzenetére
lol: [link]
Köszi mégegyszer mindenkinek!
-
alitak
senior tag
válasz
Forest_roby #907 üzenetére
Hát a beolvasás, az ugye a ''select * from hirek order by id desc'', ami azt jelenti, hogy kiválasztja az összes mező értékés a hirek táblából, és sorba rakja az id szerint visszafelé. Ezáltal a kiírás könnyebb. A * helyére írhatsz mást is, pl így: select user,id,comment from... , ami csak az adott három oszlopot olvassa be. Ezt én így szoktam írni:
$par = ''select * from hirek order by id desc'';
$adatb = mysql_query($par);
Ezután jön a while ciklus:
while ($sor = mysql_fetch_array($adatb))
{
}
A while az elöltesztelős ciklus. Amíg a zaŕójelben levő bármi igazat ad, lefut a { } közötti rész. Tehát ez történik: beolvassa az egész adatbázist, majd a $sor tömbbe kerül az egész tábla utolsó sora (mivelhogy order by id desc). Ezután így hivatkozhatsz rá: $sor[''user''], $sor[''id'']...
Miután végzett a { } közti résszel, ismét jön a $sor = mysql_fetch_array($adatb). Ha van még sor, amit nem olvasott be a táblából, akkor igazat ad vissza, tehát a ciklusmag lefut, ha az utolsó sor után jön megint az előbb említett parancs, akkor már hamisat ad--> nem fut le a ciklusmag.
A { }-ek közé meg én táblázatokba íratom ki a hsz-eket, ugyanis css-hez nem értek, máshogy meg nem tom hogyan lehet még az egész fórumnak pofát adni. :)
Remélem érthető voltam.
mod: smile off
[Szerkesztve] -
Forest_roby
őstag
Hi!
''Beolvasás meg select * from hirek order by id desc
Így idő szerint lesz sorba, a legutolsó hír legfelül.
Aztán jön egy while ciklus, mysql_fetch_array() függvényében. Én a hsz-eket táblázatba raktam.''
Ezt még meg tudnád mutatni, vagy kifejteni részletesebben : ) ? / aztán remélhetőleg egy ideig nem zaklatlak titeket : ) /
Előre is köszi!
Forest -
Forest_roby
őstag
hi!
Köszi a segítségeket! Már műxik alitak forrásval. Szerintem az enyémben volt egy enter rossz helyen, de mostmár mindegy - akkor vettem észre mikor illesztettem be alitak forrását. Egyébként jó, hogy írtátok ezt a datetime dolgot - én azt hittem, hogy magától képes azt eltárólni!
Mégegyszer köszi! -
vakondka
őstag
válasz
Forest_roby #899 üzenetére
A fieldname-ek felsorolásánál tedd a mezőneveket aposztrófok közé.
Arra gondolok, ami az AltGr+7 billentyű lenyomásánál jön elő.
Én a DATETIME típusú mezőt úgy szoktam kitölteni (ha az aktuális időpillanatot akarom eltárolni), hogy az SQL NOW() függvényét használom.
Pl:
INSERT INTO comments (`user`,`date`,`comment`) VALUES ('admin',NOW(),'komment szövege');
ui: és mivel ez egy SQL függvény, term. nem kell az aposztróf.
de ha mindenáron php-ból szeretnéd az időt előállítani, akkor ezt használd:
$datetime=date(''Y-m-d H:i:s''); -
alitak
senior tag
Hát a sztorihoz tartozik, hogy a tanár kémiát tanított, baromira unalmasan. Viszont volt egy-két jó beköpése. Hát ez az egyik.
A másik nagy kedvenc az az, hogy régi, talán '84-es tankönyvünk volt, és a tananyagot mindig diktálta, persze a könyvből. Aztán mikor már nem figyeltünk rá, akkor mindig azt mondta, hogy ő föladhatja jegyzetre, a könyvben ott található gyönyörűen elrejtve a lényeg.
Aktív témák
Hirdetés
- Samsung Galaxy A13 64GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD Sérült I W10 I CAM I Garancia!
- Xiaomi Redmi Note 11 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Azonnali készpénzes Intel i3 i5 i7 i9 8xxx 9xxx processzor felvásárlás személyesen / csomagküldés
- Apple iPhone SE 16GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest