/MEGOLDVA/ SQL guid beolvasása és kiíratása.

Szeretném majd kiíratni azt, hogy mennyi a valósan regisztrált felhasználók mennyisége az adott adatbázisban, ezt egy sql adatbázisból gondoltam a guid értéket alapul véve, az index oldalon jeleníteném meg, az index oldal php. Remélem nem írtam marhaságot.

Köszönöm szépen mindenkinek az építőjellegű hozzászólásokat, egyelőre ez nekem túl magas, sokat kell még olvassak ezekben a témakörökben.

Hozzászólások

Mi a kérdés?

SELECT COUNT(guid) AS felhasznalok_mennyisege FROM users;

SELECT COUNT(guid) AS felhasznalok_mennyisege FROM users;

Kerestem azt, hogy hogyan tudom kiíratni az összes regisztrált felhasználót a főoldalra, de csak sima print utasítás működik, ezt a sort nem tudom értelmezni helyesen. :-(

Próbáltam így kiíratni, de szintaktikai hibát adott:

print SELECT COUNT(guid) AS felhasznalok_mennyisege FROM users;

Nagyon messziről indulsz neki, de ezen az oldalon vannak működő példák: https://www.php.net/manual/en/pdo.connections.php

A fent ajánlott SELECT-tet nem a PHP értelmezi, hanem átadja az adatbáziskezelőnek és az fogja futtatni, majd visszaadni az eredményt. Kb a következő lépések kellenek a feladathoz:

1. Csatlakozás az adatbázis szerverhez

2. SQL lekérdezés átadása a szervernek

3. Visszatérési érték ellenőrzése (sikerült-e futtatni az SQL-t vagy hiba történt)

4. Visszaadott adatok feldolgozása

Az adatbázis tipusa sincs tisztázva ...  MsSQL , MySQL ,  PostgreSQL, Orracle, SQLite ??

Szerkesztve: 2021. 06. 10., cs – 08:50

index.php  -tartalma:

<?php  

$hostname_ = "127.0.0.1";  // ahol a MySQL  szerver fut
$database_ = "mysql";  //  ez legyen fixen 'mysql'
$username_ = "user";  // aki hozzáfér a 'mysql' adatbázishoz
$password_ = "passwd";  // aki hozzáfér a 'mysql' adatbázishoz, annak a jelszava
$connect = mysql_pconnect($hostname_, $username_, $password_) or trigger_error(mysql_error(),E_USER_ERROR); 

$adatbazis="sajat";  // az az adatbázis amire kíváncsi vagy

mysql_select_db($database_, $connect);
$q="SELECT COUNT(user) AS felhasznalok_mennyisege FROM db WHERE Db='$adatbazis'";
$adatok = mysql_query($q, $connect) or die(mysql_error());
$row_adatok = mysql_fetch_assoc($adatok);
$totalRows_adatok = mysql_num_rows($adatok);
echo $row_adatok['felhasznalok_mennyisege'];
mysql_free_result($adatok);

?>

A fenti szkript egy új telepítésű PHP-val nem fog futni, a mysql_* függvények már több mint öt éve ki lettek dobva:

"Warning! This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0."

(https://www.php.net/manual/en/function.mysql-pconnect.php)

2013 januárja óta deprecated, 2015 decembere óta nem is elérhető...

Nálam fut, mert PHP 5.6  van  a szeveren.
De a 7.0 -val is fut, csak valamit trükközni kellet vele. Implementálni kellett mysql_*   függvényeket.

De a kérdés nem ez volt a poszt írójánál.

Ha gondolod írd meg mysqli -kel  és másold ide neki !!

Az én példám a SELECT miatt, illetve a kapcsolat-lekérés-kiírás-lezárás folyamat átlátása miatt lehet hasznos.

Maguk a mysql_ vagy mysqli_  parancsok helyettesíthetők...

PDO-t soha nem használtam, mert nem támogatja tudtommal az ADOBE DREAMWEAVER , amit webszerkesztésre használok ..
De lehet, hogy már igen ??

Folyamatosan olvasom a kitett példákkal kapcsolatos dolgokat, mivel soha nem tanultam, így lassan haladok a megértésekkel, sokat kell kutatnom szakszavak megértésére, remélem nem csak érzem, hanem valóban haladok, hamarosan egy tesztszerveren ki is fogok mindent próbálni.

Felteszem, van valami php-s weboldalad, amit vagy mas megirt neked, vagy valami letezo engine felparameterezve, modulokkal. Jo tippeket kaptal, es valami ilyesmi lesz is a megoldasban, de en nem erre indulnek el.

Ha van egy oldalad, akkor ne kezdd el megkerulni, es korbefejleszteni, hanem hasznald fel! Ha MySQL-t haszal, akkor mar lesz benne valami, ami a mysql/mysqli/PDO/egyebet felhasznalja, mar csatlakozik is hozza, es az eredmenyt is lekeri, csak meg kell adni neki a lekerdezest. En elso korben megprobalnam megkeresni benne, hogy ez a resze hogy mukodik (forrasban rakeresel ilyesmikre, hogy select, insert, update, delete, stb..). Ha van valami modul rendszere (pl. Drupal/Joomla/Wordpress is rendelkezik ilyesmivel), akkor azt is megerheti megnezni, es nem beletaknyolni a sajatodat, hanem modult irni, mert akkor frissites utan sem leszel meglove.

Ha ezt megnezted, akkor erdemes megerteni az adatbazis szerkezetet (legalabb az itt relevans reszeit). Ebben segithet valami DB nezegeto program. Szinte biztos, hogy nem db lesz a megfelelo tablanev, de lehet, hogy a users sem jo (jo, tudom, az inkabb pszeudokod volt). Ezen kivul mi tortenik, ha egy felhasznalot torolnek? Veglegesen torlodik (ezaltal eltunnek pl. a hozzaszolasai is), vagy logikai torlest hasznal, szoval a users (maradjunk a pelda kedveert ennel a nevnel) tablaban van egy - mondjuk - deleted oszlop, ami defaultban false, es torleskor true-ra all (vagy default NULL, es torleskor beallitod a torles idejere). Ez azt jelenti, hogy ha az aktiv, nem torolt felhasznalok szama az erdekes, akkor a korabbi SELECT COUNT(guid) AS felhasznalok_mennyisege FROM users; lekerdezes SELECT COUNT(guid) AS felhasznalok_mennyisege FROM users WHERE deleted is null; lesz (vagy WHERE deleted=false vagy ilyesmi). (persze a megfelelo neveket meg kell nezni)

Ha a csatlakozas es a lekerdezes megy, es tudod a pontos SQL parancsot is, akkor mar relative fajalommentesen ossze tudod rakni a dolgot. Egyebkent sem az SQL sem a PHP nem nagy dolog, elegge gyorsan tanulhato (nekunk egyetemen egy hetveges hazi feladat volt valamit osszehozni PHP-ban es az Oracle DB-jevel, korabbi PHP tudas nelkul, es nem emlekszem, hogy barkinek problemat okozott volna).

A strange game. The only winning move is not to play. How about a nice game of chess?

Köszönöm szépen mindenkinek az építőjellegű hozzászólásokat, egyelőre ez nekem túl magas, sokat kell még olvassak ezekben a témakörökben.

Akkor hogy oldottad meg?

Egyebkent ha kicsit tobb infot adtal volna (pl. milyen rendszer van alatta, milyen frameworkot hasznal, stb.), akkor konnyebben tudnank segiteni. Mar egy ideje nincs up-to-date tudasom LAMP kornyezetben, de ez meg talan nekem is menne.

A strange game. The only winning move is not to play. How about a nice game of chess?