Verificare inregistrare in tabel MySQL ...

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

papaleon
Average Member
Mesaje: 87
Membru din: Dum Dec 27, 2015 11:26 pm

Verificare inregistrare in tabel MySQL ...

Mesajde papaleon » Dum Dec 04, 2016 3:53 pm

Nu reusesc sa-i dau de cap ...
Doresc ca la logarea unui client, sa verific daca el este deja inregistrat ...
Am facut codul :

Cod: Selectaţi tot


<?php
include_once("db_connect.php");
doDB();
$_POST['nume'] = "nume";
$_POST['prenume'] = "prenume";    
    $sql 
= "SELECT id, nume, prenume FROM clienti_2";
    $result = mysqli_query($conn, $sql);
    if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        if(($row["nume"] == $_POST['nume']) || ($row["prenume"] == $_POST['prenume'])) {
               echo" ". $row["id"]. "-Nume: " . $row["nume"]. " " . $row["prenume"]. "<br>";
        }
    }
}
mysqli_close($conn);
?>

Problema este ca la rulare, imi afiseaza ce gaseste cu "nume" chiar daca nu corespunde si la "prenume" si invers ...
eu doresc sa-mi afiseze numai ce corespunde la "nume" SI la "prenume" , nu ce gaseste doar cu "nume" sau doar cu "prenume", deci nu-mi respecta conditia || din cod ...
Stiu ca este ceva simplu, dar nu am reusit sa-i dau de cap, nu-mi dau seama cum tre sa formulez conditia sau ce alta structura sa folosesc ...



takedown
Average Member
Mesaje: 153
Membru din: Joi Feb 07, 2013 8:50 pm
Contact:

Re: Verificare inregistrare in tabel MySQL ...

Mesajde takedown » Lun Dec 05, 2016 12:20 am

Aici este vorba de SQL, de modul in care preiei datele din baza de date.Tu vrei sa preiei un set de rezultate in functie de una sau mai mult conditii, cum ai spus tu, unde si numele si prenumele sunt similare cu datele primite in $_POST.

Aceasta este o interogare simpla de a prelua un set de rezultate pentru anumite coloane, ceea ce stii deja.

Cod: Selectaţi tot

"SELECT id, nume, prenume FROM clienti_2";


Acum, daca vrei sa preiei acest set de rezultate doar daca anumite conditi se indeplinesc, trebuie sa mai adaugi si clauza WHERE, astfel:

Cod: Selectaţi tot

"SELECT id, nume, prenume FROM clienti_2 WHERE nume = 'numele' AND prenume = 'prenumele'";


Acum tu vrei prelua un set de rezultate unde (WHERE ) in coloana nume se gaseste o valoare identica cu 'numele' SI ( AND ) in coloana prenume se gaseste o valoare identica cu 'prenumele'. Poti avea cate conditii vrei tu, de asemenea, poti sa folosesc si OR, cu alte cuvinte, daca pentru una dintre coloane exista date similare cu ceea ce incerci tu sa cauti.

Mai departe, daca vrem sa fim mai expliciti, in combinatie cu WHERE, putem folosi si operatorul LIKE, acest operator oferindu-ne posibilitatea de a cauta date pe baza anumit model.

Cod: Selectaţi tot

"SELECT id, nume, prenume FROM clienti_2 WHERE nume LIKE 'numele%' AND prenume LIKE 'prenumele%'";


Dupa cum poti observa, am inlocuit operatorul egal ( = ) cu operatorul LIKE si la datele din SQL am adaugat simbolul %, acest simbolul transformand acele valori in modele pe baza carora se cauta date in tabelul clienti_2, este ca si cum as spune ca vreau acele date unde coloana nume are valori ce incep cu "numele" si de asemenea, unde coloana prenume are valori ce incep cu textul "prenumele".

Sper ca m-am facut inteles, nu sunt cele mai bune explicatii ale mele.Apropo, ai grija cu SQL Injection, cauta informatii despre aceasta vulnerabilitate.

papaleon
Average Member
Mesaje: 87
Membru din: Dum Dec 27, 2015 11:26 pm

Re: Verificare inregistrare in tabel MySQL ...

Mesajde papaleon » Lun Dec 05, 2016 11:39 am

OK, TKS mult takedown, este tocmai ce-mi scapa, eu foloseam conditionarea unde nu trebuia ...


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 80 vizitatori