aiuto per query sql e RAND() | SQL & MySQL

Topic: Pubblico - Composto da 16 Posts di 2 Utenti.

05 Dicembre, 2011 10:05 #1
rodolforizzo76
Utente

rodolforizzo76
Registrato: Dec, 2011
Posts: 47
Offline

Ciao, non so proprio a chi chiedere aiuto per modificare due query sul sito.
Le tabelle sono così composte:

 1mysql> SHOW COLUMNS FROM images;
 2+-------------------+--------------+------+-----+---------+----------------+
 3| Field             | Type         | Null | Key | Default | Extra          |
 4+-------------------+--------------+------+-----+---------+----------------+
 5| image_id          | int(11)      | NO   | PRI | NULL    | auto_increment |
 6| image_caption     | varchar(255) | NO   |     | NULL    |                |
 7| image_username    | varchar(255) | NO   |     | NULL    |                |
 8| image_date        | date         | NO   |     | NULL    |                |
 9| image_genere      | varchar(255) | NO   |     | NULL    |                |
10| image_link        | varchar(255) | NO   |     | NULL    |                |
11| image_thumb_link  | varchar(255) | NO   |     | NULL    |                |
12| image_description | varchar(255) | YES  |     | NULL    |                |
13| image_width       | varchar(255) | YES  |     | NULL    |                |
14| image_height      | varchar(255) | YES  |     | NULL    |                |
15+-------------------+--------------+------+-----+---------+----------------+
16
17mysql> SHOW COLUMNS FROM dl_user;
18+-----------+-----------------+------+-----+---------+----------------+
19| Field     | Type            | Null | Key | Default | Extra          |
20+-----------+-----------------+------+-----+---------+----------------+
21| id        | int(5) unsigned | NO   | PRI | NULL    | auto_increment |
22| username  | varchar(32)     | NO   |     |         |                |
23| nome      | varchar(64)     | NO   |     |         |                |
24| cognome   | varchar(64)     | NO   |     |         |                |
25| password  | varchar(32)     | NO   |     |         |                |
26| mail      | varchar(64)     | NO   |     |         |                |
27| actived   | smallint(6)     | NO   |     | 0       |                |
28| data      | varchar(64)     | NO   |     |         |                |
29| sito_web  | varchar(64)     | NO   |     |         |                |
30| auth      | varchar(32)     | NO   |     |         |                |
31| biografia | text            | YES  |     | NULL    |                |
32+-----------+-----------------+------+-----+---------+----------------+

La prima query:
SELECT image_thumb_link, image_genere FROM images GROUP BY image_genere ORDER BY RAND();

Si può osservarla in azione nella home del sito: http://www.painteronline.org
In questo caso vorrei riuscire a visualizzare un quadro diverso per i vari generi ogni volta che si aggiorna la pagina. Come è adesso, per ogni genere visualizza sempre la stessa immagine.

La seconda query:
SELECT image_thumb_link, nome, cognome, username FROM dl_user, images WHERE images.image_username = dl_user.username GROUP BY username ORDER BY id

Si può osservarla in azione a questa pagina: http://www.painteronline.org/pittori.php
Anche qui vorrei riuscire a visualizzare un quadro diverso per ogni pittore ogni volta che si aggiorna la pagina.

Non ho fretta, se qualcuno riesce a darmi una dritta quando ha tempo gli sono immensamente grato!
Saluti.

Rodolfo Rizzo.


Beh, eh... no, non esattamente. È... ah, è molto complicato come caso. Un mucchio di input e output. Una quantità di informazioni, e un mucchio di elementi da considerare. Ho una quantità di elementi da tenere presente. Fortunatamente io rispetto un regime di droghe piuttosto rigido per mantenere la mente, diciamo, flessibile...
-- The big Lebowski --

05 Dicembre, 2011 14:35 #2
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

Ciao,
a prima vista, per il primo caso mi sembra che le immagini siano già random per ogni genere... in tre aggiornamenti di pagina, ad esempio, la categoria paesaggio mi ha proposto tre immagini diverse.

