Comparaison variable-champ mysql
Fermé
t671
Messages postés
1460
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
2 décembre 2024
-
29 déc. 2009 à 21:23
le père - 31 déc. 2009 à 08:18
le père - 31 déc. 2009 à 08:18
A voir également:
- Comparaison variable-champ mysql
- Mysql community server - Télécharger - Bases de données
- Comparaison million milliard - Accueil - Technologies
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
3 réponses
Bonjour
Bonjour
Je peux me tromper, mais j'ai l'impression que tu crois que la variable $nom est créée par ta requête.
C'est faux.
L'appel à ta requête (mysql_query) te rend une ressource, mais dans ton programme tu n'affectes cette ressource à aucune variable et donc le résultat de la requête est perdu.
Tu aurais dû écrire
$resultat =mysql_query($sql) or die('Erreur SQL !'.$req_fich.mysql_error());
ensuite, tu extrais une ligne du résultat (à supposer qu'il y en ait) avec mysql_fetch_array() ce qui te donne un tableau associatif dont les éléments ont pour clés les noms des champs
$ligne=mysql_fetch_array($resultat);
enfin, tu accèdes au champ que tu veux
$nom=$ligne['nom']; (ou $machin=$ligne['nom'], le nom de la variable n'est pas du tout obligé d'être celui du champ)
D'autre part, pour mettre '02' à la fin du nom de fichier, il ne faut pas écrire $ligne02 (ce qui fait référence à la variable $ligne02 qui n'existe pas) mais il faut concaténer la chaîne '02' au bout de ta variable avec un point :
$fichier = $fichier .'02'; ou plus simplement
$fichier.='02';
Bonjour
Je peux me tromper, mais j'ai l'impression que tu crois que la variable $nom est créée par ta requête.
C'est faux.
L'appel à ta requête (mysql_query) te rend une ressource, mais dans ton programme tu n'affectes cette ressource à aucune variable et donc le résultat de la requête est perdu.
Tu aurais dû écrire
$resultat =mysql_query($sql) or die('Erreur SQL !'.$req_fich.mysql_error());
ensuite, tu extrais une ligne du résultat (à supposer qu'il y en ait) avec mysql_fetch_array() ce qui te donne un tableau associatif dont les éléments ont pour clés les noms des champs
$ligne=mysql_fetch_array($resultat);
enfin, tu accèdes au champ que tu veux
$nom=$ligne['nom']; (ou $machin=$ligne['nom'], le nom de la variable n'est pas du tout obligé d'être celui du champ)
D'autre part, pour mettre '02' à la fin du nom de fichier, il ne faut pas écrire $ligne02 (ce qui fait référence à la variable $ligne02 qui n'existe pas) mais il faut concaténer la chaîne '02' au bout de ta variable avec un point :
$fichier = $fichier .'02'; ou plus simplement
$fichier.='02';
Salut
pour qu'on puisse t'aider, tu devras préalablement dire d'où vient le contenu de $nom et corriger ton affectation erronée $fichier == $fichier02; qui en fait est un test (==)
:D
pour qu'on puisse t'aider, tu devras préalablement dire d'où vient le contenu de $nom et corriger ton affectation erronée $fichier == $fichier02; qui en fait est un test (==)
:D
Bonjour fiu et merci de répondre,
$nom provient de la base mysql. C'est, en fait, le nom d'une image.
$fichier est le nom d'une nouvelle image que je veux inscrire dans la base. Mais avant, je veux vérifier si le nom existe déjà. Si il existe, je rajoute (par exemple) 02 à la fin de ce nom pour le différencier du premier ($fichier = $fichier02) !
$nom provient de la base mysql. C'est, en fait, le nom d'une image.
$fichier est le nom d'une nouvelle image que je veux inscrire dans la base. Mais avant, je veux vérifier si le nom existe déjà. Si il existe, je rajoute (par exemple) 02 à la fin de ce nom pour le différencier du premier ($fichier = $fichier02) !
Tu devrais vraiment commencer par apprendre les bases avant de venir demander aux autres de réfléchir à tes problèmes
fiu t'a dit plus haut que la comparaison c'était == et toi tu fais comme test if ($fichier = $nom) avec un seul =
À quoi à servi la réponse de fiu ?
Il faut distinguer la comparaison de l'affectation, les deux opérations n'ont rien à voir
D'ailleurs j'ai l'impression que le principe même du programme n'est pas logique. Tu veux éviter que deux images aient le même nom, mais tu fais ton where sur idph = '$id', je ne sais pas ce que sont ce champ et cette variable, j'aurais fait le Where sur le nom à ta place. De plus tu ne testes que le premier fichier rencontré parmi les résultats, il y en a peut-être plusieurs qui ont le même idph ?
Quand tu chargeras 3 images 'toto', la première s'appellera 'toto', la seconde 'toto02' et la troisième ???
fiu t'a dit plus haut que la comparaison c'était == et toi tu fais comme test if ($fichier = $nom) avec un seul =
À quoi à servi la réponse de fiu ?
Il faut distinguer la comparaison de l'affectation, les deux opérations n'ont rien à voir
D'ailleurs j'ai l'impression que le principe même du programme n'est pas logique. Tu veux éviter que deux images aient le même nom, mais tu fais ton where sur idph = '$id', je ne sais pas ce que sont ce champ et cette variable, j'aurais fait le Where sur le nom à ta place. De plus tu ne testes que le premier fichier rencontré parmi les résultats, il y en a peut-être plusieurs qui ont le même idph ?
Quand tu chargeras 3 images 'toto', la première s'appellera 'toto', la seconde 'toto02' et la troisième ???
30 déc. 2009 à 19:33
Ben j'y arrive pô .... :((
Voilà ce que j'ai écrit :
Et si j'upload deux fichiers avec le même nom, il ne m'en upload qu'un, et il m'inscrit les deux dans la base avec le même nom ....