Pagina 1 din 2 12 UltimulUltimul
Rezultate 1 la 10 din 12

Subiect: problema la un query MySQL

  1. #1
    Avatarul lui Cristi G
    Cristi G este deconectat Membru SeoPedia
    Reputatie:
    45
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    31
    Posturi
    1.664
    Putere Rep
    45


    Implicit problema la un query MySQL

    Am in baza de date niste imagini si vreau sa le afisez random pe prima pagina. Problema este ca vreau sa le afisez doar pe cele pe care nu le-am votat deja.
    queryul pe care il vreau eu ar arata cam asa :
    SELECT * FROM images WHERE validare() == 1

    E posibil asa ceva?
    Imi ocup timpul uneori cu pariuri sportive si fac si web development WordPress.

  2. #2
    Avatarul lui Chaos
    Chaos este deconectat Ambasador
    Reputatie:
    33
    Data înscrierii
    3rd April 2006
    Locaţie
    Cluj-Napoca
    Vârstă
    41
    Posturi
    389
    Putere Rep
    33


    Implicit

    validare() trebuie sa fie un flag .. nu o metoda..
    deci ceva de genul select * from images where is_validated = 1

  3. #3
    Avatarul lui Cristi G
    Cristi G este deconectat Membru SeoPedia
    Reputatie:
    45
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    31
    Posturi
    1.664
    Putere Rep
    45


    Implicit

    si is_validated=1 de unde il iau?
    Imi ocup timpul uneori cu pariuri sportive si fac si web development WordPress.

  4. #4
    Avatarul lui Chaos
    Chaos este deconectat Ambasador
    Reputatie:
    33
    Data înscrierii
    3rd April 2006
    Locaţie
    Cluj-Napoca
    Vârstă
    41
    Posturi
    389
    Putere Rep
    33


    Implicit

    pai.. in primul rand sorry... acum am vazut ca iti trebuie cele nevalidate.
    trebuie sa tii undeva un flag.. ceva.. prin care le validezi.. prin care stii care au fost votate.
    ma gandesc ca voturile le tii intr-o tabela separata relationata la imagini.
    pentru asta faci un join pe tabela respectiva si pui si iei inregistrarile care nu au voturi sin tabela de imagini.

  5. #5
    Avatarul lui Cristi G
    Cristi G este deconectat Membru SeoPedia
    Reputatie:
    45
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    31
    Posturi
    1.664
    Putere Rep
    45


    Implicit

    pai am un tabel unde tin nr voturilor si suma voturilor,si inca un tabel unde am ipul celor care au votat
    Imi ocup timpul uneori cu pariuri sportive si fac si web development WordPress.

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


    Implicit

    Presupun ca tabelul cu imaginile si cel cu nr voturilor sunt legate printr-o cheie ? Eventual posteaza structura ambelor tabele. Ca idee, trebuie sa faci un LEFT JOIN intre tabelul cu imaginile si tabelul cu nr voturilor si dai conditie: WHERE camp IS NULL

  7. #7
    Avatarul lui Cristi G
    Cristi G este deconectat Membru SeoPedia
    Reputatie:
    45
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    31
    Posturi
    1.664
    Putere Rep
    45


    Implicit

    images :
    id - filename - type - description - category - enabled - title - author
    vote
    voteNr - voteValue - imgId
    ipvote
    id - imgId - ip - date

    astea sunt....
    Imi ocup timpul uneori cu pariuri sportive si fac si web development WordPress.

  8. #8
    Avatarul lui Dever
    Dever este deconectat Ambasador
    Reputatie:
    33
    Data înscrierii
    28th July 2006
    Locaţie
    UK
    Vârstă
    42
    Posturi
    378
    Putere Rep
    33


    Implicit

    Cel mai usor este sa creezi o coloana noua in images (gen is_voted sau is_validated ... ceea ce unii ar numi un "flag" este de fapt o coloana de tip boolean [true sau false, 0 sau 1] ) cu valoarea implicita 0.
    Cand poza este votata sau validata, campul devine 1.
    SQL-ul apoi este simplu .... WHERE is_validated = 1.

    Daca din anumite motive nu poti sa modifici baza de date sau codul, poti folosi ceva de genul:
    Cod:
    SELECT A.*
    FROM images A
    RIGHT JOIN vote B ON B.imgId=A.id
    SQL-ul de mai sus va alege din A numai acele imagini care au fost votate datorita lui RIGHT JOIN (asta daca am inteles eu structura bazei de date).
    Bafta
    Dever's Blog - Atentie! dau cu parerea.

  9. #9
    Avatarul lui Cristi G
    Cristi G este deconectat Membru SeoPedia
    Reputatie:
    45
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    31
    Posturi
    1.664
    Putere Rep
    45


    Implicit

    pai stii care e problema?ca poate s-o voteze gigel si se face 1... si daca vine ionel o sa zica ca a votat-o si el.. daca vine fratele lui ionel pe site coloana aia tot 1 o sa fie..pentru toti o sa fie 1......eu vreau doar pt respectivul sa fie cumva 1....
    Imi ocup timpul uneori cu pariuri sportive si fac si web development WordPress.

  10. #10
    Avatarul lui Dever
    Dever este deconectat Ambasador
    Reputatie:
    33
    Data înscrierii
    28th July 2006
    Locaţie
    UK
    Vârstă
    42
    Posturi
    378
    Putere Rep
    33


    Implicit

    am inteles, dar din cate vad nu stochezi decat IP-ul, nu ai useri (userId) ... IP-ul nu este suficient cat sa ii arati lui Ionel numai imaginile pe care nu le-a votat pentru ca unii pot avea IP dinamic.

    oricum, daca din X motive nu ai useri ci doar IP-uri poti sa faci ceva de genul:
    Cod:
    SELECT *
    FROM images
    WHERE id NOT IN (SELECT imgId FROM ipvote WHERE ip=' IP-UL-UTILIZATORULUI ')
    ORDER BY RAND()
    LIMIT 20
    explicatie:
    selecteaza 20 de imagini aleatoare din toate imaginile care nu au fost votate de IP-UL-UTILIZATORULUI.

    P.S. SQL netestat, ar trebui sa mearga dar depinde cum stochezi IP-ul.
    P.S. 2 nu este un SQL prea rapid sau optim, RAND() trebuie evitat pe cat posibil.
    Dever's Blog - Atentie! dau cu parerea.

Pagina 1 din 2 12 UltimulUltimul

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. Dublare rezultate query
    De mamulea în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 30th April 2010, 13:56
  2. Problema mysql query in php
    De ghostdlr în forumul Server side
    Răspunsuri: 8
    Ultimul Post: 26th November 2009, 20:31
  3. SUN a cumparat MySQL
    De Netul în forumul Server side
    Răspunsuri: 3
    Ultimul Post: 11th April 2008, 11:04
  4. mysql query
    De phane în forumul Server side
    Răspunsuri: 9
    Ultimul Post: 25th April 2006, 12:35
  5. C#.net Sqlserver & Php Mysql
    De jubu în forumul Locuri de munca
    Răspunsuri: 5
    Ultimul Post: 7th March 2006, 09:27

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
  •