Cursuri online, WebDesign, html, css, php, mysql, linux | Invata-Online.ro
IntroducereScrierea scripturilor PHP elementareTipuri de siruri si variabileVariabile si operatori PHPUtilizare formulare HTML cu PHP, $ GET si $ POSTVariabile de mediu si eroriConstante si tipuri de variabileInstructiuni conditionale if() elseInstructiuni conditionale switchInstructiuni repetitive for() si while()Utilizare matrice ArrayUtilizare Array (matrice) (2)Creare tabel HTML din ArrayUtilizarea functiilorVariabile si referinte in functiiData si Timpul in PHPLucrul cu siruri (1)Lucrul cu siruri (2)Expresii regulate, regexUtilizarea variabilelor cookieLucrul cu fisiere (1)Lucrul cu fisiere (2)Lucrul cu fisiere (3)Utilizarea cataloagelor (Directoare)Utilizarea de sesiuni PHPOptiuni pentru utilizarea caracterelor specialeNotiuni fundamentale despre bazele de date si SQL (1)Notiuni fundamentale despre bazele de date si SQL (2)Notiuni fundamentale despre bazele de date si SQL (3)PHP MySQL Introducere si Tipuri de DatePHP MySQL utilizare MySQLiPHP MySQL INSERT INTOPHP MySQL SELECT, ORDER BYSelect in doua tabele MySQLMySQL INNER JOIN, LEFT JOIN, RIGHT JOINPHP MySQL WHERE si LIKEPHP MySQL UPDATEPHP MySQL DELETEPHP PDO Introducere si Conectari la Baze de DatePHP PDO exec (INSERT, UPDATE, DELETE) MySQLPHP PDO Select, fetchPHP PDO prepare si executePHP PDO setAttribute si beginTransactionPHP Functii Anonime ClosuresTrimitere date la o adresa de e mailTrimitere e mail cu tag uri si atasamentCreare imagini cu PHPCreare PDF cu PHPCreare PDF cu PHP (2)Utilizare FTP cu PHPPHP OOP Clase si Obiecte, Metoda constructorPHP OOP metode Accesor si DestructorOOP Constante, Proprietati si Metode StaticePHP OOP Clase extinse si MostenireMetode magice get, set, call, toStringOOP Clase abstract si interfaceFunctii cu Parametri object si arrayInlantuire mai multe metode in PHP OOPPHP getElementById si getElementsByTagNameLucru cu atribute HTML in PHPDocumente XMLLucru cu XML DOMLucru cu XML SAXPHP XML SimpleXMLUtilizarea bazelor de date folosind PHPUtilizarea bazelor de date folosind PHP (2)Lucrul cu baze de date MySQL, seturi de rezultateFunctii pentru ArrayFunctii PHP matematiceFunctii pentru lucru cu functiiFunctii pentru siruri (strings)Functii pentru fisiere si directoareMySQL Alias si functiiFunctii utile pentru lucrul cu imaginiFunctii PHP clase si obiecte

PHP MySQL - SELECT, ORDER BY

Cand baza de date are cateva inregistrari in ea, puteti prelua informatia stocata, folosind comanda SELECT.
O interogare SELECT returneaza randuri selectate de la unul sau mai multe tabele.

  - Sintaxa:
SELECT nume_coloana/e FROM nume_tabel
- "nume_coloana/e" - este numele coloanei sau coloanelor care vor fi selectate.

Pentru a selecta mai multe coloane, adaugatile separate prin virgula:
                SELECT coloana1, coloana2, coloana3 FROM nume_tabel

Pentru a selecta toate coloanele, punti un asterisc (*):
                SELECT * FROM nume_tabel

Ca sa fie trimisa comanda SQL la baza de date MySQL si pentru a prelua datele selectate, se foloseste metoda query() a obiectului mysqli.
Cand este folosita cu interogari SELECT, aceasta metoda returneaza un obiect care contine randurile de date, sau False in caz de eroare.
Pentru a parcurge datele returnate si sa obtineti cate un rand din ele, puteti folosi metoda fetch_assoc.
Metoda fetch_assoc() returneaza un array asociativ ce contine randurile preluate, cheile din array reprezinta numele coloanelor.
Cu o bucla while() puteti prelua informatiile din fiecare rand stocat in acel array.
Pentru a afla numarul de randuri returnat de o interogare SELECT, se foloseste proprietatea num_rows, aplicata la obiectul rezultat.

  - Urmatorul exemplu selecteza si afiseaza datele stocate in coloanele "id", "name" si"pass" din tabelul "users".
<?php
// conecteaza la baza de date "tests" 
$conn = new mysqli('localhost', 'root', 'pass', 'tests');

// verifica conexiunea
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// interogare sql SELECT 
$sql = "SELECT `id`, `name`, `pass` FROM `users`"; 

// executa interogarea si retine datele returnate
$result = $conn->query($sql);

// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
  // afiseaza datele din fiecare rand din $result
  while($row = $result->fetch_assoc()) {
    echo '<br /> id: '. $row['id']. ' - name: '. $row['name']. ' - pass: '. $row['pass'];
  }
}
else {
  echo '0 rezultate';
}

$conn->close();
?>
- Acest exemplu stocheaza datele (obiectul rezultat) returnate de metoda query() in variabila $result , foloseste proprietatea "num_rows" sa verifice daca $result contine cel putin un rand. Apoi, cu bucla while() trece prin toate inregistrarie din obiecul rezultat, folosind metoda "fetch_assoc()" pentru a retine datele din fiecare rand intr-un Array in variabila $row.
Fiecare apelare a fetch_assoc() returneaza urmatorul rand in setul de rezultate, pana cand nu mai sunt, si returneaza False.
Pentru a accesa valorile din fiecare rand, se foloseste variabila PHP $row si cheia cu numele coloanei ($row['id'], ...).
Codul de mai sus va afisa:
id: 1 - name: Marius - pass: faith
id: 2 - name: www.discant.ro - pass: peace
id: 3 - name: I_AM - pass: love
id: 4 - name: Ion - pass: love_light

Asterisc (*) poate fi folosit pentru a selecta toate coloanele: "SELECT * FROM nume_tabel", dar este mai bine sa specificati doar coloanele care vreti sa fie selectate, deoarece procesul de selectare poate fi mai rapid.

Optiunea LIMIT

Cu optiunea LIMIT puteti sa determinati numarul de inregistrari pe care MySQL le va returna:
  - Sintaxa:
SELECT nume_coloana/e FROM nume_tabel LIMIT skip_nr, ret_nr
"skip_nr" este optional, ii spune bazei de date cate randuri sa sara din rezultate.
"ret_nr" seteaza numarul maxim de inregistrari ce vor fi returnate.
  - Exemplu:
<?php
// conecteaza la baza de date "tests"
$conn = new mysqli('localhost', 'root', 'pass', 'tests');

// verifica conexiunea
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// interogare sql SELECT 
$sql = "SELECT `id`, `name`, `pass` FROM `users` LIMIT 2"; 

// executa interogarea si retine datele returnate
$result = $conn->query($sql);

// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
  // afiseaza datele din fiecare rand din $result
  while($row = $result->fetch_assoc()) {
    echo '<br /> id: '. $row['id']. ' - name: '. $row['name']. ' - pass: '. $row['pass'];
  }
}
else {
  echo '0 rezultate';
}

$conn->close();
?>
Optiunea "LIMIT 2" spune MySQL sa returneze primele 2 randuri din rezultat.
Acest exemplu va afisa:
id: 1 - name: Marius - pass: faith
id: 2 - name: www.discant.ro - pass: peace

ORDER BY

ORDER BY specifica ordinea de sortare a resultatelor.
  - Sintaxa:
SELECT nume_coloana/e FROM nume_tabel ORDER BY nume_col ASC|DESC
"nume_col" poate fi o singura coloana, o lista de coloane separate prin virgula, sau o expresie ca RAND(), pentru a obtine o ordine aleatorie.
Cand se ordoneaza dupa mai mult de o coloana, a doua coloana e folosita in sortare doar daca valorile din prima coloana sunt egale.
Ordinea de sortare standard este ascendenta (ASC) (a–z, 0–9), iar optiunea ASC poate fi omisa. DESC (descrescator) inverseaza ordinea.
  - Exemplu:
<?php
// conecteaza la baza de date "tests" 
$conn = new mysqli('localhost', 'root', 'pass', 'tests');

// verifica conexiunea
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// interogarea sql SELECT 
$sql = "SELECT `id`, `name`, `pass` FROM `users` ORDER BY `name`"; 

// executa interogarea si retine rezultatul
$result = $conn->query($sql);

// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
  // afiseaza datele din fiecare rand din $result
  while($row = $result->fetch_assoc()) {
    echo '<br /> id: '. $row['id']. ' - name: '. $row['name']. ' - pass: '. $row['pass'];
  }
}
else {
  echo '0 results';
}

$conn->close();
?>
- Acest cod selecteaza toate datele stocate in tabelul "users" , si sorteaza rezultatul in ordine alfabetica dupa coloana "name".
Exemplul de mai sus va afisa:
id: 3 - name: I_AM - pass: love
id: 1 - name: Marius - pass: faith
id: 2 - name: www.discant.ro - pass: peace
id: 4 - name: Ion - pass: love_light

• Puteti folosi ORDER BY cu optiunea LIMIT.
                Exemplu:       "SELECT `id`, `name`, `pass` FROM `users` ORDER BY `name` LIMIT 2"

• Daca vreti sa ignore randurile duplicate (care au aceleasi valori), se foloseste optiunea DISTINCT:
               
SELECT DISTINCT nume_coloana/e FROM nume_tabel

- Se pot de asemenea selecta coloane din tabele diferite, in aceeasi interogare SQL, vedeti tutorialul Select in doua tabele MySQL.


Video indisponibil sau nu aveti acces la acest video!

Webdesign by Discant Solutions