timestamp et serial

Petit nouveau ! | 9 Messages

16 avr. 2008, 15:24

Bonjour à tous.

J'aimerais savoir si quelqu'un peut me renseigner.

J'ai une base postgres avec une table EQUIPEMENT :
- id_equip : SERIAL
- nom_equip
- type
- adr_ip

une autre table IOS :
- id_ios : SERIAL
- version
- carac
- image

et une table EQUIPE:
- id_equip
- id_ios
- date_ios : TIMESTAMP

Le tout pour faire une sauvegarde des changements de versions d'un équipement en conservant la date.

Dans mon script, j'aimerais récupérer dans une table temporaire la dernière version d'un équipement qui est passé en paramètre mais je bloque. Si quelqu'un veut bien...

Merci d'avance

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 avr. 2008, 16:24

Il faut que tu fasses une requête sur la table EQUIPE, en mettant un WHERE sur ton id_equip passé en paramètre, que tu fasses un ORDER BY descendant sur la colonne qui contient la date et ajouter un LIMIT 1
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 9 Messages

17 avr. 2008, 09:35

Bonjour désolé de répondre avec du retard mais j'ai eu des soucis d'internet.

Merci pour ta remarque je vais de ce pas consulter la doc pour voir comment fonctionne le LIMIT 1.
Mais au cas ou quelqu'un aurait la syntaxe en tête je suis preneur.


************************************************************************************
Voila j'ai essayé et voici ma requête ( j'ai remplacé la table Equipe par Possede pour éviter les erreurs)

Code : Tout sélectionner

pgsql_query("SELECT date_ios,version,nom_equip FROM Possede NATURAL JOIN Ios NATURAL JOIN Equipement WHERE id_equip='$cur_equip' ORDER BY date_ios DESC LIMIT 1");
Ca marche plutot bien pour ce que j'ai a faire merci pour la suggestion.

Si quelqu'un voit quelque chose de plus performant.
Modifié en dernier par rafale38 le 17 avr. 2008, 10:19, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 avr. 2008, 10:19

Code : Tout sélectionner

SELECT ... FROM ... WHERE ... LIMIT nb_inf, nb_sup
Et si tu n'utilises qu'un chiffre 'nb', Mysql va prendre les 'nb' 1er résultats de la requête ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 9 Messages

17 avr. 2008, 10:22

Merci pour la précision :D je vais enfin pouvoir avancer !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 avr. 2008, 10:30

La requête me semble correcte. Je ne vois pas ce qu'on pourrait retirer :-k

Par contre, j'ai d'autre suggestions:
- Idente tes requêtes, ça te sera bénéfique, surtout quand tu devras te relire ;)
- évite de passer ta requête directement dans la fonction d'exécution (pgsql_query() pour toi) met passe par une variable ;)
- Il faut extraire les variables de tes chaines (le mieux étant de passer par sprintf() )

En partant de ça
pgsql_query("SELECT date_ios,version,nom_equip FROM Possede NATURAL JOIN Ios NATURAL JOIN Equipement
WHERE id_equip='$cur_equip'
ORDER BY date_ios DESC LIMIT 1");
J'écrirais
$str_requete = "SELECT 
					date_ios,
					version,
					nom_equip 
				FROM 
					Possede NATURAL JOIN Ios 
						NATURAL JOIN Equipement 
				WHERE 
					id_equip = '".$cur_equip."' 
				ORDER BY 
					date_ios DESC 
				LIMIT 1";

$result = pgsql_query($str_requete);
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 9 Messages

17 avr. 2008, 10:47

Je prend bonne note de ces conseils et te remercie encore de m'aider.
Cela faisait quelques jours que je galerais sur mon schéma et comme c'est mon premier
gros projet PHP-Postgres cela m'est très bénéfique.
:D :D :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 avr. 2008, 10:57

Mais de rien ;)

N'hésite pas à revenir demander conseil :D
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 9 Messages

17 avr. 2008, 11:05

Je ne sais pas si c'est le bon endroit pour poster cette question mais je voulais savoir si des personnes sont calées en SNMP car le but de mon projet de fin d'année est de créer une interface Web à partir d'une base Postgres et qui récupère des infos de surveillance du réseau à partir de scripts en PHP qui tourneront en Crontab.

Voila si vous voulez des précisions sur ce que j'ai commencé à faire et en quoi cela consiste exactement je suis toute ouïe :D.

Bon développement à tous 8-) !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 avr. 2008, 11:23

Dans ce cas là, je te conseille d'ouvrir un nouveau sujet dans le forum "Méthodologie" ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 9 Messages

17 avr. 2008, 11:37

C'est fait :)