Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2007, 16h20   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 15
Points : 0
Points : 0
Par défaut afficher contenue dans tableau

bonjour,
voila une question simple mais qui me pause problème je récupère d'un formulaire html des données qu’une personne choisi ici le nom et le prénom pour ensuite afficher toutes les personnes qui ont le même nom que cela soit un homme ou une femme. Mais mon script n’affiche que la première entrée de ma table sous SQL


voici mon code html :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>
<head>
 
</head>
<body>
 
<form name="frm" method="post" action="2.asp">
Civilité :
<select name="civil">
<option value="*">Tous</option>
<option value="1">Monsieur</option>
<option value="2">Madame</option>
<option value="3">Mademoiselle</option>
</select><br>
Nom : <input type="text" name="nom"><br>
Prénom : <input type="text" name="prenom"><br>
Voulez-vous combiner avec ET 
<input type="radio" name="combine" value="AND" checked>
ou OU 
<input type="radio" name="combine" value="OR"><br>
<input type="submit" name="submit" value="Rechercher">
</form>
</body>
</html>
et voici le code asp :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<% 
Set objConnbis = Server.CreateObject("ADODB.Connection")
	objConnbis.ConnectionString =Session("dbconnection")
	objConnbis.Open
	Set warrantter = Server.CreateObject("ADODB.recordset")
	warrantter.CursorType = 3
	warrantter.CursorLocation = 3
	warrantter.LockType = 3
 
ope=" " & Request.Form("combine") & " "
strQuery="select * from agents WHERE 'AND'='" & Request.Form("combine") & "'" 
 
if Request.Form("civil")<>"*" then SQL=SQL & ope & "civil=" & Request.Form("civil") 
 
if Request.Form("nom")<>"" then SQL=SQL & ope & "nom LIKE '%" & Request.form("nom") & "%'" 
 
if Request.Form("prenom")<>"" then SQL=SQL & ope & "prenom LIKE '%" & Request.form("prenom") & "%'" 
 
 
Set warrantter = objConnbis.Execute (strQuery)
 
response.write (warrantter("civil")&" "&warrantter("nom")&" "&warrantter("prenom")&" "&warrantter("prix")) 
 
%>
merci d'avance
thecatz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2007, 12h54   #2
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!

Un petit tour dans les tutos devrait pouvoir te sortir d'affaire:http://florian.developpez.com/asp/?page=page_6.

Voir plus particulièrement les sections intitulées
- se déplacer dans un jeu d'enregistrement
- petit exemple
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 10h00   #3
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Comme c'est dimanche, je vais t'éviter de chercher dans les tutos.

En faisant ça :
Code :
Set warrantter = objConnbis.Execute (strQuery)
, tu as créé un recordset dans lequel tu as mis le résultat de ta requête. Ce résultat est une sorte de tableau. Donc, quand tu affiches le résultat, tu récupères le premier enregistrement. C'est ce que tu as là :
Code :
response.write (warrantter("civil")&" "&warrantter("nom")&" "&warrantter("prenom")&" "&warrantter("prix"))
A noter, si ta requête est vide, ta plage plante car il n'y a pas de données.

Donc dans ton cas, il faut faire une boucle sur le recordset pour récupérer tous les résultats. Une boucle jusqu'à ce qu'on atteigne la fin du recordset.
Ca donne ça :
Code :
1
2
3
4
5
 
while not warrantter.eof
  response.write "<br>" & (warrantter("civil")&" "&warrantter("nom")&" "&warrantter("prenom")&" "&warrantter("prix")) 
  warrantter.movenext
wend
Et là tu devrais voir tous tes résultats.

Voilà m'sieur. Si ça te convient, n'oublie pas de mettre le topic en résolu.
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 15h53   #4
Invité de passage
 
Inscription : juillet 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 15
Points : 0
Points : 0
merci pour tes infos, mais maintenant ca affiche tout ce qui se trouve dans la base et non pas suivant les critére choisi du formulaire.
thecatz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 22h52   #5
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
En effet, regarde ton code, la requête que tu exécutes ne tiens pas compte du filtre :

Code :
1
2
3
4
5
6
7
8
9
10
strQuery="select * from agents WHERE 'AND'='" & Request.Form("combine") & "'" 
 
if Request.Form("civil")<>"*" then SQL=SQL & ope & "civil=" & Request.Form("civil") 
 
if Request.Form("nom")<>"" then SQL=SQL & ope & "nom LIKE '%" & Request.form("nom") & "%'" 
 
if Request.Form("prenom")<>"" then SQL=SQL & ope & "prenom LIKE '%" & Request.form("prenom") & "%'" 
 
 
Set warrantter = objConnbis.Execute (strQuery)
Tu lances la requête strQuery alors que le filtre est appliqué sur SQL.
Il te manque un truc de ce genre à la fin :

Code :
strQuery = strQuery & SQL
Sinon, affiche ta requête avant de la lancer et regarde si elle est bonne. Et d'ailleurs, je ne comprends pas ce que tu veux faire là :

Code :
strQuery="select * from agents WHERE 'AND'='" & Request.Form("combine") & "'"
Je suppose que request("combine") correspond à du ET ou OU, mais je ne vois pourquoi tu fais ça dans la requête.
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 09h41   #6
Invité de passage
 
Inscription : juillet 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 15
Points : 0
Points : 0
en fait c'est pour dire que si la personne rentre le nom + un prémon que sa affiche le bon resultat mais il est vrai que le OU ne sert a rien
thecatz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2007, 00h16   #7
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Résolu?
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2007, 09h54   #8
Invité de passage
 
Inscription : juillet 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 15
Points : 0
Points : 0
lol non en faite les modifications ne font aps d'erreurs mais je ne recupere pas ce que l'utilisateur met dans le formulaire la page asp s'execute et affiche tout betement le contenu d'une table...
thecatz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2007, 21h21   #9
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Peux-tu nous passer le script de ta requete SQL (Response.Write strQuery)?
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h01.


 
 
 
 
Partenaires

Hébergement Web