> Tous les forums > Forum des Webmasters
 Considérer un champs vide mysql non nullSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
t671
  Posté le 29/09/2011 @ 17:32 
Aller en bas de la page 
Astucien

Bonjour,

Dans ma base mysql, j'ai des champs défini en "Varchar" qui peuvent être vide.

Si je fait une requête dessus pour trouver la valeur minimum du champs ( ....MIN( RIGHT(varch, 4) ) AS txt....) j'ai une réponse vide, puisque le champs est vide et considéré comme NULL.

Comment faire pour que la valeur "vide" ne soit pas considérer comme une valeur minimum numérique ?

Merci



Modifié par t671 le 29/09/2011 17:34
Publicité
christele
 Posté le 01/10/2011 à 18:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Je partage ta qquestion,

c'est pour cela que tout mes champs sont "NOT NULL" avec default "" ou 0 selon la nature
du reste pourquoi ne pas faire cela !

Ainsi il me suffit de contrôler si $xx!="" etc ....

t671
 Posté le 01/10/2011 à 19:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

En fait, mon problème a évolué ...........

C'est à dire que je lis un enregistrement Arthur (il peut y avoir plusieurs enregistrements nommés Arthur) qui possède un champs "date".

1) Si tous les enregistrements Arthur ont un champs "date" existant, j'affiche son minimum (avec le nb total des champs "date" existant).

2) S'il existe un (ou plusieurs) champs "date" vide dans les enregistrements Arthur, j'en fait abstraction, et je veux afficher le champs minimum existant (avec le nb total des champs "date" vide + existant).

3) Si tous les champs "date" sont vides, j'affiche un résultat vide (avec le nb total des champs "date" vide).

Actuellement, j'arrive à faire ces résultat (1,2 ou 3) séparemment, mais je n'arrive pas à combiner les trois ensemble !


J'espère avoir été suffisamment compréhensible.

Voilà où j'en suis :

$lettre = $_GET['lettre'];

//requête de sélection avec date_naissance != " "

$sql = 'SELECT nom,COUNT(*) AS nb, MIN( RIGHT(date_naissance, 4) ) AS date FROM ville WHERE nom LIKE "'.mysql_real_escape_string($lettre).'%" AND date_naissance != " " GROUP BY nom ORDER BY nom ASC';

$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $nb = mysql_num_rows($req);

$sql2 = 'SELECT nom, date_naissance,COUNT(*) AS dnb FROM ville WHERE nom LIKE "'.mysql_real_escape_string($lettre).'%" AND date_naissance = " " GROUP BY nom';

$req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error());

$dnb = mysql_num_rows($req2);

if($nb==0) {echo'<p>Aucun résultat trouvé.</p>';}

else{

echo '<table>';

while($data = mysql_fetch_array($req))

{

echo '<tr bgcolor="#CCCCCC">';

echo '<td>'.$data['nom'].'</td>';

echo '<td align="center">'.$data['nb'].'</td>';

echo '<td>'.$data['date'].'</td>';

}

Et là, je ne sais pas comment faire pour ajouter les enregistrements vides aux enregistrements existant. Car pour l'instant, uniquement le nb enregistrement existant s'affiche ........

S'il y a des champs vide + existant, leur nombre sera = à ($nb+$dnb).

Mais comment et où introduire cette opération ds le script ? Faire un nouveau while imbriqué ?

t671
 Posté le 02/10/2011 à 09:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bon ! J'ai contourné le problème ................

Dans ma base, quand mon champs date de naissance est vide, je le remplace par 9999. Ce champs ne sera jamais minimum, et si il est seul à être trouvé, je le remplace par un vide à l'affichage ! Et ça fonctionne ..............

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
48,00 €SSD Crucial BX500 480 Go à 48 €
Valable jusqu'au 29 Juillet

Amazon propose actuellement le SSD Crucial BX500 480 Go à 48 € livré gratuitement alors qu'on le trouve ailleurs à plus de 60 €. Ce SSD offre des débits de 540 Mo/s en lecture et 500 Mo/s en écriture. Le SSD est accompagné du logiciel Acronis true image qui vous permettra de transférer tout le contenu de votre ancien disque dur sur le SSD. Il est garanti 3 ans. 


> Voir l'offre
35,95 €Compresseur portable autonome Xiaomi Mija à 35,95 €
Valable jusqu'au 30 Juillet

Amazon fait une promotion sur le compresseur portable autonome Xiaomi Mija qui passe à 35,95 € livré gratuitement. Ce compresseur à emporter facilement avec vous comporte un écran (où vous pourrez choisir la pression à atteindre en PSI ou BAR) une batterie de 2000 mA et vous permettra de gonfler vos jouets (41 pièces avec une charge), pneus de vélo, de trotinette, de moto (6 pneus avec une charge) et même de voiture (5 pneus avec une charge) facilement.

Le câble est accompagné d'un embout pour valve Schrader et un adapteur Presta et une aiguille sont fournis. Le compresseur se recharge via une prise Micro USB.


> Voir l'offre
499,99 €Vélo assistance électrique Xiaomi Mi Smart pliable à 499,99 €
Valable jusqu'au 28 Juillet

Fnac fait une promotion sur le vélo à assistance électrique Xiaomi Mi Smart pliable qui passe à 499,99 € au lieu de 799 €. Ce vélo pliable 16 pouces offre une autonomie de 45 km et une vitesse jusqu'à 25 km/h. 


> Voir l'offre

Sujets relatifs
tester un champs mysql
rajout données ds champs mysql
test champs base mysql
PHP/MySQL: count () plusieurs champs
Ne pas lister une ID mysql vide
MySQL - somme des valeurs d'un champs [->Résolu
champs de longueur indéfini dans mysql
Échec connection base mysql
Captvty 1.10.5.1 : dossier zip vide
une personne s'y connaissant en PHP et MySQL ??
Plus de sujets relatifs à Considérer un champs vide mysql non null
 > Tous les forums > Forum Forum des Webmasters