Curs Php-mysql

Utilizare WHERE si operatori pentru a cauta valori specifice

Pentru a cauta valori specifice, pentru a extrage doar acele inregistrari care respecta anumite criterii, se adauga o clauza WHERE in interogarea SELECT.
Clauza WHERE este folosita pentru a filtra inregistrarile. Se adauga dupa numele tabelului.
  - Sintaxa:
SELECL nume_coloana/e FROM nume_tabel WHERE conditie
"conditie" - poate fi una sau mai multe expresii conditionale care specifica criteriul de selectare. Aceste expresii conditionale pot folosi operatori de comparatie, aritmetici si logici.

Tabelul urmator prezinta operatorii cei mai des folositi cu WHERE in instructiunile MySQL:
OperatorSemnificatieExemplu
= Egal WHERE `id`=3
< Mai mic decat WHERE `id`<3
> Mai mare decat WHERE `id`>3
<= Mai mic sau egal cu WHERE `id`<=3
>= Mai mare sau egal cu WHERE `id`>=3
!= (also <>) Nu este egal cu WHERE `id`!=3
IS NOT NULL Are valoare WHERE `id` IS NOT NULL
IS NULL Nu are valoare WHERE `email` IS NULL
BETWEEN min AND max Intr-un interval specific (min si max) WHERE `id` BETWEEN 2 AND 4
NOT BETWEEN min AND max Nu este in intervalul (min si max) WHERE `id` NOT BETWEEN 2 AND 4
IN(val1, val2, val3) Se gaseste in lista de valori WHERE `id` IN(1, 3, 4)
OR Unde una din conditii este adevarata WHERE `id`>3 OR `name`='MarPlo'
AND Unde amandoua conditii sunt adevarate WHERE `id`>3 AND `name`='MarPlo'

  - Exemplu (selecteaza toate randurile din tabelul "users" care au "name=MarPlo" si afiseaza "id" si "email" din ele):
<?php
// conectare la baza de date "tests"
$conn = new mysqli('localhost', 'root', '', 'tests');

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

$name = 'Marplo';            // seteaza numele intr-o variabila

// Interogare sql SELECT 
$sql = "SELECT `id`, `email` FROM `users` WHERE `name`='$name'"; 

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

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

$conn->close();
?>
- Dupa cum observati, nu e necesar sa selectati coloana la care aplicati conditia WHERE. Coloanele specificate dupa SELECT dicteaza ce coloane sa returneze, iar coloanele adaugate dupa WHERE determina ce randuri vor fi returnate.
- Nota, in interogarea $sql este folosita variabila ($name) care contine numele, aceasta variabila este adaugata intre ghilimele simple in interogare pentru ca MySQL sa preia valoarea ei ca tip sir (string).
Exemplul de mai sus va afisa:
id: 2 - email: user@domain.net

• Clauza WHERE poate fi folosita si cu optiunile ORDER BY si LIMIT pentru a ordona si limita datele selectate.
                Exemplu:       $sql = "SELECT `name`, `pass` FROM `users` WHERE `id`>2 ORDER BY `name` LIMIT 2";

• In instructiunile SQL se pot adauga si expresii cu calcule matematice, folosind caracterele adunare (+), scadere (-), inmultire (*), impartire (/), si procent (%).
                Exemplu:       $sql = "SELECT `name`, `pass` FROM `users` WHERE `id`=($x + $y)";

LIKE, NOT LIKE

LIKE si NOT LIKE sunt termeni folositi pentru identificare valori de tip sir, in combinatie cu urmatoarele caractere: Acesti termeni sunt folositi cu clauza WHERE, iar cautarea este case-insensitive (fara diferenta intre litere mari si mici).

Exemple de interogari cu LIKE /NOT LIKE

<?php
// ...

#sql = "SELECT * FROM `nume_tabel` WHERE `name` LIKE 'mar%'";

// ...
?>
- Aceasta clauza WHERE se potriveste cu MarPlo, marius, Mars, si asa mai departe, dar nu Omar.

<?php
// ...

#sql = "SELECT * FROM `nume_tabel` WHERE `name` NOT LIKE '%mar'";

// ...
?>
- Aceasta clauza WHERE se potriveste cu Mar, Omar, Romar, si asa mai departe, dar nu cu Mars. ('%mar%' se potriveste cu Mars, Marius, Romars, etc.).

<?php
// ...

#sql = "SELECT * FROM `nume_tabel` WHERE `name` NOT LIKE 'mar%'";

// ...
?>
- Aceasta interogare va returna toate randurile ale caror valoare "name" nu incepe cu Mar.

<?php
// ...

#sql = "SELECT * FROM `nume_tabel` WHERE `name` LIKE 'mar_'";

// ...
?>
- Aceasta interogare va returna toate randurile ale caror valoare "name" incepe cu Mar si are patru caractere (Mars, Mara, mar8, etc.).

Interogarile cu termeni LIKE sunt in general mai lente deoarece nu pot profita de indexi.
Pentru a cauta un simbol procent (%) sau o sublinie (_) in text, le precedati cu backslash, in acest mod ( \%   sau   \_ ).
Sublinia poate fi folosita in combinatie cu ea insasi; (exemplu,   LIKE '_ _'   va cauta orice combinatie de doua litere).
Cuvantul cheie LIKE trebuie sa fie intotdeauna urmat de un sir, chiar daca termenul cautat este limitat la numere.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag adauga rand nou in paragraf?
<b> <br> <p>
Prima linie ...<br>
Alta linie...
Ce proprietate CSS seteaza spatiu dintre litere?
text-size word-spacing letter-spacing
#id {
  letter-spacing: 2px;
}
Ce functie obtine accesul la un element HTML cu un anumit ID?
getElementById() getElementsByTagName() createElement()
var elm = document.getElementById("theID");
var content = elm.innerHTML;
alert(content);
Clic pe instructiunea "echo" utilizata corect.
echo "CoursesWeb.net" echo "CoursesWeb.net"; echo ""CoursesWeb.net";
echo "Adresa URL: http://CoursesWeb.net";
Care din urmatoarele expresii cu "paint" (a picta) se foloseste pentru forma Negativa?
will paint not paint have painted
She does not paint that landscape.
- Ea nu picteaza acel peisaj.
Care din urmatoarele expresii cu "cantar" (a canta) se foloseste pentru propozitie Negativa?
ir a cantar cantaba no cantar
Ella no canta esa canciĆ³n.
- Ea nu canta acel cantec.
PHP MySQL - WHERE si LIKE

Last accessed pages

  1. Coduri pt culori (66250)
  2. Numerale, Numere in limba engleza - Numerals (50982)
  3. Download carti electronice si programe pentru Limba Engleza (42366)
  4. Viitor perfect si Viitorul perfect continuu - Future perfect and Continuous (20722)
  5. Trecut perfect si Trecutul perfect continuu - Past perfect and Continuous (56579)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1189)
  2. Curs HTML gratuit Tutoriale HTML5 (933)
  3. Coduri pt culori (678)
  4. Creare si editare pagini HTML (545)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (497)
Chat
Discuta sau lasa un mesaj pt. ceilalti utilizatori
Full screenInchide