l' OR 0 che inserisco alla fine serve perchè quei dati possono cambiare, nel senso che possono essere molti o essercene solo uno... l'OR 0 mi consente di terminare la condizione where, è una regola sql che ho letto nella parte di php....
Per quanto riguarda l'ultima tua considerazoine credo di aver capito male, comunque:
scheda.id_atleta = TRO_LAU
TRO_LAU
è un valore trovato in un'array. in quest'array vengono inserite le chiavi che l'utente seleziona precedentemente in un'apposito form...
spero di spiegarmi meglio con il codice:
Codice PHP:
try {
// Load the JDBC driver
String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver
Class.forName(driverName);
// Create a connection to the database
String serverName = "";
String mydatabase = "";
String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
String username = "";
String password = "";
connection = DriverManager.getConnection(url, username, password);
String[] partita = new String[100];
String[] atleta = new String[100];
String verifica = null;
partita = request.getParameterValues("idPartita");
atleta = request.getParameterValues("idAtleta");
verifica = atleta[0];
String sql = "SELECT scheda.id_partita, scheda.id_atleta,"
+ " SUM(scheda.bat_dpos),"
+ " SUM(scheda.bat_pos),"
+ " SUM(scheda.bat_neg),"
+ " SUM(scheda.bat_dneg),"
+ " SUM(scheda.ric_dpos),"
+ " SUM(scheda.ric_neg),"
+ " SUM(scheda.ric_sbarra),"
+ " SUM(scheda.ric_dneg),"
+ " SUM(scheda.att_dpos),"
+ " SUM(scheda.att_pos),"
+ " SUM(scheda.att_neg),"
+ " SUM(scheda.att_muro),"
+ " SUM(scheda.att_dneg),"
+ " SUM(scheda.muro_dpos),"
+ " SUM(scheda.muro_neg),"
+ " SUM(scheda.muro_dneg),"
+ " SUM(scheda.err_pall),"
+ " scheda.giocato,"
+ " partita.*, atleta.*"
+ " FROM scheda INNER JOIN atleta ON scheda.id_atleta = atleta.id_atleta"
+ " INNER JOIN partita ON scheda.id_partita = partita.id_partita WHERE (";
String sqlPartita = "SELECT * FROM partita WHERE";
for(int i=0; i<partita.length; i++) {
if (!partita[i].equals("")) {
sql = sql + " scheda.id_partita=" + partita[i] + " OR";
sqlPartita = sqlPartita + " id_partita=" + partita[i] + " OR";
}
}
sql = sql + " 0)";
sql = sql + " AND (";
for(int i=0; i<atleta.length; i++) {
if (!atleta[i].equals("")) {
sql = sql + " scheda.id_atleta=\'" + atleta[i] + "\' OR";
}
}
sql = sql + " 0)";
sqlPartita = sqlPartita + " 0";
sql = sql + " GROUP BY scheda.id_atleta ORDER BY scheda.giocato DESC, atleta.ruolo";
sqlPartita = sqlPartita + " ORDER BY data";
//out.println(sql + "
");
//out.println(sqlPartita + "
");
Pero' la condizione IN non la conoscevo... mi informerò
Grazie!