Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906

    [JAVA] Cicli e query a MySQL

    Salu
    dunque ho questo problema:
    In java faccio una select da db MYSQL per tirare fuori i differenti id_risorsa, ed uso un banale while, all'interno dello stesso voglio implementare per il suddetto id_risorsa 52 query, il problema che non me lo lascia fare
    codice a seguire

    codice:
    ResultSet rs_risorse=sql.executeQuery("SELECT consuntivo.id_risorsa, risorse.nome_risorsa FROM consuntivo LEFT JOIN risorse on risorse.id_risorsa=consuntivo.id_risorsa GROUP BY id_risorsa");
    
    		while(rs_risorse.next()) {
    		
    		int id_risorsa=rs_risorse.getInt("id_risorsa");
    		nome_risorsa=rs_risorse.getString("nome_risorsa");
    		tabella=tabella+"<th>"+nome_risorsa+"</th>";
    		countrows++;
    			for(i=1;i<53;i++)	{
    				//query_consuntivo="SELECT * FROM consuntivo WHERE id_commessa='1' AND id_risorsa="+id_risorsa+" AND settimana_consuntivo="+i;
    				//out.println(query_consuntivo+"
    ");
    				ResultSet rs_consuntivo=sql.executeQuery("SELECT * FROM consuntivo WHERE id_commessa=1 AND id_risorsa="+id_risorsa+" AND settimana_consuntivo="+i);
    
    				giorni_consuntivo=rs_consuntivo.getInt("giorni_consuntivo");
    				riga_tabella=riga_tabella+"<td>"+giorni_consuntivo+"</td>";
    			}
    
    		}

  2. #2
    Che significa che non te lo lascia fare?? Ti da errore?
    Cmq quando usi una select con la condizione where nome=valore,
    ti conviene scrivere where nome='valore' con gli apici singoli , in questo modo se valore e' composto da spazi , viene tutto associato a nome , altrimenti rischi che venga interpretato come istruzioni successive.

    Ciauz
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  3. #3
    Ah un'altra cosa , dopo che ottieni un ResultSet , per poterci lavorare sopra , devi dare un next().
    Nel primo caso hai fatto
    while(rs_risorse.next()) e quindi per quel result set puoi tranquillamente ottenere i valori che ti interessano ,mentre per quello nel for , non hai fatto
    rs_consuntivo.next() .
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  4. #4
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906
    Ok ma mi da questo errore:
    org.apache.jasper.JasperException: Before start of result set

  5. #5
    Quell'errore e' dovuto a quello che ti ho detto .
    Usi un resultSet senza aver chiamato il metodo next();

    ResultSet rs=st.executeQuery(...);
    rs.getString(1);

    mentre il modo corretto è :

    ResultSet rs=st.executeQuery(...);
    rs.next();
    rs.getString(1);

    Devi portare il puntatore sulla prima posizione del ResultSet


    Ciauz
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.