Problème de champ à NULL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de champ à NULL

Re: Problème de champ à NULL

par Al PiGiNo » 06 mai 2011, 09:50

Bah merci à tous, je vais passer au trim(). :wink:

Re: Problème de champ à NULL

par xTG » 06 mai 2011, 07:52

Mouarf en effet trim()... Je ne citerai pas ce que j'avais fumé ou bu ce jour là pour ne pas y avoir pensé. :P

Re: Problème de champ à NULL

par Ryle » 05 mai 2011, 22:06

Tout pareil que popy, un trim() serait effectivement plus approprié :)
(surtout que je crois qu'il y a une ville qui s'appelle nulle en Italie ;))

Re: Problème de champ à NULL

par popy » 05 mai 2011, 17:25

trim ?

Re: Problème de champ à NULL

par Al PiGiNo » 05 mai 2011, 17:20

Je prend ta solution xTG, merci de votre aide en tout cas.

Re: Problème de champ à NULL

par xTG » 05 mai 2011, 13:00

Ah ouais fallait y penser. :p

Petit truc pour te simplifier la vie pour de futurs fichiers qui viendraient tout foutre en l'air si changement du nombre d'espaces :
if ( strtolower(substr($result['dif_denomi'],0,4)) == "null")

Re: Problème de champ à NULL

par Al PiGiNo » 05 mai 2011, 10:53

En fait, lorsque j'importe mon fichier .txt, les colonnes ont un nombre fixe de caractères, soit 32.
Merci à Ryle de m'avoir fait découvrir cette fonction.

La solution parait si bête ... :
if ($result['dif_denomi'] == "NULL                            ")
NULL (4 caractères) + 28 espaces !...

Re: Problème de champ à NULL

par Al PiGiNo » 05 mai 2011, 10:44

@olivierg : Oui, regarde mon premier message, testé sans succès

@Ryle :
- var_dump : Renvoie rien du tout
- strlen : Renvoie 32 à chaque fois pour des villes differentes

Re: Problème de champ à NULL

par olivierg » 05 mai 2011, 09:20

al_pagino : tu as testé ce que je t'ai mis ? ça devrait fonctionner.. (si c'est un champ NULL et non une chaine de caractères)

Re: Problème de champ à NULL

par Ryle » 04 mai 2011, 21:44

Et si tu fais un var_dump($result['dif_denomi']), et un strlen($result['dif_denomi']) histoire que l'on voit à quoi ressemble cette variable une fois récupérée par php ?

Re: Problème de champ à NULL

par Al PiGiNo » 04 mai 2011, 13:45

Le null n'est pas en italique et est écrit "NULL".

Or comme mentionné plus haut, ...
if ($result['dif_denomi'] == "NULL")
... ne fonctionne pas, il va directement dans le else.
J'ai essayer de passer par une variable tierce du genre ...
$var = $result['dif_denomi']
if ($var] == "NULL")
... mais sans succès également, je pensais que c'était tout simple et finalement :|

Re: Problème de champ à NULL

par xTG » 04 mai 2011, 13:39

Si dans PhpMyAdmin le NULL est en italique c'est un NULL.
S'il n'est pas en italique c'est que c'est une chaîne de caractère et dans ce cas il faut faire attention à la casse : null != NULL ;)

Re: Problème de champ à NULL

par olivierg » 04 mai 2011, 11:42

essaye avec 3 === et sans guillemets, ou avec isnull, comme ça :
if ($result['dif_denomi'] === NULL)
ou alors avec isnull comme ça :
if (isnull($result['dif_denomi']))
bon courage

Re: Problème de champ à NULL

par Al PiGiNo » 04 mai 2011, 09:52

En fait je n'ai pas à proprement dis fais un create table en SQL, je l'ai créé avec phpmyadmin colonne par colonne.
A la base, cette colonne est un varchar(100), null --> non, Defaut --> aucun.
Elle est mise à jour tous les jours avec un fichier .txt où il est écrit parfois NULL.

Et j'ai essayé == 'null' evidemment ;)
Vu que les NULL sont dans le fichier texte, j'ai evidemment pensé qu'il les prennait pour une chaine de caractères, mais bon même en essayant, cela ne fonctionne pas...
Voici les 5 premières lignes affiché grâce à SELECT dif_civilite, dif_nom, dif_prenom, dif_denomi FROM `diffuseur` WHERE `dif_denomi`='null'

dif_civilite dif_nom dif_prenom dif_denomi
MR DUPONT DUPONT NULL
MR DUPONT YANNICK NULL
MR DUPONT FREDERIC NULL
MR DUPONT PASCAL NULL
MR DUPONT NULL NULL


Voici mon php :
if (isset($_POST['rech_depot'])) {
$depot=$_POST['depot'];
$nil=$_POST['nil'];
$query='SELECT dif_nil, dif_civilite, dif_nom, dif_prenom, dif_adresse, dif_nim, dif_cp, dif_denomi, dif_designation, dif_deposi_nim
	FROM `diffuseur`
	WHERE dif_deposi_nim LIKE \'%'.$depot.'%\'
	AND dif_nil LIKE \''.$nil.'\'
	ORDER BY dif_denomi, dif_nom, dif_prenom';
$requete=mysql_query($query);
echo '<form method="post" action="#" name="select_nil" />';
echo '<select name="choix_nil">';
while ($result=mysql_fetch_assoc($requete)) {

if ($result['dif_denomi'] == "NULL") {
$var='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.$result['dif_nom'].' '.$result['dif_prenom'].' '.$result['dif_adresse'].' '.$result['dif_cp'].' ';
echo '<option value="'.$result['dif_nim'].'" label="'.$var.'" >'.$var.'</option>';
}
else {
$var=''.$result['dif_denomi'].' '.$result['dif_nom'].' '.$result['dif_prenom'].' '.$result['dif_adresse'].' '.$result['dif_cp'].' ';
echo '<option value="'.$result['dif_nim'].'" label="'.$var.'" >'.$var.'</option>';
}
}
echo '</select>';
echo '<input type="submit" name="valid_nil" value="Valider mon commerce" />';
echo '</form>';

}

Re: Problème de champ à NULL

par moogli » 03 mai 2011, 21:40

peut tu nous montrer le create table de la table dépôt et un dump de données (5 lignes devraient suffire).

suivant le champ de la table, ça peut être null, ou une chaine de caractère (a tu testé == 'null' ?).


@+