Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
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 07/09/2011, 11h39   #1
Membre actif
 
Avatar de korospoukine
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 152
Points : 152
Envoyer un message via MSN à korospoukine
Par défaut Afficher résultat que d'une partie de ma requete

Bonjour,

Voici mon problème :
Je fais une requete qui va taper dans deux tables et me regroupe les données comme je le souhaite :
Code :
1
2
	$req1 = "SELECT ActiveOnBoards.Repartition, COUNT(DISTINCT  ActiveOnBoards.EnclosureName) AS Chassis, COUNT(*) AS Nombre  FROM ActiveOnBoards, Blades WHERE ActiveOnBoards.EnclosureName=Blades.Enclosure GROUP BY ActiveOnBoards.Repartition";
	$tablo1 = mssql_query($req1) or exit(mssql_error());
Le résultat donne :
VLAN2| 5 | 10
VLAN3| 8 | 25
VLAN5| 2 | 12

Comment faire pour n'afficher que ce que je souhaite :
Si VLAN3 alors j'affiche ceci :
Nombre d'emplacement Libres :
VLAN3 : (resultats d'un calcul entre colonne 2 et 3)

SI VLAN2 ou VLAN5 je ne fais rien.

Merci d'avance.
korospoukine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h44   #2
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
Bonjour,

Euh... Et si tu m'étais

WHERE ActiveOnBoards.Repartition="VLAN3"

Dans ta requête ? Sinon tu n'as cas faire un test à l'affichage des données mais on ne voie pas tout ton code donc

Cordialement,
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants

Mes tutoriels : http://alexandre-joly.developpez.com/
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 12h04   #3
Membre actif
 
Avatar de korospoukine
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 152
Points : 152
Envoyer un message via MSN à korospoukine
Cela aurait été simple, mais mon résultat me sort environ 50 lignes, mais je ne dois en afficher que 16.
Voici le code ma page d'affichage :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
session_start();
?>
<HTML>
<HEAD>
	<TITLE>Blade Inventory Display Page</TITLE>
	<style> 
	TABLE { 
	float : left; 
	margin-left : 5px; 
	} 
	</style> 
</HEAD>
 
<BODY bgcolor="#DDDDDD">
<?php
	include("connect.php");
	$req0 = "SELECT OnBoard1FirmwareVersion , COUNT(*) AS Nombre FROM Enclosures GROUP BY OnBoard1FirmwareVersion";
	$tablo0 = mssql_query($req0) or exit(mssql_error());
	$req1 = "SELECT ActiveOnBoards.Repartition, COUNT(DISTINCT  ActiveOnBoards.EnclosureName) AS Chassis, COUNT(*) AS Nombre  FROM ActiveOnBoards, Blades WHERE ActiveOnBoards.EnclosureName=Blades.Enclosure GROUP BY ActiveOnBoards.Repartition";
	$tablo1 = mssql_query($req1) or exit(mssql_error());
 
?>	
		<h1>Châssis OA</h1>
		<table border="0" width="33%">
			<tr>
			<td width="5%" class="menu"></td><td width="20%" class="menu">VersionOA</td><td width="8%" class="menu">Nombre</td>
			</tr>			
			<?php
				while ($recherche0 = mssql_fetch_array($tablo0))
					{			
					?>
					<tr>
					<td><label></label></td>
					<td><label><?php echo $recherche0['OnBoard1FirmwareVersion'];?></label></td>
					<td><label><?php echo $recherche0['Nombre'];?></label></td>
					</tr>
					<?
					}
			?>
		</table>
		<br clear="left">
 
		<h1>Emplacements de libre par environnement</h1>
		<table border="0" width="33%">
			<tr>
			<td width="5%" class="menu"></td><td width="20%" class="menu">Types de chassis (VLAN)</td><td width="13%" class="menu">Nombres libres</td>
			</tr>
Voici le résultat de ma requête :


VOici ce que je souhaite :
Types de châssis (VLAN) | Nombres de libre
VLAN N2 HP SAN (repartition=120)| calcul en fonction des colonnes 2 et 3
VLAN N3 HP SAN (repartition=220)| calcul en fonction des colonnes 2 et 3

Par contre je souhaite ne pas faire d'explusion dans ma requete car je risque de devoir me servir de ce résultats à un autre endroit.
korospoukine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 12h14   #4
Membre actif
 
Avatar de korospoukine
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 152
Points : 152
Envoyer un message via MSN à korospoukine
J'ai trouvé une solution :
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
25
<h1>Emplacements de libre par environnement</h1>
		<table border="0" width="33%">
			<tr>
			<td width="5%" class="menu"></td><td width="20%" class="menu">Types de chassis (VLAN)</td><td width="13%" class="menu">Nombres libres</td>
			</tr>			
			<?php
				while ($recherche1 = mssql_fetch_array($tablo1))
					{	
					$i=$recherche1['Chassis'];
					$j=$recherche1['Nombre'];
					$k=16*$i-$j;
					echo $k;
					if ($recherche1['Repartition']=="120")
						{
						?>
						<tr>
						<td><label></label></td>
						<td><label>VLAN N2 HP avec SAN</label></td>
						<td><label><?php echo $k;?></label></td>
						</tr>
						<?
						}
					}
			?>
		</table>
korospoukine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 12h15   #5
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
j'ai un peu de mal a saisir ce que tu veux exactement, en fait, tu veux simplement limité le nb de lignes à l'affichage (et pas dans la requête) ?
dans ce cas, tu incrément une variable à chaque tour de boucle, et quand tu en as afficher assez, tu sors de la boucle ...
j'ai bien compris ce que tu souhaites ?

EDIT

zut, trop tard ... tu voulais juste affiché les résultat où la valeur de "repartition" était égale à 120 en fait ...
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 13h03   #6
Membre actif
 
Avatar de korospoukine
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 152
Points : 152
Envoyer un message via MSN à korospoukine
Désolé de ne pas avoir été clair.
Je ne souhaite afficher que certaines lignes qui se trouvent n'importe ou dans le resultat de ma requete.

Ma solution fait pas très propre, mais bon déjà cela va fonctionner.
korospoukine 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 22h17.


 
 
 
 
Partenaires

Hébergement Web