IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

ne pas afficher le résultat en entier [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    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 !

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    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 ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    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

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    On va supposer que ta colonne localisation contient, entre autres, la valeur 'Toulouse.jpg'.
    Longueur de la colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT LEFT(localisation, LENGTH(localisation) - 4)
    FROM ta_table
    => Résultat : 'Toulouse'

    C'était quand même pas bien compliqué ?

  5. #5
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT SUBSTRING(localisation, 0, LOCATE('.', localisation))

    EDIT: ben grillé^^

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    Merci à toi !
    Mais j'ai un problème...
    Avec cette requête, rien ne s'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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...)

  7. #7
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    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 ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    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 ?...

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    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.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    Effectivement, dans phpMyadmin, j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ERROR: Apostrophe non fermé @ 72
    STR: "
    SQL: SELECT LEFT (situation_carte, LENGTH(situation_carte) -4) FROM lieux";
    Apostrophe ? où ça ?

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    HS : CHAR_LENGTH plutôt que LENGTH qui renvoie le nombre d'octets et non (nécessairement, suivant le jeu) de caractères ...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 72
    Points : 88
    Points
    88
    Par défaut
    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

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    En mettant CHAR_LENGTH à la place de LENGTH : mêmes résultat : page blanche et erreur d'apostrophe ds phpmyadmin

  14. #14
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Si tu as vraiment soumis exactement cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    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 ?

  16. #16
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    On ne peut pas te le dire sans ça :
    code PHP de la partie où il y a cette requête jusqu'à la soumission de la requête au serveur

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    là, y'a tout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    ?>

  18. #18
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  19. #19
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Tu demande d'afficher ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row_Recordset1['situation_carte']
    Regarde dans phpMyAdmin le nom de la colonne résultat !

    Solution : Ajoute un alias à la colonne calculée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT LEFT (situation_carte, LENGTH(situation_carte) -4) AS situation_carte FROM lieux

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 223
    Points : 68
    Points
    68
    Par défaut
    Ah ben... bon... ... c'était un alias qu'il fallait... je retiens la leçon !
    Merci BEAUCOUP à toi, à boo64 et aux autres !!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2003] Ne pas afficher décimales des nombres entiers
    Par NikoBe dans le forum Excel
    Réponses: 25
    Dernier message: 23/10/2023, 11h18
  2. [Batch] Ne pas affiché le résultat d'un REG QUERY
    Par Mammy Potter dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 30/05/2012, 22h38
  3. ne pas afficher le résultat d'un echo
    Par kineton dans le forum Langage
    Réponses: 3
    Dernier message: 15/04/2011, 16h43
  4. Ne pas afficher le résultat de mes requêtes
    Par euskal75 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/05/2007, 22h14
  5. ne pas afficher le résultat si c'est 0
    Par zorba49 dans le forum Excel
    Réponses: 11
    Dernier message: 23/03/2007, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo