- Gaming notebook topik
- Épített vízhűtés (nem kompakt) topic
- Ismét 128 és 256 GB-os memóriaszetteket villantott a G.Skill
- BIOS frissítés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- SSD kibeszélő
- A Windows 11 lett az úr az asztali PC-k piacán
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
Új hozzászólás Aktív témák
-
Zoltán
őstag
Jelenleg ez a php kód:
<?php
$datum= date(''Y.m.d. - H:i'',time()); //a dátum kinyerése
$ip=''$REMOTE_ADDR''; //az ip kinyerése
$email= ''aaa@fff.pl''; //csak úgy megadok most egy e-mail címet.
$nev = $_POST['nev'; // ez ugye a html űrlapról jön át
$jelszo = $_POST['jelszo'; // ez ugye a html űrlapról jön át
print ''$nev''; //ellenőrzés, tényleg az van benne, amit a html űrlapon megadok.
$ilyennincs=''$nev'';
$lekeres2 = mysql_query(''SELECT * FROM probatabla
WHERE nev= '$ilyennincs' '');
if (mysql_num_rows($lekeres2) != 0)
{
while ( $row = mysql_fetch_array( $lekeres2 ) )
{
print ''van már ilyen név'';
}
}
else //minden ezen az ágon fut tovább, ha nincs ilyen név még.
{
print ''<br>nincs még ilyen név0'';
$uzenet='''';
if ($nev=='''')
$uzenet .= ''Nem adtad meg a nevedet!<br>\n'';
if (strlen ($nev )>8)
$uzenet .=''Ne má' a név max. 8 karakter lehet!<br>\n'';
if ($jelszo=='''')
$uzenet .= ''Nem adtad meg a jelszavad!<br>\n'';
if (strlen ($jelszo )>8)
$uzenet .=''Ki bírja ezt megjegyezni???<br>\n'';
if ($uzenet !='''')
{
print (''
<font color=#aa0000 size=+1>
<b>$uzenet</b></font>'');
exit();
}
else //ha hibaüzi sincs, akkor fut tovább
{
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''37Ws8wHH2QdRg'';
$kapcsolat = mysql_connect($sqlhost, $sqluser, $sqlpass) or die(''Nem lehet csatlakozni: ''.mysql_error().''<br>'');
print ''Sikerült a kapcsolat letrehozasa<br>'';
mysql_select_db($database) or die(''Nem lehet megnyitni az adatbázist: ''.mysql_error().''<br>'');
print ''Sikerült kiválasztani a ''.$database.'' adatbázist<br>'';
mysql_query (''INSERT INTO probatabla (nev, jelszo, email, datum, ip)
VALUES ('$nev', '$jelszo', '$email', '$datum', '$ip')'',
$kapcsolat);
exit();
}
}
?> -
Zoltán
őstag
-
Zoltán
őstag
Mit jelent trimmelni? Én vagyok a felhasználó és én adom meg egy űrlapon a nevet. Az űrlap:
<FORM ACTION=''ellenorzes.php target=_blank'' METHOD=''POST''>
<tr><td align=left valign=top>
<b>NÉV:</b><br>
<INPUT type=''text'' name=''nev'' value='''' maxlenght=8> <br><br>
<b>JELSZÓ:</b><br>
<INPUT type=''password'' name=''jelszo'' value='''' maxlenght=8>
<INPUT TYPE='submit' NAME='kuld' VALUE='OK'></FORM> -
Zoltán
őstag
Agyam eldobom! Ha nem egy konkrét nevet adok meg, hanem egy véltozóban lévőt, akkor mindenképpen úgy érzékeli, hogy nincs még ilyen név:
Az user megad egy nevet, amin regelni szeretne, ez lenne a $nev
$ilyennincs=$nev;
$lekeres2 = mysql_query(''SELECT * FROM probatabla
WHERE nev= '$ilyennincs' '');
if (mysql_num_rows($lekeres2) != 0)
{
while ( $row = mysql_fetch_array( $lekeres2 ) )
{
print ''Már van ilyen név!'';
}
}
else
{
print ''<br>nincs még ilyen név0'';
}
Eddig jól ment, ha mondjuk: $ilyennincs=''g'';
ekkor jól kiírja, hogy ilyen nevű (g) már van. De ha változót írok oda, akkor meg mindenképpen úgylátja, hogy még nincs és engedi regelni.
Hogyan adhatok meg változót $ilyennincs-nek? -
Zoltán
őstag
válasz
VladimirR #92 üzenetére
Helyzet így is ugyanaz, mint a #91-ben. Nem írja ki a nevet és a progi sem fut tovább, tehát nem listázza ki az egész táblát (az jönne ezután). Ha nemlétező nevet írok be, akkor jól kiírja, hogy ilyen nincs és fut tovább a progi, tehát egy táblázatban kiírja, hogy mik vannak a táblában.
MOD: Na, rájöttem, így a jó a while:
while ( $row = mysql_fetch_array( $lekeres2 ) )
{
print $row[''nev'';
}
Most jó, örülök.Köszi mindhármótoknak!
[Szerkesztve] -
Zoltán
őstag
válasz
VladimirR #82 üzenetére
Akkor most jól megy, ha olyat írok be ami nem létezik, de ha létező nevet, akkor nem ír ki semit, sőt a később jövő sorok sem futnak le. Most így áll:
$ilyennincs=''g'';
$lekeres2 = mysql_query(''SELECT * FROM probatabla
WHERE nev= '$ilyennincs' '');
if (mysql_num_rows($lekeres2) != 0)
{
while ($row = $result->fetch_assoc())
{
print ($row[''nev'');
}
}
else
{
print ''<br>nincs még ilyen név0'';
}
''g'' nevű emberke van és semmit sem ír ki. Meg az ezek utáni sorok sem futnak le (egy másik lekérdezés, ami eddig jól ment, meg akkor is jó, ha olyat adok meg $ilyennincs -nek, ami nincs.
Most mé' nem jó?
-
Szalma
őstag
(''mysql_num_rows($lekeres2) = 0'' <- Ez itt szintaktikusan hibás. A forrás alapján szerintem így helyes ''mysql_num_rows($lekeres2) != 0''... A hiányzó ''}'' helyét pedig egy jó editor megmondja. Ha nem mond semmit, akkor ideje keresni egy jót... (vim))
Szeretettel:
Szalma
szerk.: És milyen lassan gépelek...
[Szerkesztve] -
L3zl13
nagyúr
Resource ID, amit a mysql_query visszaad, a select eredményeképp kapott resultset azonosítója. Akkor is létezik, ha nincs találat. Egyedül akkor nem lesz értéke, ha hibás volt a query. Ezért lehet ilyenkor or die(mysql_error())-t alkalmazni.
Természetesen ennek a resource ID-nek nincs semmi köze a táblák illetve a lekérdezés eredményében szereplő adatokhoz. SZóval resource id=9 nem a 9. sor, vagy a kilencedik ember vagy akármi. Hanem egyszerűen ezen az azonosítón keresztül lehet lekérni mondjuk PHP-ben az eredményt. -
VladimirR
nagyúr
ez azert van, mert a mysql_query egy resqurce ertekkel ter vissza, amit eloszor fetch-elni kell, pl a mysql_fetch_assoc, vagy mysql_fetch_array fuggvennyel
majd utana ki tudod iratni
abbol a resource_id-bol nem sok mindent tudsz meg, inkabb valami ilyesmi kellene (mint Szalma is irta)
$ilyennincs=''ilyennincs'';
$lekeres2 = mysql_query(''SELECT * FROM probatabla
WHERE nev= '$ilyennincs' '');
if (mysql_num_rows($lekeres2) = 0) {
while ($row = $result->fetch_assoc()) {
print $row[''nev'';
}
else
print ''0'';
[Szerkesztve] -
Zoltán
őstag
Köszi!
Közben kipróbáltam, hogy mi van akkor, ha olyat akarok a SELECT-el kiválasztani, ami nincs:
$ilyennincs=''ilyennincs'';
$lekeres2 = mysql_query(''SELECT * FROM probatabla
WHERE nev= '$ilyennincs' '');
if ($lekeres2 !='''')
print (''$lekeres2'');
else
print ''0'';
( Biztos vagyok benne, hogy nincs olyan nevű emberke, hogy ''ilyennincs'' )
Ez szépen le is fut, de ezt írja ki:
Resource id #9
Ami azért furcsa, mert a 9. ID-jű emberke neve: ''őő'' , amint azt ki is írja, lásd: Bővebben: link
Ha tudod, hogy miért van ez, írd meg légyszi! Köszi! -
Zoltán
őstag
Olyat szeretnék csinálni, hogy a mysql táblázatomba ne lehessen már meglévő néven regisztrálni. Tehát adott egy tábla, amiben mondjuk van egy név és egy jelszó egy sorban. Egy űrlapon valaki meg akarja adni a nevét ($nev) és a jelszavát ($jelszo), ezek bekerülnek a táblázatba egy új sorba, a $nev a ''nev'', a $jelszo meg a ''jelszo'' oszlopba. De nekem ellenőriznem kell, hogy van-e már ilyen név. Arra gondoltam, hogy egy ilyennel oldanám meg:
$ellenorzes = mysql_query( ''SELECT * FROM tabla
WHERE nev='$nev' '');
$nev -ben ugye a most megadott név van. Ha ez sikeresen lefut, tehát nem talál ilyen nevet, akkor tenném csak be a most megadott nevet és jelszót a táblázatba, egyébként kiírnám, hogy ilyen már van. Csak az a problémám, hogy nem tudom, hogy mi van, ha talál ilyen sort a SELECT? Vagy ha nem talál? Akkor mit csinál a SELECT? -
Zoltán
őstag
Egy éve még Én is hazajárogattam hétvégére.... Régi szép idők. Bár ha belegondolok, most is elég jó
Te hova utaztál haza? Én Kvárra. Na, nosztagia OFF.
Szóval köszi, hogy számontartottad. Meg amúgy is jó, hogy benézett ide még egy hozzáértő arc, mert VladimirR segítőkészségével már kezdtem visszaélni... -
VladimirR
nagyúr
igy probald:
$lekerdez = ''SELECT * FROM `probatabla` WHERE nev like '$nev' '''
$sorlekerdez = mysql_query($lekerdez) or die(''Hiba a lekerdezeskor: ''.mysql_error().''<br>'');
(a $nev mellet levo aposztrofot csereltem ki)
tipp: szedj le egy phpmyadmin-t (Bővebben: link) es azon keresztul tudod managel-ni az adatbazisod - valamint megmutatja a lekerdezesek sql es php kodjat is, igy tanulni is eleg jol lehet belole -
Zoltán
őstag
válasz
VladimirR #71 üzenetére
Oké , köszi, akkor ez most rendben van. Letöröltem a 2 táblát és kezdtem előről. Most van egy ''probatablam'' , abban benne van az első sor (az Annás), autoincremant van, így id -t nem adok meg. Aztán az alábbi kóddal be akartam tenni a következő sort is, úgy tűnik bele is rakta, de nem tudja kiválasztani a ''Belapapa'' -s sort. Így próbáltam:
<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''37Ws8wHH2QdRg'';
$ujtabla = ''CREATE TABLE `probatabla` (''
. '' `id` INT(10) NOT NULL AUTO_INCREMENT, ''
. '' `nev` VARCHAR(8) NOT NULL, ''
. '' `jelszo` VARCHAR(10) NOT NULL, ''
. '' `email` VARCHAR(250) NOT NULL, ''
. '' `datum` VARCHAR(20) NOT NULL, ''
. '' `ip` VARCHAR(250) NOT NULL, ''
. '' PRIMARY KEY (`id`)''
. '' )'';
$nev = ''Belapapa'';
$jelszo = ''rugoka'';
$email = ''berugos@franconmail.hu'';
$datum = ''2004.11.27. - 18:10'';
$ip = ''111.222.333.444'';
$parancs = ''INSERT INTO `probatabla` ''
. ''(`nev`, `jelszo`, `email`, `datum`, `ip`) ''
. ''VALUES ''
. ''('$nev', '$jelszo', '$email', '$datum', '$ip')'';
$kapcsolat = mysql_connect($sqlhost, $sqluser, $sqlpass) or die(''Nem lehet csatlakozni: ''.mysql_error().''<br>'');
print ''Sikerült a kapcsolat letrehozasa<br>'';
mysql_select_db($database) or die(''Nem lehet megnyitni az adatbázist: ''.mysql_error().''<br>'');
print ''Sikerült kiválasztani a ''.$database.'' adatbázist<br>'';
mysql_query($parancs, $kapcsolat) or die(''Hiba a lekerdezes kozben: ''.mysql_error().''<br>'');
print ''Sikerült beilleszteni az adatokat az adatbazisba<br>'';
$nev = ''Belapapa'';
$sorlekerdez = mysql_query(''SELECT * FROM `probatabla` WHERE nev like `$nev` '') or die(''Hiba a lekerdezeskor: ''.mysql_error().''<br>'');
print ''Sikerült lekerdezni az adatokat az adatbazisbol<br>'';
$sorok= mysql_num_rows($sorlekerdez) or die(''Itt a bibi, valami nem jo'');
print ''Sorok szama: ''.$sorok;
mysql_close($kapcsolat);
?>
Erre ezt írta ki:
Sikerült a kapcsolat letrehozasa
Sikerült kiválasztani a db_ak48 adatbázist
Sikerült beilleszteni az adatokat az adatbazisba
Hiba a lekerdezeskor: Unknown column 'Belapapa' in 'where clause'
Tehát úgy tűnik bele tette a 2. sort, de Belapapa nevűt nem talál.
MOD: biztos, hogy betette a 2. sort, mert a sorok számát jól le tudom kérdezni, de Belapapa-t sehol sem talál. Hogyan keressem? Illetve tudnál ajánlani egy rendes mysql (elektronikus) könyvet, mert úgy tűnik semmi sincs jól abban amit én találtam. Köszi!
[Szerkesztve] -
VladimirR
nagyúr
a dontott idezojel arra jo, hogy ha ''foglalt szot'' (pl mysql fuggvenynevek, parancsnevek, akarmik) szeretnel adni tabla-, vagy mezonevnek, akkor ilyenek koze kell irni
elhagyhato, ha nem ilyen foglalt kifejezest hasznalsz, de en igy szoktam meg, mert phpmyadminbol nezehgettem ki a php-s sql kodokat, s az mindenhova tesz
a hibat azert kapod, mert mar van 0 erteku key1 (sorban az elso, vagyis az id)
ezt ketfelekeppen kerulheted ki:
-lekerdezed, hogy mi az aktualis legnagyobb id, es attol egyel nagyobbat adsz meg
-autoincrementet hasznalsz, es a lekerdezesbol kiveszed az id-t, tehat ez lesz a beszurasod:
$parancs = ''INSERT INTO `probatabla` ''
. ''(`nev`, `jelszo`, `email`, `datum`, `ip`) ''
. ''VALUES ''
. ''('$nev', '$jelszo', '$email', '$datum', '$ip')'';
ekkor az id automatikusan fopg novekedni
beallitamni meg igy tudod:
ALTER TABLE `probatabla` CHANGE `id` `id` INT(10) NOT NULL AUTO_INCREMENT
az file-ok meg azert ne voltak elerhetoek, mert nem ment a gepem, igy nem volt elerheto a webszerverem, de most mar ujbol megy (ritka az olyan, hogy kikapcsolom a gepet, de ki kellett szednem a hdd-t)
-
Zoltán
őstag
Megpróbáltam a következő sor adatot is feltölteni a táblába, de ezt írta ki:
Sikerült a kapcsolat letrehozasa
Sikerült kiválasztani a db_ak48 adatbázist
Hiba a lekerdezes kozben: Duplicate entry '0' for key 1
Gondolom azért, mert nem növeli autómatikusan a sorok számát. Erre jó az AUTO_INCREMENT , ugye?
Hogyan tudom ezt utólag belerakni a táblába?
Egyébként így próbáltam a 2. sort beletenni:
<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''37Ws8wHH2QdRg'';
$ujtabla = ''CREATE TABLE `probatabla` (''
. '' `id` INT(10) NOT NULL, ''
. '' `nev` VARCHAR(8) NOT NULL, ''
. '' `jelszo` VARCHAR(10) NOT NULL, ''
. '' `email` VARCHAR(250) NOT NULL, ''
. '' `datum` VARCHAR(20) NOT NULL, ''
. '' `ip` VARCHAR(250) NOT NULL, ''
. '' PRIMARY KEY (`id`)''
. '' )'';
$nev = ''Belapapa'';
$jelszo = ''rugoka'';
$email = ''berugos@franconmail.hu'';
$datum = ''2004.11.27. - 18:10'';
$ip = ''111.222.333.444'';
$parancs = ''INSERT INTO `probatabla` ''
. ''(`id`, `nev`, `jelszo`, `email`, `datum`, `ip`) ''
. ''VALUES ''
. ''('$id', '$nev', '$jelszo', '$email', '$datum', '$ip')'';
$kapcsolat = mysql_connect($sqlhost, $sqluser, $sqlpass) or die(''Nem lehet csatlakozni: ''.mysql_error().''<br>'');
print ''Sikerült a kapcsolat letrehozasa<br>'';
mysql_select_db($database) or die(''Nem lehet megnyitni az adatbázist: ''.mysql_error().''<br>'');
print ''Sikerült kiválasztani a ''.$database.'' adatbázist<br>'';
mysql_query($parancs, $kapcsolat) or die(''Hiba a lekerdezes kozben: ''.mysql_error().''<br>'');
print ''Sikerült beilleszteni az adatokat az adatbazisba<br>'';
$sorlekerdez = mysql_query(''SELECT * FROM `probatabla`'') or die(''Hiba a lekerdezeskor: ''.mysql_error().''<br>'');
print ''Sikerült lekerdezni az adatokat az adatbazisbol<br>'';
$sorok= mysql_num_rows($sorlekerdez) or die(''Itt a bibi, valami nem jo'');
print ''Sorok szama: ''.$sorok;
mysql_close($kapcsolat);
?>
Tehát csak annyit csináltam, hogy kivettem a táblakészítést és kicseréltem a feltöltendő sor adatait. -
Zoltán
őstag
válasz
VladimirR #67 üzenetére
Na most fogtam magam és egyszerűen becopypastéztem a Te kódodat (és persze kicseréltem az aposztrófokat) és most jó! Csak azt nem értem, hogy ha Én írom be pontosan ugyanezt (szintaktikai hiba nélkül, hisz lefut, nem szól a php, hogy ebben és ebben a sorban hiba van), akkor miért nem jó? Meg 2 könyvet is megnéztem, hogy hogyan kell pontosan mit-hova írni és úgy csináltam. Nem értem. Örülök, hogy végre jó, csak bosszant, hogy nem tudom, hol volt a hiba. (Az meg mégsem mehet, hogy minden egyes mysql ténykedésemkor rohanjak ide, hogy írd le légyszi helyettem, mert csak úgy megy
)
Köszönöm szépen!!
MOD: Most vettem észre, hogy az általad írt aposztróf máshogy néz ki, mint az általam írt! A tied döntött, az enyém (1-es fölötti shiftel) meg egyenes. (Összehasonlítottam a két kódot, (két notepadot egymás után gyorsan kapcsolgatva) így vettem észre). Ez meg mi a szösz lehet? Fontosak az aposztrófok vagy elhagyhatók, esetleg idézőjellel helyetesíthetők?
Köszi
[Szerkesztve] -
Zoltán
őstag
válasz
VladimirR #67 üzenetére
NOT NULL-t kijavítottam, de még mindig ezt írja ki:
Sikerült a kapcsolat létrehozása
Sikerült kiválasztani a db_ak48 adatbázist
Hiba a tabla létrehozásánál: You have an error in your SQL syntax near ''probatabla' ( 'id' int(10) NOT NULL, 'nev' varchar(8) NOT NULL, 'jelszo' varc' at line 1
Idézőjelek-aposztrófok persze ki lettek rendesen cserélve. Az általad linkelt oldalakat pedig sajnos nem tudom elérni.
Már arra is gondoltam, hogy ilyen nevű tábla esetleg már létezik, azért nem tudom létrehozni. Hogyan tudom ellenőrizni, hogy milyen táblák vannak?
[Szerkesztve] -
VladimirR
nagyúr
dupla aposztrofokat mindenutt lecserelted idezojelre?
itt a kod maga => Bővebben: link es igy tudod letolteni => Bővebben: link
jah es az nem not_null, hanem NOT NULL
[Szerkesztve] -
Zoltán
őstag
válasz
VladimirR #65 üzenetére
Begépeltem betűről-betűre, le is fut, csatlakozik is az adatbázishoz (mint eddig mindig) viszont tovább most se jut, ezt írja ki:
Sikerült a kapcsolat létrehozása
Sikerült kiválasztani a db_ak48 adatbázist
Hiba a tabla létrehozásánál: You have an error in your SQL syntax near ''probatabla' ( 'id' int(10) not_null, 'nev' varchar(8) not null, 'jelszo' varc' at line 1 -
VladimirR
nagyúr
na, igy probald meg, ez nalam mukodik:
<?php
$database=''test'';
$sqlhost=''localhost'';
$sqluser=''root'';
$sqlpass='''';
$ujtabla = ''CREATE TABLE `probatabla` (''
. '' `id` INT(10) NOT NULL, ''
. '' `nev` VARCHAR(8) NOT NULL, ''
. '' `jelszo` VARCHAR(10) NOT NULL, ''
. '' `email` VARCHAR(250) NOT NULL, ''
. '' `datum` VARCHAR(20) NOT NULL, ''
. '' `ip` VARCHAR(250) NOT NULL, ''
. '' PRIMARY KEY (`id`)''
. '' )'';
$nev = ''Anna'';
$jelszo = ''bingo777'';
$email = ''annana@franconmail.hu'';
$datum = ''2004.11.27. - 17:20'';
$ip = ''555.666.777.888'';
$parancs = ''INSERT INTO `probatabla` ''
. ''(`id`, `nev`, `jelszo`, `email`, `datum`, `ip`) ''
. ''VALUES ''
. ''('$id', '$nev', '$jelszo', '$email', '$datum', '$ip')'';
$kapcsolat = mysql_connect($sqlhost, $sqluser, $sqlpass) or die(''Nem lehet csatlakozni: ''.mysql_error().''<br>'');
print ''Sikerült a kapcsolat letrehozasa<br>'';
mysql_select_db($database) or die(''Nem lehet megnyitni az adatbázist: ''.mysql_error().''<br>'');
print ''Sikerült kiválasztani a ''.$database.'' adatbázist<br>'';
mysql_query($ujtabla, $kapcsolat) or die(''Hiba a tabla letrehozasanal: ''.mysql_error().''<br>'');
print ''Sikerült letrehozni az uj tablat az adatbazisban<br>'';
mysql_query($parancs, $kapcsolat) or die(''Hiba a lekerdezes kozben: ''.mysql_error().''<br>'');
print ''Sikerült beilleszteni az adatokat az adatbazisba<br>'';
$sorlekerdez = mysql_query(''SELECT * FROM `probatabla`'') or die(''Hiba a lekerdezeskor: ''.mysql_error().''<br>'');
print ''Sikerült lekerdezni az adatokat az adatbazisbol<br>'';
$sorok= mysql_num_rows($sorlekerdez) or die(''Itt a bibi, valami nem jo'');
print ''Sorok szama: ''.$sorok;
mysql_close($kapcsolat);
?>
[Szerkesztve] -
Zoltán
őstag
Most így próbáltam:
<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''.....'';
$kapcsolat=mysql_connect($sqlhost, $sqluser, $sqlpass);
if (! $kapcsolat) die (''Nem lehet csatlakozni'');
print ''Sikerült a kapcsolat!'';
mysql_select_db($database)
or die (''Nem lehet megnyitni az adatbázist:''.mysql_error() );
print ''Sikerült kiválasztani a $database adatbázist!'';
mysq_query(''create table probatabla ( id int(10) not_null, nev varchar(8), jelszo varchar(10), email varchar (250), datum varchar (20), ip varchar (250), primary key(id));'');
echo(mysql_error());
$nev=''Anna'';
$jelszo=''bingo777'';
$email=''annana@franconmail.hu'';
$datum=''2004.11.27. - 17:20'';
$ip=''555.666.777.888'';
$parancs = ''INSERT INTO probatabla
(id, nev, jelszo, email, datum, ip)
VALUES
('$id','$nev','$jelszo','$email','$datum','$ip')'';
mysql_query($parancs);
echo(mysql_error());
$sorlekerdez = mysql_query(''SELECT * FROM probatabla'');
$sorok= mysql_num_rows($sorlekerdez);
print ''$sorok'';
echo(mysql_error());
mysql_close ($kapcsolat)
?>
ez eddig a legjobb, mert lefut, semmi hibát nem ír ki a sok echo(mysql_error()); ellenére sem, meg kiírja, hogy sikerült csatlakozni, viszont még mindig nem írja ki a $sorok -at. Pedig utána van egy echo(mysql_error()); és így sem ír ki hibát.
Ki érti ezt? A tvn.hu -n próbálkozom. -
Zoltán
őstag
''bocsesz a kimaradasert,'' -ugyan, én örülök, hogy segítesz, amikor tudsz.
You have an error in your SQL syntax near ';) ' at line 10
Ezt a hibát írja ki.
Csak az a furcsa, hogy a 10. sorban még olyan kód van, hogy csatlakozzon az adatbázishoz, ami sikerül is, ki is írja, hogy oké! -
muad_dib
tag
ahham.
bocsesz a kimaradasert, csak leleptem melobol... most meg menek sore
amit javaslok: a primary key az utolso legyen (marmint a prmary key 'szo') nem hiszem h ez a baj, de mar nem tudok mire gondolni. Kozvetlenul a create utan irass ki egy mysql errort, illetve vizsgald le a mysql query visszateresi erteket... az is lehet, h jogosultsag gubanc, de az errornak meg kell mondani... ha ez se megy, akkor:
mysql_query(''start transaction;'');
mysql_query(''tequeryd'');
mysql_query(''commit;'');
de ezt hagyd utoljara... valami furan lehet konfolva nalad vagy nemtom -
Zoltán
őstag
Így (is) próbálom létrehozni a táblát:
mysql_query(''
CREATE TABLE probatabla
(azonosito INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (azonosito),
nev VARCHAR (8),
jelszo VARCHAR (10),
email VARCHAR (250),
datum VARCHAR (20),
ip VARCHAR (250);)
'');
Csatlakozni tudok az adatbázishoz, de a tábla nem jön létre. -
muad_dib
tag
Hmmm...
erdekes.
Ha nem countot nezel meg akkor is vacak?
azaz
$result=mysql_query(''select nev, ip from probatabla;'');
while($retval=mysql_fetch_array($result){
echo($retval->nev.'' ''.$retval->ip);
}
ha ez se ad semmit akko nincs semmi a tabladba az fix...
lehet meg tranzakcio problema esetleg, mysql conf tol fugg...
jah, ha select * -ot irsz, akkor arra vigyazz, hogy a php egy helyen betumeret erzekeny, espedig az objektumoknal,,, azaz, ha a tablaban a mezo neve 'kutya'
akkor $retval->kutya, es nem $retval->Kutya
viszont, ha select akarmi as AkArMi, akkor meg $result->AkArMi ami neked kell....
probalkozz olyannal is, hogy a mysql_query utan nyomsz egy echo(mysql_error()); -t
ami jol megmondja ha esetleg vmit elszurtal -
muad_dib
tag
Azért lehet, mert ugyan összerakod a $parancsot, de nem annyira futtatod le
jah, amúgy javaslat: ugyan nem kötelező de azért rakd csak ki a ;-t a mysql parancsok után...
okos php doksi
Bővebben: link
[Szerkesztve] -
Zoltán
őstag
Most sikerült kapcsolódni az adatbázishoz, de semmit sem ír kia a $sorok-ra.
<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''3660qHhJyNkw6'';
$kapcsolat=mysql_connect($sqlhost, $sqluser, $sqlpass);
if (! $kapcsolat) die (''Nem lehet csatlakozni'');
print ''Sikerült a kapcsolat!'';
mysql_select_db($database)
or die (''Nem lehet megnyitni az adatbázist:''.mysql_error() );
print ''Sikerült kiválasztani a $database adatbázist!'';
mysql_query(''
CREATE TABLE probatabla
azonosito INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (azonosito),
nev VARCHAR (8),
jelszo VARCHAR (10),
email VARCHAR (250),
datum VARCHAR (20),
ip VARCHAR (250));
'');
$nev=''Anna'';
$jelszo=''bingo777'';
$email=''annana@franconmail.hu'';
$datum=''2004.11.27. - 17:20'';
$ip=''555.666.777.888'';
$parancs = ''INSERT INTO probatabla
(azonosito, nev, jelszo, email, datum, ip)
VALUES
('$azonosito','$nev','$jelszo','$email','$datum','$ip')'';
$sorlekerdez = mysql_query(''SELECT * FROM probatabla'');
$sorok= mysql_num_rows($sorlekerdez);
print ''$sorok'';
mysql_close ($kapcsolat)
?>
Tudtok ajánlani valami jó mysql tutorialt, mert amit én találtam az semmire se jó, mint az fentebb látszik. Köszi. -
Zoltán
őstag
Szóval itt tartok:
<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''törölve'';
$kapcsolat=mysql_connect($sqlhost, $sqluser, $sqlpass);
if (! $kapcsolat) die (''Nem lehet csatlakozni'');
print ''Sikerült a kapcsolat!'';
mysql_select_db($database)
or die (''Nem lehet megnyitni az adatbázist:''.mysql_error() );
print ''Sikerült kiválasztani a $database adatbázist!'';
mysql_query(
CREATE TABLE elsotablam //ez lesz itt a tábla neve
(
azonosito INT NOT NULL AUTO_INCREMENT, //INT-egész szám
PRIMARY KEY (azonosito),
nev VARCHAR (8),
jelszo VARCHAR (10),
email VARCHAR (250),
datum VARCHAR (20),
ip VARCHAR (250));
)
);
mysql_close ($kapcsolat)
?>
Kedves Hozzáértők: Mondjátok el légyszi, hogy hogyan kellene helyesen használni a my_sql_query- t! Kökő!
[Szerkesztve] -
Zoltán
őstag
válasz
Tele von Zsinór #43 üzenetére
''ad1'' -Erre nem tudok, mit mondani, egyszerűen ilyen töketlen vagyok.
Elnézést kérek.
''ad2'' -mert nem tudom, hogyan kell. Megírnád? Köszi!
[Szerkesztve] -
Zoltán
őstag
Sziasztok!
Írtam ezt a kódot:
<?php
$database=''db_ak48'';
$sqlhost=''localhost'';
$sqluser=''ak48'';
$sqlpass=''...törölve...'';
$kapcsolat=mysql_connect($sqlhost, $sqluser, $sqlpass);
if (! $kapcsolat) die (''Nem lehet csatlakozni'');
print ''Sikerült a kapcsolat!'';
mysql_select_db($database)
or die (''Nem lehet megnyitni az adatbázist:''.mysql_error() );
print ''Sikerült kiválasztani a $database adatbázist!'';
mysql_close ($kapcsolat)
CREATE TABLE elsotablam
(
azonosito INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (azonosito),
nev VARCHAR (8),
jelszo VARCHAR (10),
email VARCHAR (250),
datum VARCHAR (20),
ip VARCHAR (250));
)
?>
De a 17. sorra ( Create table........) hibát ír. Addig biztos, hogy jó, amíg csatlakozik az adatbázishoz, csak a tábla fejlécét nem tudom létrehozni. Mit írhattam el?
Köszi előre is! -
Tele von Zsinór
őstag
válasz
Tele von Zsinór #39 üzenetére
up!
-
muad_dib
tag
válasz
Törzsfőnök #36 üzenetére
lehet, megneztem
select ize from valami where masikeredmeny = (select masikeredmeny from masikize) and eznekemjo=true;
a zarojel fontos, maskepp nem eszi meg
[Szerkesztve] -
L3zl13
nagyúr
válasz
Tele von Zsinór #37 üzenetére
Próbáltad újra megadni az engedélyeket?
-
Tele von Zsinór
őstag
Nekem magával a MySQL szerverrel kapcsolatban lenne kérdésem: egy cégnek írok adatbázis kezelő progit (mi mást, ha itt kérdezek?
), a szervergépre felraktam MySQL szervert, csináltam egy farszer adatbázist, bele 3 táblát, jogokat kiosztottam (''grant all privileges on farszer.* to 'ODBC'@'%' '', ne menjünk most bele ennek a veszélyeibe, nincs net a szerveren, támadástól egyelőre nem kell tartani), és ekkor ment is a progi rendesen, hálózaton keresztül. Viszont ekkor jött még néhány új igény, aminek a következménye sok-sok alter table lett. A describe helyesen jelzi a tábla felépítését. A progi a korábban is létező mezőkkel rendesen működik, de amikor az újakba próbál írni, nem történik semmi. Ha MySQL konzollal módosítok egy rekordot, akkor azt helyesen látja, de írni így se tudja. Találkozott már valaki hasonlóval?
-
muad_dib
tag
válasz
Törzsfőnök #34 üzenetére
nemtom, lehet h hulye vok, de szerintem 4ben siman lehet ilyet csinalni... most epp nem erek ra de megprobalom megnezni ha meg erdekel esetleg.
-
Törzsfőnök
tag
Hello
A mysql-ben még egyelőre nem vagyok járatos, viszont a standard SQL-hez értek alap szinten.
Azt halottam, hogy a mysql-ben nem lehet egymásbaágyazott SQL lekérdezést írni. Informátorom azt is hozzátette, hogy 4.xx verziót használja, és ott sem lehet még. Néztem a neten az 5-ös verzióra vonatkozó ficsöröket, de közöttük sem találtam arra való utalást. Akkor hogy lehet megvalósítani egy eredetileg egymásbaágyazott lekérdezést egyszerűen mysql-ben? -
muad_dib
tag
Nemtom ezt nézted-e már..
http://www.kitebird.com/articles/access-migrate.html -
muad_dib
tag
Egy időben szívtam olyas dolgokkal, hogy adatbázisszerkezetet kellet objektumokra bontva bizergélni, és a neten van néhány olyan progi, aminek megadhatsz valós adatbázist, csinál okos ojjektumokat (táblákat, view-kat, meg ilyenek) és tudja a kész cuccot exportálni. Sajna nem ugrik be egy név sem, amit tudok, hogy nekünk itt cégnél van egy MS Visio nevű cucc - ami általában prezi készítésre használatos felénk - és ő tutira tudott ilyet csinálni, bár feltételezem egyszerűbb megoldást is találsz...
-
jeszi
tag
Van egy nagy orvos adatbázis Access-ben, amit napi szinten karban kell tartanom. Ezenkívül gyakran kérnek tőlem különböző listákat. Pl.: Háziorvosok Bp-en, tel. szükséges stb.
Írnom kéne egy olyan alkalmazást, amellyel ezeket a feladatokat el tudom látni. Intranetes megoldást szeretnék, php+Apache+MySql használatával.
Első lépésben át akarom konvertálni az Access adatbázist MySql-re. Az adatok áthelyezése csak akkor megy, ha már a táblákat létrehoztam MySql-ben. Lenne olyan módszer, ami a táblákat is létrehozza? És akkor nem kell nekem manuálisan beirogatni a táblákat, mezőneveket, típusokat. -
L3zl13
nagyúr
Szvsz config.php-ban azért van titkosítatlanul, mert a kódot úgyis csak az látja, akinek fájl szintű hozzáférése van a szerverhez. Az meg úgyis megtehet bármit.
Adatbázisbéli titkosítás pedig szerintem kimondottan csak azoktól véd akik SQL injecttel vagy hasonló módon hozzáférnek az adatbázishoz.
A beírt kódnak meg őpszintén szólva nem sok értelmét látom... -
Akcept
tag
Üdv mindenkinek!
MySql biztonsági kérdésem van. A config fájlt védem a következő kódrészlettel:
if (eregi(''config.php'',$_SERVER['PHP_SELF')) {
Header(''Location: valami.php'');
die();
A config-ban található név-jelszó-adatbázisnév birtokában hozzáférnek az adatbázishoz, és azt tehetnek amit akrnak, ellenkező esetben nem.
A kérdésem a következő: miért kell az adatbázisban titkosítva tárolni a jelszavakat amikor a configban (vagy máshol) úgyis titkosítás nélkül van a fent említett triumvirátus? És még mit tegyek a nagyobb biztonságért?
Előre is kössz. -
b14
senior tag
Kerem, valaki segitsen feltelepiteni a gepemre az sqlt.
Msn cimem: email cimem.
A tavsegitseg lenne a legjobb. -
Angel82
csendes tag
Ok, értem mire gondolsz! Végülis akkor az isset alapján döntsem el a dolgot és ha kell, irányítsam át ahova jólesik, nem?
Nagyjából átolvastam az inject-es részt. Lényegileg tehát arról van szó, hogy egy végtelenített lekérdezést/insertet stb.. hoznak létre kedves emberkék a változó megadásával.
Néhány kérdés:
Hogyan láthatják a változóim nevét?
Ebben az esetben sztem bármilyen változót megadhatna paraméterként, legfeljebb nem lenne eredménye a lekérdezéshalmaznak, nem?
Ha ráérsz, várom válaszod! -
L3zl13
nagyúr
De nem érted?
Minek kell megvárnod a mysql errort? Már az sql lekérdezés előtt is meg tudod nézni kaptál-e paramétert vagy sem.
Ha nem kaptál akkor úgyis hibás lesz a lekérdezés, akkor meg minek futtatod le?
Ennél a lekérdezésnél csak annyi múlik rajta, hogy mysql errort lát a felhasználó, vagy pedig hibaüzenetet, de máskor esetleg hazavághatja az adatbázisod egy ellenőrizetlenül felhasznált paraméter.
Nézz csak bele a PHP kérdések topicba. Pont mostanság írogatott valaki az SQL inject támadásról...
[Szerkesztve] -
Angel82
csendes tag
Köszi a segítséget, de teljesen félreérted a lényeget. Messze nem hibakeresést kértem, köszönöm! Van egy keresés oldal, ami átad egy értéket url paraméterként a megjelenítésért felelős oldalnak. Még mielőtt gondot csinálsz belőle, azért url paraméter és nem más, mert ez az oldal több helyről is megkaphatja ezt, többek között önmagától, így post, session stb... kizárva. Annyi volt a gondom, hogy ha nem kap paramétert az oldal, akkor le sem futott a legelső lekérdezés, hanem mysql_error-ral befejezte az oldal futtatását. Ezt szerettem volna kiküszöbölni valami értelmes megoldással.
Mégegyszer köszönöm a segítséget! -
VladimirR
nagyúr
egyreszt Bővebben: link
masreszt
if (isset($_GET['id'])) {
//ide jon a lekerdezes es az eremeny kiiratasa
} else {
print ''aggyal meg parametert'';
} -
Angel82
csendes tag
Tehát a gettel kapott id alapján csinál egy lekérdezést, de ha nincs id akkor írjon ki vmit
-
Angel82
csendes tag
Itt igazából arról van szó, hogy get-tel kap az oldal egy paramétert, ami alapján megjelenít szépen táblában 30 lekérdezés után egy rakat adatot. Azt szeretném elérni, ha semmit se kap paraméterként, akkor írjon ki valamit.
Íme a kód:
<?php
$colname_tk = ''1'';
if (isset($_GET['id')) {
$colname_tk = (get_magic_quotes_gpc()) ? $_GET['id': addslashes($_GET['id'
);
}
mysql_select_db($database_myconn, $myconn);
$query_tk = sprintf(''SELECT * FROM sajt WHERE id = %s'', $colname_tk);
$tk = mysql_query($query_tk, $myconn) or die(mysql_error());
$row_tk = mysql_fetch_assoc($tk);
$totalRows_tk = mysql_num_rows($tk); -
L3zl13
nagyúr
Ne die függvényt használj, hanem valami mást...
Ha még semmit nem írtál ki az oldalra, akkor header() -rel átirányítod, és GET-tel átadod a mysql_error() visszaadott értékét.
Bár nem tom miért kell egyátálán átirányítani. Ugyanezen az oldalon is kiírhatnád a hibaüzit.
[Szerkesztve] -
Angel82
csendes tag
Sziasztok!
MySQL-ben szeretném azt elérni, hogy die(mysql_error()) esetén ne hibaüzenetet írjon ki, hanem ugorjon x.php oldalra (ahova én írom a hibaüzit). Tudom, hogy die(''Szöveg'')-et lehet csinálni, de sajnos ebben az esetben nem formázható a szöveg, meg ilyenek. Ha valaki tudna segíteni, kérem írjon.
Thx előre is!
Új hozzászólás Aktív témák
Hirdetés
- Gaming notebook topik
- Épített vízhűtés (nem kompakt) topic
- Gumi és felni topik
- Kerékpárosok, bringások ide!
- Mibe tegyem a megtakarításaimat?
- Kertészet, mezőgazdaság topik
- Ismét 128 és 256 GB-os memóriaszetteket villantott a G.Skill
- Xiaomi AX3600 WiFi 6 AIoT Router
- exHWSW - Értünk mindenhez IS
- One mobilszolgáltatások
- További aktív témák...
- LG OLED55G42LW LG Gyári garancia 3 év
- HP EliteBook 840G6 ! AKCIÓ!!! a készlet erejéig!
- Kobo Aura Edition 2 (N236) 6" háttérvilágításos kijelzővel, 4 GB-os tárhellyel - jó állapotban
- HP ProBook 430 G8, 13,3" FHD IPS, I5-1135GU CPU, 16GB DDR4, 256GB SSD, WIN 11, 27% áfás számla, 1 év
- Playstation Portal - 3 hónap Bolti Garanciával
- AKCIÓ! MSI Z77 MPOWER Z77 chipset alaplap garanciával hibátlan működéssel
- LG 42C3 - 42" OLED EVO - 4K 120Hz 0.1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - A9 Gen6 CPU
- ÁRCSÖKKENTÉS Lenovo ThinkPad T570, T580, P51s, P52s eredeti Lenovo, belső akkumulátor eladó
- PlayStation Network Card (PSN) ajándékkártyák, egyenesen a Sony-tól!
- Xiaomi Redmi A3 64GB Kártyafüggetlen, 1Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest