Rezultate 1 la 9 din 9

Subiect: MYSQL select din 2 tabele cand a doua tabela n-are date

Afișare hibrid

  1. #1
    Avatarul lui Popescu Marian
    Popescu Marian este deconectat Ambasador
    Reputatie:
    47
    Data înscrierii
    18th April 2007
    Locaţie
    Bucuresti
    Vârstă
    45
    Posturi
    983
    Putere Rep
    47


    Implicit MYSQL select din 2 tabele cand a doua tabela n-are date

    Salut,

    Am doua tabele:
    useri (id, nume, parola)
    poze(id, userid, poza)

    Cum trebuie sa arate query-ul de mysql pentru a putea returna atat userii cat si pozele acestora iar daca userul nu are poze sa returneze doar datele din tabela useri sau in loc de poza sa fie NULL sau ceva.

    Am incercat
    Cod PHP:
    SELECT useri.numeuseri.parolapoze.idpoze.poza FROM useripoza WHERE useri.id $id AND poze.userid useri.id 
    dar daca nu sunt poze pt acel user nu imi returneaza nici datele din tabela useri...
    Ultima modificare făcută de Popescu Marian; 17th February 2011 la 10:58.

  2. #2
    Avatarul lui Buta Paul
    Buta Paul este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    7th February 2008
    Locaţie
    Cluj Napoca
    Vârstă
    35
    Posturi
    371
    Putere Rep
    34


    Implicit

    Nu era mai simplu, cand ai facut formularul pentru crearea de user (presupun, ca, atunci cand se creeaza un user, este browse pentru poza), sa pui o poza cu numele "FARA POZA" sau alt nume, in cazul in care un user nu uploadeaza nimic? Pui acolo conditia si va uploada o poza. Asa, vei avea pt fiecare user o poza.

  3. #3
    Avatarul lui Popescu Marian
    Popescu Marian este deconectat Ambasador
    Reputatie:
    47
    Data înscrierii
    18th April 2007
    Locaţie
    Bucuresti
    Vârstă
    45
    Posturi
    983
    Putere Rep
    47


    Implicit

    Pai asa creez in tabela poze cate o inregistrare pt fiecare user nou chiar daca nu uploadeaza poza, crezi ca ar fi mai ok asa?

  4. #4
    Avatarul lui casperel
    casperel este deconectat Membru SeoPedia
    Reputatie:
    45
    Data înscrierii
    10th February 2007
    Locaţie
    Bucuresti
    Posturi
    838
    Putere Rep
    45


    Implicit

    @Marius: JOIN intre cele 2 tabele (si folosesti userid ca si camp de legatura)

  5. #5
    Avatarul lui Buta Paul
    Buta Paul este deconectat Membru SeoPedia
    Reputatie:
    34
    Data înscrierii
    7th February 2008
    Locaţie
    Cluj Napoca
    Vârstă
    35
    Posturi
    371
    Putere Rep
    34


    Implicit

    Eu asa am facut pentru un site de-al meu, care isi poate uploada avatarul propriu. Iar in cazul in care doreste sa-si uploadeze pe viitor, sau sa modifice avatarul, va face doar update in baza de date!

    Daca totusi nu doresti asa, e posibil sa faci ceva de genul!
    $queryPoze = mysql_query("SELECT * from poze WHERE userid = $id");
    if($queryPoze == 0){
    $select = "";
    }
    else{
    $select = ", poza WHERE useri.id = $id AND poze.userid = useri.id";
    }

    dupa la query tau pui
    SELECT useri.nume, useri.parola, poze.id, poze.poza FROM useri $select

    L-am facut pe moment, nu am testat, dar cred ca aceasta ar fi o idee!
    Ultima modificare făcută de Buta Paul; 17th February 2011 la 11:24.

  6. #6
    Avatarul lui Popescu Marian
    Popescu Marian este deconectat Ambasador
    Reputatie:
    47
    Data înscrierii
    18th April 2007
    Locaţie
    Bucuresti
    Vârstă
    45
    Posturi
    983
    Putere Rep
    47


    Implicit

    Casparel, ai putea sa detaliezi? please
    In ultima instanta o sa incerc cum zice Freek dar as prefera mai putin cod php.

    Am incercat:
    Cod PHP:
    SELECT useri.numeuseri.parolapoze.pozapoze.id
    FROM useri
    LEFT JOIN poze ON useri
    .id 
    dar imi returneaza toti userii si intradevar si datele din coloanele id si poza ale tabelei poze.
    Ultima modificare făcută de Popescu Marian; 17th February 2011 la 11:30.

  7. #7
    Avatarul lui casperel
    casperel este deconectat Membru SeoPedia
    Reputatie:
    45
    Data înscrierii
    10th February 2007
    Locaţie
    Bucuresti
    Posturi
    838
    Putere Rep
    45


    Implicit

    Si de asemenea.. poti pune o valoare default atunci cand nu are nicio poza folosind CASE. Iti dau un exemplu aleator:
    Cod PHP:
    // in cazul in care un articol nu are setata data.. atunci afiseaza "necunoscuta", altfel afiseaza data setata.
    SELECT (CASE WHEN date '' THEN 'necunoscuta' ELSE date END) as date FROM articole 

  8. #8
    Avatarul lui casperel
    casperel este deconectat Membru SeoPedia
    Reputatie:
    45
    Data înscrierii
    10th February 2007
    Locaţie
    Bucuresti
    Posturi
    838
    Putere Rep
    45


    Implicit

    ON useri.id = poze.userid WHERE useri.id = 2

  9. #9
    Avatarul lui Popescu Marian
    Popescu Marian este deconectat Ambasador
    Reputatie:
    47
    Data înscrierii
    18th April 2007
    Locaţie
    Bucuresti
    Vârstă
    45
    Posturi
    983
    Putere Rep
    47


    Implicit

    Citat Postat în original de casperel Vezi Post
    ON useri.id = poze.userid WHERE useri.id = 2
    Asta e, mersi mult :*

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Select din Mysql si display cu Ajax fara refresh
    De Popescu Marian în forumul Client side
    Răspunsuri: 10
    Ultimul Post: 20th January 2011, 16:06
  2. Răspunsuri: 17
    Ultimul Post: 19th December 2010, 08:54
  3. Transfer din Tabel CSV in baza de date MySQL
    De Iulian în forumul Server side
    Răspunsuri: 7
    Ultimul Post: 13th December 2009, 13:59
  4. php/mysql-id in baza de date,dar afisare text
    De evolution în forumul Server side
    Răspunsuri: 6
    Ultimul Post: 12th September 2009, 12:17
  5. Cand/Cum isi actualizeaza motoarele baza de date?
    De matryx în forumul Discutii generale privind optimizarea si motoarele de cautare
    Răspunsuri: 8
    Ultimul Post: 14th May 2005, 17:46

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •