30. januar 2008 - 17:16Der er
17 kommentarer og 1 løsning
Tjek i databasen om en række findes i den ene tabel, og hvis så:
Er ved at lave sådan at man kan stemme på profilbilleder på min hjemmeside..
Og så vil jeg lave sådan at hvis man har stemt på et billede, skal billedet ikke komme frem igen, så man kan stemme på det..
Så først skal den hente stien med mere til alle profilbilleder i den ene tabel i min database.. Men hvis der findes en række i en anden tabel, som indeholder samme sti på billedet, så skal den finde et billede hvor der ikke er.
Nogen der kan lave dette?
Har indtil videre en connection til at finde alle billederne i den ene tabel, som skal bruges, som ser sådan ud:
$sql = "SELECT * FROM galleri WHERE mig = '1' ORDER BY RAND() LIMIT 1"; $result = mysql_query($sql); while($r = mysql_fetch_array($result)){ }
Så mangler bare at den tjekker om den som den har fundet random i tabellen, og den har samme information som i en anden tabel.
Jeg har også lavet sådan at hvis man allerede har stemt på billedet, så kommer den frem og siger at man skal opdaterer siden for at finde et billede man ikke har stemt på.. Hvilket er ret steneren..
SELECT * FROM galleri WHERE mig = '1' AND sti NOT IN SELECT sti from x WHERE mig = '1' // Nu ved jeg ikke lige hvad din "anden tabel" hedder. ORDER BY RAND() LIMIT 1
Jo.. men hvorn tager jeg en WHERE på den indre select, hvor den skal tage samme STI som den fandt i 'galleri', og så skal den tage navn = '$brugernavn' også..
Hvilket vel er noget lign det her:
NOT IN (SELECT sti from hotornot WHERE sti = sti AND navn = '$brugernavn')
Her er den færdige string som jeg prøver at få til at virke:
$sql = "SELECT DISTINCT * FROM galleri WHERE mig = '1' AND sti NOT IN (SELECT * from hotornot WHERE navn = '$navn' AND billedenavn = sti AND navnpaabruger = bruger) ORDER BY RAND() LIMIT 1";
billedenavn i den indre celect, er det samme som stien på billedet i den anden.
navnpaabruger i den indre select skal også tjekke om bruger er = det samme som i den anden select.
$sql = "SELECT DISTINCT * FROM galleri WHERE mig = '1' AND sti NOT IN (SELECT * from hotornot WHERE navn = '$navn' AND hotornot.sti = galleri.sti AND horornot.bruger = galleri.bruger) ORDER BY RAND() LIMIT 1";
Det er dog utestet og jeg er ikke sikker på, at det er gyldig SQL :(
$sql = "SELECT * FROM galleri WHERE mig = '1' AND sti NOT IN (SELECT * FROM hotornot WHERE navn = '$navn' AND hotornot.billedenavn = galleri.sti AND hotornot.navnpaabruger = galleri.bruger) ORDER BY RAND() LIMIT 1";
Men det virker desværre ikke.. :/
navnpaabruger er det samme i 'hotornot', som 'bruger' er i galleri.
og det samme med billedenavn i 'hotornot', og sti i galleri.
$sql = "SELECT * FROM galleri WHERE mig = '1' AND sti NOT IN (SELECT * FROM hotornot WHERE hotornot.navn = '$navn' AND hotornot.billedenavn = galleri.sti AND hotornot.navnpaabruger = galleri.bruger) ORDER BY RAND() LIMIT 1";
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.