Jsp: pb de boucle

Fermé
Big Flo - 17 sept. 2002 à 14:39
JoloKossovar Messages postés 111 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 5 septembre 2007 - 3 août 2007 à 17:54
Salut !

J'ai un pb en JSP et les bases de données.
Voila j'ouvre ma base de donnée et tout le toutime. Bref j'ai mon ResultSet nommé Sql.
Je voudrais faire en sorte que si ya des resultats alors on affiche un truc sinon on affiche rien.
J'ai donc :
Sql = "SELECT * FROM matable";
RS = stmt.executeQuery(Sql);
if (RS != null)
{ instruction1 }
else
{ instruction 2 }

Dans instruction 1 j'ai du code html. Le pb est que si ya pas de resultat, le code html contenu dans instruction 1 est tout de meme affiché mais moi je veux pas !
Donc si kk1 peux me dire quel est le pb, ca serait cool !

Merci !!

3 réponses

Re bonjour...
Je crois que tu as un petit problème avec la logique objet de java.

Le mieux c'est de chercher un exemple jdbc, c po sorcier et grosso merdo c en général la même logique ...par ex : http://www.commentcamarche.net/java/javajdbc.php3

Plus particulièrement ton resultset (pour faire vite ) est un objet qui même s'il ne contient pas de résultat de requete existe et est donc DIFFERENT de null....c pour ça que t'y rentre dans la boucle.
TESTE rs.next() plutot

a+
0
J'ai donc :
Sql = "SELECT * FROM matable";
RS = stmt.executeQuery(Sql);
if (RS != null)
{ instruction1 }
else
{ instruction 2 }

je croit pas que c une bonn solution d´utiliser le select * from ...
tu doit defenir dans ton result set les type des colone,
et le maping des type, le result set doit etre sous forme de vecteur ou d´une list, vecteur.hasnext...
ton sql doit toujours etre dans un try catch block.
apres fermer le callable statement et rendre la connection a la base de donnée
connection.close.
0
ansel jeanclaude
3 août 2007 à 17:31
Dans un jsp l'ecriture de lignes codes en java sont entourées de balises <%......%> c'est ce qu'on appelle un scriptlet Dans ce cas les instructions entre ces balises qui possédent un sens html sont éditées comme du texte , il faut séparér le code java du html en mettant aun bon endroit les balises <%...%>..... il semble qu'il faut faire :
<% SQL="Select........."
le execute
if resultat non null
{
%>
ici on ecrit du html
exemple: zone récupérée <br>
etc......
<%
}
elseif resultat null
{
%>
ici on rédrit du html
<b> il n'ya rien dans la table mysql </b><br>
<%
}
%>
Est ce que cela répond à ta question !!!!!
0
JoloKossovar Messages postés 111 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 5 septembre 2007 33
3 août 2007 à 17:54
Salut ^^
je te conseille d'utiliser le tag <c:choose><c:when>patate</c:when><c:when>Chouxfleur</c:when>....
</c:choose> plutot que d'utiliser plein de <c:if>
0