Per la seconda query, al posto di ORDER BY id, hai per caso già provato a mettere ORDER BY RAND()? :)


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

05 Dicembre, 2011 14:49 #3
rodolforizzo76
Utente

rodolforizzo76
Registrato: Dec, 2011
Posts: 47
Offline

Per il primo caso adesso funziona (quasi) perchè ho modificato la
query da così:
SELECT image_thumb_link, image_genere FROM images GROUP BY image_genere ORDER BY RAND()

a così:
SELECT image_thumb_link, image_genere FROM images ORDER BY RAND() LIMIT 24

Dico quasi perchè adesso è vero che mi cambia il quadro ogni volta, ma mi ripropone piu volte i generi (tipo che compare lo stesso genere più volte) Praticamente se aggiungo GROUP BY image_genere alla query mi da errore.

Per quanto riguarda il secondo caso, facendo come dici mi cambia solo l'ordine dei pittori ma l'immagine resta sempre quella.

Non capisco perchè non mi funziona GROUP BY image_genere. Mi da:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY image_genere' at line 1


Beh, eh... no, non esattamente. È... ah, è molto complicato come caso. Un mucchio di input e output. Una quantità di informazioni, e un mucchio di elementi da considerare. Ho una quantità di elementi da tenere presente. Fortunatamente io rispetto un regime di droghe piuttosto rigido per mantenere la mente, diciamo, flessibile...
-- The big Lebowski --

05 Dicembre, 2011 15:01 #4
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

potresti postare un dump (struttura + dati) delle due tabelle? Così sarebbe più rapido trovare la soluzione.


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

05 Dicembre, 2011 15:12 #5
rodolforizzo76
Utente

rodolforizzo76
Registrato: Dec, 2011
Posts: 47
Offline

Cosa intendi con un dump (struttura + dati)
Scusa ma sono ignorante in materia.
Dovrei fare un backup della tabella images e mandartela?


Beh, eh... no, non esattamente. È... ah, è molto complicato come caso. Un mucchio di input e output. Una quantità di informazioni, e un mucchio di elementi da considerare. Ho una quantità di elementi da tenere presente. Fortunatamente io rispetto un regime di droghe piuttosto rigido per mantenere la mente, diciamo, flessibile...
-- The big Lebowski --

05 Dicembre, 2011 15:20 #6
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

esatto, tutte e due le tabelle :)


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

05 Dicembre, 2011 15:22 #7
rodolforizzo76
Utente

rodolforizzo76
Registrato: Dec, 2011
Posts: 47
Offline

ma nella tabella dl_user ci sono tutte le password??


Beh, eh... no, non esattamente. È... ah, è molto complicato come caso. Un mucchio di input e output. Una quantità di informazioni, e un mucchio di elementi da considerare. Ho una quantità di elementi da tenere presente. Fortunatamente io rispetto un regime di droghe piuttosto rigido per mantenere la mente, diciamo, flessibile...
-- The big Lebowski --

05 Dicembre, 2011 15:30 #8
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

ovviamente i dati sensibili li puoi omettere :) è giusto per fare prima


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

05 Dicembre, 2011 15:39 #9
rodolforizzo76
Utente

rodolforizzo76
Registrato: Dec, 2011
Posts: 47
Offline

Come si fa ad ometterli? il backup lo so fare ma non so come omettere i dati sensibili?? se riesci a spiegarmelo a grandi linee provo, cerco anche su google adesso.

Scusa l'ignoranza!


Beh, eh... no, non esattamente. È... ah, è molto complicato come caso. Un mucchio di input e output. Una quantità di informazioni, e un mucchio di elementi da considerare. Ho una quantità di elementi da tenere presente. Fortunatamente io rispetto un regime di droghe piuttosto rigido per mantenere la mente, diciamo, flessibile...
-- The big Lebowski --

05 Dicembre, 2011 16:01 #10
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

potresti semplicemente duplicare le due tabelle, eliminare le colonne che non puoi inviare e creare un backup di queste tabelle semplificate :)


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

Condividi su:

Loggati o Registrati per replicare