Argosoft
08-06-2004, 14:07
:cry: niente da fare! quando l'sql si impunta diveta peggio del c++!! non ci si cava un ragno dal buco!
ma che ha di male questa stringaa????? :cry:
"SELECT * FROM downloads,users WHERE ((downloads.language = '".$lang."' OR downloads.language = '*') AND (downloads.type='".$downType."') AND (users.id_user = downloads.id_submitter)) ORDER BY downloads.id_download DESC"
lo scopo della stringa:
ci sono 2 tabelle, users e downloads, così composte:
tabella downloads:
id_download int(10) UNSIGNED auto_increment <-- chiave primaria
id_submitter int(10) UNSIGNED
language char(2) No
type varchar(10) No
title varchar(30) No
text blob BINARY Si
path varchar(150) No
snapPath varchar(150) Si
tabella users:
id_user int(10) UNSIGNED No auto_increment <-- chiave primaria
nick varchar(25) No
password varchar(20) No
email varchar(100) No
(si o no indicano se il campo può essere Null)
Gli users possono postare dei downloads, quindi per ogni download c'è un campo che fa riferimento all'utente che lo ha postato. Lo scopo era di fare una join tra queste due tabelle, in modo da avere un record da cui tirare fuori una tabellina carina del tipo:
---------------------------------------------------
TITOLO DOWNLOAD - by NOME UTENTE
DESCRIZIONE DOWNLOAD
LINK
---------------------------------------------------
A delle condizioni però... Nel sito ho diviso la sezione downloads in tre parti: Programmi, Immagini, Varie. Nel database questi tipi sono rappresentati da 3 stringhe, "apps","imms","vars", contenuti nel campo downType. Inoltre, il sito è multilingua :) , quindi i records devono essere della lingua selezionata, oppure della lingua '*', che indica un download che può essere visualizzato da chiunque. Tutte queste informazioni sono passate com metodo GET, per esempio:
http://www..../downloads.php?lang=it&skin=blue&downtype=apps
oppure
http://www..../downloads.php?lang=en&skin=blue&downtype=imms
Io dunque devo tirare su un record composto,
SELECT * FROM downloads,users WHERE (
data la lingua desiderata,
(downloads.language = '".$lang."' OR downloads.language = '*')
e dato il tipo desiserato
AND (downloads.type='".$downType."')
coordinato per le chiavi primarie
AND (users.id_user = downloads.id_submitter))
e voglio i risultati ordinati in modo decrescente per id_download
ORDER BY downloads.id_download DESC"
non è perfetta?? :cry: :cry: eppure, quando vado a fare mysql_num_rows() per poter visualizzare tutti i downloads, mi dà quel dannato errore!!!!!! Il database non è vuoto, quidi il problema è qui... help non riesco proprio a capire che cos'ha!!!
ciao!
ma che ha di male questa stringaa????? :cry:
"SELECT * FROM downloads,users WHERE ((downloads.language = '".$lang."' OR downloads.language = '*') AND (downloads.type='".$downType."') AND (users.id_user = downloads.id_submitter)) ORDER BY downloads.id_download DESC"
lo scopo della stringa:
ci sono 2 tabelle, users e downloads, così composte:
tabella downloads:
id_download int(10) UNSIGNED auto_increment <-- chiave primaria
id_submitter int(10) UNSIGNED
language char(2) No
type varchar(10) No
title varchar(30) No
text blob BINARY Si
path varchar(150) No
snapPath varchar(150) Si
tabella users:
id_user int(10) UNSIGNED No auto_increment <-- chiave primaria
nick varchar(25) No
password varchar(20) No
email varchar(100) No
(si o no indicano se il campo può essere Null)
Gli users possono postare dei downloads, quindi per ogni download c'è un campo che fa riferimento all'utente che lo ha postato. Lo scopo era di fare una join tra queste due tabelle, in modo da avere un record da cui tirare fuori una tabellina carina del tipo:
---------------------------------------------------
TITOLO DOWNLOAD - by NOME UTENTE
DESCRIZIONE DOWNLOAD
LINK
---------------------------------------------------
A delle condizioni però... Nel sito ho diviso la sezione downloads in tre parti: Programmi, Immagini, Varie. Nel database questi tipi sono rappresentati da 3 stringhe, "apps","imms","vars", contenuti nel campo downType. Inoltre, il sito è multilingua :) , quindi i records devono essere della lingua selezionata, oppure della lingua '*', che indica un download che può essere visualizzato da chiunque. Tutte queste informazioni sono passate com metodo GET, per esempio:
http://www..../downloads.php?lang=it&skin=blue&downtype=apps
oppure
http://www..../downloads.php?lang=en&skin=blue&downtype=imms
Io dunque devo tirare su un record composto,
SELECT * FROM downloads,users WHERE (
data la lingua desiderata,
(downloads.language = '".$lang."' OR downloads.language = '*')
e dato il tipo desiserato
AND (downloads.type='".$downType."')
coordinato per le chiavi primarie
AND (users.id_user = downloads.id_submitter))
e voglio i risultati ordinati in modo decrescente per id_download
ORDER BY downloads.id_download DESC"
non è perfetta?? :cry: :cry: eppure, quando vado a fare mysql_num_rows() per poter visualizzare tutti i downloads, mi dà quel dannato errore!!!!!! Il database non è vuoto, quidi il problema è qui... help non riesco proprio a capire che cos'ha!!!
ciao!