[resolu] simuler un resultset vide

simuler un resultset vide [resolu] - PHP - Programmation

Marsh Posté le 28-05-2010 à 14:04:38    

Bonjour tout le monde,
 
La recherche sur mon site se fait en utilisant un petit programme que j'ai écrit en Java et qui est executé par Tomcat, le résultat est sous forme de numéros, et par la suite, avec une requête je vais chercher les détails de chaque numéro pour retourner le tout sous forme de resultset.
 
Le problème c'est quand le servlet Tomcat ne trouve rien, je ne peux rien mettre dans la requête, comment pourrais-je renvoyer un résultat vide ?
 
Merci d'avance,


Message édité par Nethacker le 28-05-2010 à 16:23:18

---------------
God is one, not 2 nor 3!
Reply

Marsh Posté le 28-05-2010 à 14:04:38   

Reply

Marsh Posté le 28-05-2010 à 14:07:57    

et qu'est ce que ta question fout en PHP ?


---------------
Blablaté par Harko
Reply

Marsh Posté le 28-05-2010 à 15:23:43    

Son site est probablement en php et c'est sa fonction recherche qui appelle une servlet.
 
Question : comment tu fais passer les résultats trouvés de la servlet à ton  site?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-05-2010 à 16:15:03    

via fopen ou file_get_contents, j'ai des résultats sous forme de "ids", après avec une suite de "WHERE id = OR id = " j'ai tous les détails sur mes "objets" .
 
Le problème se pose quand il n'y a pas de "ids" trouvées, la requête ne sert plus à rien, ah si, je pourrais peut être executer une requête WHERE id = -1 ... oui c'est bon j'ai trouvé la réponse, j'étais juste un peu déconcentré .
 
Je vous remercie vous deux pour votre temps =)

Reply

Marsh Posté le 28-05-2010 à 16:36:57    

ahah laule, tu veux dire que quand ya pas d'erreur, comme résultat tu te retrouve avec la requete SQL ?  
ta servlet est foireuse là.
 
Tu connais le if/else ?  
je dis ça hein [:petrus75]


---------------
Blablaté par Harko
Reply

Marsh Posté le 28-05-2010 à 17:17:26    

pas sûr d'avoir compris ce que vous voulez dire.
 
Sinon voici le résultat de la servlet, (nombreTrouvé:resultat1,resultat2) limit et offset sont données en paramètres à la servlet.

Code :
  1. debug:230:1082900,1097133,1097132,1082899,1082897,1082896,1081567,1081561,1081560,1058319,1058318,1058317


 
La requête SQL :
debug:SELECT * FROM maTable WHERE lid=1082900 OR lid=1097133 OR lid=1097132 OR lid=1082899 OR lid=1082897 OR lid=1082896 OR lid=1081567 OR lid=1081561 OR lid=1081560 OR lid=1058319 OR lid=1058318 OR lid=1058317 ORDER BY date DESC
 
Quand la servlet ne trouve rien, elle renvoie "0:", du coup il faut retourner un resultset qui soit vide, parceque tout le processus là je l'ai dans une fonction, je n'ai quand même pas mis l'appel à la servlet sur ma page de recherche. et avec une requête bidon j'arrive à avoir un résultat vide.

Reply

Marsh Posté le 29-05-2010 à 10:21:58    

en sql, tu connais pas IN plutôt que de faire pleins de OR :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 29-05-2010 à 19:24:15    

Non non, je ne connaissais pas, serait-elle plus performante que OR ?

Reply

Marsh Posté le 02-06-2010 à 10:25:01    

normalement oui (et surtout, la requête est plus concise et lisible) mais si l'optimiseur va peut-être transformer tous tes OR en un seul IN, mais j'en suis pas sûr du tout...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed