Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 13/12/2010, 09h39   #1
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
Par défaut ne pas afficher le résultat en entier

Bonjour !

Désolée pour l'intitulé pas très clair, mais je ne sais pas comment dire.

J'ai un champ localisation qui contient des noms d'images qui se terminent tous par .jpg (lieu1.jpg, lieu2.jpg...)
Je cherche à afficher la liste des noms des images (et non pas les images elles-mêmes), mais sans .jpg
Que l'on lise : lieu1, lieu2, etc
C'est possible de faire ça ?
Merci d'avance !
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 09h55   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 977
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 977
Points : 18 219
Points : 18 219
Envoyer un message via MSN à CinePhil
Il faut jouer avec les fonctions de chaînes de caractères de MySQL.

Si tous tes fichiers se terminent par .jpg, c'est facile ! Tu prends les N caractères de gauche, avec N = longueur du nom complet - longueur de '.jpg' (4).

Sinon, si il n'y a toujours qu'un seul point dans le nom complet du fichier (celui avant 'jpg'), ce n'est guère plus compliqué. Tu prends les X caractères de gauche ou X est la position de '.' - 1.

Sinon il faut inverser les caractères et rechercher de la même manière la position du premier point, prendre les caractères cette fois de droite et ré-inverser la chaîne.

Tu peux aussi remplacer '.jpg' par une chaîne vide et récupérer la chaîne résultante.

Tu essaies tout seul avant qu'on te donne éventuellement la solution si tu n'y arrives pas ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h09   #3
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
Bonjour CinePhil, et merci de ta réponse !
Et je ne vais pas te raconter de bobards : je suis amateur ++ ! Je "travaille" avec DW et ai quelques toutes petites connaissances, mais pas du tout suffisantes pour comprendre ce que tu m'expliques ! Je me disais "pourvu que ce soit simple et que j'arrive à comprendre"
Si tu peux me filer la solution, ce serait gentil, sinon tant pis pour moi !

Au cas où : oui, tous les fichiers ont la même extension, à savoir .jpg
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h22   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 977
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 977
Points : 18 219
Points : 18 219
Envoyer un message via MSN à CinePhil
On va supposer que ta colonne localisation contient, entre autres, la valeur 'Toulouse.jpg'.
Longueur de la colonne :
Code :
1
2
SELECT LENGTH(localisation)
FROM ta_table
=> Résultat : 12

Je ne retiens que les 12 - 4 caractères de gauche de la colonne :
Code :
1
2
SELECT LEFT(localisation, LENGTH(localisation) - 4)
FROM ta_table
=> Résultat : 'Toulouse'

C'était quand même pas bien compliqué ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h24   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

ici tu as la liste des fonctions texte de MySQL. Dans ton cas de figure, si tu es sur de toujours avoir .jpg (et pas .jpeg) à la fin, tu peuxutiliser un substring par exemple :

Code sql :
1
2
 
SELECT SUBSTRING(localisation, 0, LENGTH(localisation) - 4)

Cela va te sélectionner tout ton champs localisation moins les 4 dernières lettres donc le.jpg. Sinon, si tu t'apercois que tu as aussi des .jpeg, il faudra scinder ta chaine en fonction du . (point) :

Code sql :
1
2
 
SELECT SUBSTRING(localisation, 0, LOCATE('.', localisation))

EDIT: ben grillé^^
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h50   #6
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
Merci à toi !
Mais j'ai un problème...
Avec cette requête, rien ne s'affiche :
Code :
$query_Recordset1 = "SELECT LEFT (situation_carte, LENGTH(situation_carte) -4) FROM lieux";
(je m'étais gouré sur le nom du champ, c'était pas localisation)...

J'ai vérifié sur une page vierge. Avec cette requête :
Code :
$query_Recordset1 = "SELECT situation_carte FROM lieux";
et avec la boucle, s'affichent bien les noms de toutes les images.
Mais avec la requête LEFT, page blanche...
D'où ça peut venir à ton avis ? (si tu as le temps de me répondre...)
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h55   #7
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Citation:
Envoyé par evevev Voir le message
Avec cette requête, rien ne s'affiche :
As tu un message d'erreur ?

as tu fais un mysql_error() afin de voir l'eventuelle erreur ?
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h00   #8
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
Bonjour Madfrix,
Et merci de ta solution, mais elle ne fonctionne pas non plus...

Non, pas de message d'erreur

Euh... je ne sais pas faire un mysql_error() ... ça s'écrit comment stp ?...
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h07   #9
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 977
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 977
Points : 18 219
Points : 18 219
Envoyer un message via MSN à CinePhil
Description de la table + jeu de données exemple + code PHP de la partie où il y a cette requête jusqu'à la soumission de la requête au serveur.

Si tu as phpMyAdmin, lance la requête directement dans un onglet SQL et regarde le résultat.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h12   #10
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
Effectivement, dans phpMyadmin, j'ai cette erreur :

Code :
1
2
3
ERROR: Apostrophe non fermé @ 72
STR: "
SQL: SELECT LEFT (situation_carte, LENGTH(situation_carte) -4) FROM lieux";
Apostrophe ? où ça ?
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h18   #11
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
HS : CHAR_LENGTH plutôt que LENGTH qui renvoie le nombre d'octets et non (nécessairement, suivant le jeu) de caractères ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h20   #12
Membre régulier
 
Laurent S.
Inscription : novembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Laurent S.
Âge : 25
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 71
Points : 77
Points : 77
Salut,

je viens de regarder ton probleme et personnellement je ne vois pas de soucis particulier avec la requete SQL de CinePhil.

Cependant étant donné que tu es débutant ++ comme tu dis, tu peux aussi choisir d'utiliser le php pour obtenir ce résultat :


$query_Recordset1 = "SELECT situation_carte FROM lieux";
...
...
while($row_Recordset1){
echo substr($ma_var;0;-4);
}

bonne continuation
larffas68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h27   #13
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
En mettant CHAR_LENGTH à la place de LENGTH : mêmes résultat : page blanche et erreur d'apostrophe ds phpmyadmin
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h33   #14
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 977
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 977
Points : 18 219
Points : 18 219
Envoyer un message via MSN à CinePhil
Si tu as vraiment soumis exactement cette requête :
Code :
1
2
SELECT LEFT (situation_carte, LENGTH(situation_carte) -4) 
FROM lieux"
Alors il y a effectivement un guillemet ou deux apostrophes en trop à la fin de la requête !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h42   #15
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
Ah ben évidemment...

Alors, sans les guillemets, phpmyadmin m'affiche correctement tous les noms des images, sans .jpg, exactement ce que je veux !
Alors pourquoi en ligne ça veut pas ?
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h48   #16
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 977
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 977
Points : 18 219
Points : 18 219
Envoyer un message via MSN à CinePhil
On ne peut pas te le dire sans ça :
Citation:
code PHP de la partie où il y a cette requête jusqu'à la soumission de la requête au serveur
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h54   #17
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
là, y'a tout :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
mysql_select_db($database_conncz, $conncz);
$query_Recordset1 = "SELECT LEFT (situation_carte, LENGTH(situation_carte) -4) FROM lieux";
$Recordset1 = mysql_query($query_Recordset1, $conncz) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
 
<body>
<?php do { ?>
  <?php echo $row_Recordset1['situation_carte']; ?>
  <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 12h02   #18
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
 
<body>
<?php 
mysql_select_db($database_conncz, $conncz);
$query_Recordset1 = "SELECT LEFT (situation_carte, LENGTH(situation_carte) -4) as nom FROM lieux";
$Recordset1 = mysql_query($query_Recordset1, $conncz) or die(mysql_error());
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
while ($row_Recordset1 = mysql_fetch_assoc($Recordset1))  { 
	echo $row_Recordset1['nom']; 
} ?>
</body>
</html>
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 12h04   #19
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 977
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 977
Points : 18 219
Points : 18 219
Envoyer un message via MSN à CinePhil
Tu demande d'afficher ceci :
Code :
$row_Recordset1['situation_carte']
Regarde dans phpMyAdmin le nom de la colonne résultat !

Solution : Ajoute un alias à la colonne calculée :
Code :
SELECT LEFT (situation_carte, LENGTH(situation_carte) -4) AS situation_carte FROM lieux
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 12h13   #20
Membre à l'essai
 
Inscription : septembre 2008
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 140
Points : 23
Points : 23
Ah ben... bon... ... c'était un alias qu'il fallait... je retiens la leçon !
Merci BEAUCOUP à toi, à boo64 et aux autres !!!
evevev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h38.


 
 
 
 
Partenaires

Hébergement Web