Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
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 06/06/2007, 09h43   #1
Membre à l'essai
 
Inscription : août 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 67
Points : 21
Points : 21
Par défaut Faire une liste d'élément qui ne sont pas dans la base

Bonjour,

voilà j'ai un petit pb pour le quel je ne sais pas du tout comment faire. Et s'il est surtout réalisable.


dans une table de société j'ai un champs numéro de dossier (type text pour avoir les 0 devant) qui est égal 0000 si la société n'existe plus, sinon c'est un entier (toujours sur 4 chiffres comme 0324 ou 1254 par ex)


Ce que je voudrais c'est avoir la liste des numéros qui ne sont pas utilisé entre 0000 et le plus grand trouvé dans la base.

Mais je n'ai aucune idée de comment faire un fonction ou une simple requete qui face cela.


Si quelqu'un peut m'aider.

Merci bien
bossLINDROS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 09h57   #2
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
Regarde : http://www.developpez.net/forums/sho...d.php?t=339294

Je pense que ça pourrait répondre à ta question à condition de modifier quelque peu le script !!!
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 11h49   #3
Membre à l'essai
 
Inscription : août 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 67
Points : 21
Points : 21
merci pour le lien mais comme j'ai un type text je ne peux pas utiliser cette méthode.



par contre je viens d'y arrivé en php donc je donne la solution php. Si cela est possible de faire la "même" dans une fonction plpgsql je suis preneur.

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
<?PHP
$reponse = pg_exec("Select val from blob
		    where val <> '0000'
		    order by val;");
 
$i = 1;
while ($donnees = pg_fetch_array($reponse) )
{
   IF ($i <1000)
   {				
      $val_test=str_pad($i,4,'0',STR_PAD_LEFT);
   }
   else
   {
      $val_test = (string)$i;
   }
   IF ($val_test != $donnees['val'])
   {
      while($val_test != $donnees['val'])
      {			
         echo "<OPTION value=".$val_test.">".$val_test."</OPTION>";
         $i = $i + 1;
         IF ($i <1000)
         {				
            $val_test=str_pad($i,4,'0',STR_PAD_LEFT);
          }
          else
          {
             $val_test = (string)$i;
          }
       }
 
      $i = $i + 1;
   }
   else
   {
      $i = $i + 1;
   }	
}
echo "</select>";
 
?>
bossLINDROS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h09   #4
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
Que tes champs soient du text, ça fonctionne quand même à condition de faire du casting (conversion de type).

Par exemple :
renvoi
budtucker 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 19h55.


 
 
 
 
Partenaires

Hébergement Web