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

Langage PHP Discussion :

[Tableaux] empty ne fonctionne pas


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut [Tableaux] empty ne fonctionne pas
    Bonjour a tous
    j ai un de mes scripts qui ne daigne pas fonctionner lol
    je vous explique le fonctionnement extremement simple

    j ai une table contenant un ou plusieurs lien menant vers une video le nombre de liens depend du faite qu une video est decoupé en plusieurs parties ou pas , ces informations viennent d un formulaire accessible a tous.
    sur ma page ou j affiche ces liens je souhaite verifier si un deuxieme lien existe grace à ce code si il existe on l affiche sinon on affiche rien maleuresement ca ne semble pas fonctionner pourtant le champ est bien vide
    d apres vous qu est ce qui ne va pas

    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
     
    <?
    $retour = mysql_query ('SELECT * FROM upload WHERE download="'.$_GET['dl'].'"and valide="1" and fichier="'.$_GET['anime'].'" and numero="'.$_GET['numero'].'"and time="'.$_GET['date'].'"and pseudo="'.$_GET['pseudo'].'" ORDER bY numero   ');
     
    while ($donnees = mysql_fetch_array($retour) )
    {
    if (!empty($donnees['lien2']))
    {
    ?>
    <center>[ <a href="<? echo stripslashes($donnees['lien2']); ?>" class="download">partie 2</a> ] </center>
     
     <?
     
     }
     else
     {
     }
     ?>

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Par défaut
    Bonjour,

    peux-tu nous dire comment tu affectes une valeur à $donnees['lien2'] ?

  3. #3
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut


    Sinon je ne vois nulle part la fonction empty...

    isset retourne true si ta variable existe et même si elle est vide


    empty retournera true si ta variable existe et EST vide
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut
    merci
    en fait donnees['lien2']sort d'un des champ de ma table

    ps: desolé j ai pas trouvé la balise code la premiere fois

  5. #5
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Et avec empty ca fonctionne pas mieux ? (j'ai vu que tu as modifié ton code du 1er post...)

    Sinon essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($tavar) && !empty(trim($tavar)))
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  6. #6
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    voici un petit tableau que l'on m'a donné ici et qui m'a été très utile pour ces cas précis :

    http://fr.php.net/manual/fr/types.comparisons.php

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut
    en fait a la base c'est un empty que j utilise et nan ca ne fonctionne pas pourtant sur une autre page ca marche regardez

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <?
     
    $anime_resume=htmlentities(addslashes($_GET['anime']));
    $retoursyn = mysql_query ('SELECT * FROM anime WHERE anime="'.$anime_resume.'"and valide="1" ');
    $donneesyn = mysql_fetch_array($retoursyn) ;
    if(isset ($donneesyn['synopsis']))
    {
    if (!empty($donneesyn['synopsis']))
    {
     
     
     
     
     
    $texte = stripslashes(html_entity_decode($donneesyn['synopsis'])); // On enlève les slash qui se seraient ajoutés automatiquement
     // On rend inoffensives les balises HTML que le visiteur a pu rentrer
    $texte = nl2br($texte); // On crée des <br /> pour conserver les retours à la ligne
     
        // On fait passer notre texte à la moulinette des Regex
     
    $texte = preg_replace('!\[b\](.+)\[/b\]!isU', '<strong>$1</strong>', $texte);
    $texte = preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $texte);
    $texte = preg_replace('!\[u\](.+)\[/u\]!isU', ' <U>$1 </U>', $texte);
    $texte = preg_replace('!\[img\](.+)\[/img\]!isU', ' <img src="$1"> ', $texte);
     
    $texte = preg_replace('!\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]!isU', '<span style="color:$1">$2</span>', $texte);
    $texte = preg_replace('!\[url=(.+)\](.+)\[/url\]!isU', '<a href="$1"target="blank">$2</a>', $texte);
    $texte = preg_replace('!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!i', '<a href="MAILTO:$0">$0</a>', $texte);
     
     
    if (isset($_GET['resume']))
    {
    ?><br/>
    <h1 class="titre">Résume</h1>
     
    <br/><br/>
    <p>
    <?echo $texte;?><br/><br/>
    <?echo $donneesyn['pseudo'];?>
    <center>
    <img src="style/images/news_05.jpg">
    </center>
     
    </p>
    <?
     
    }
     
    ?>
     
    - <a class="big"href="index.php?page=download&download=<?echo $_GET['download'];?>&resume&anime=<?echo $_GET['anime'];?>">afficher résumé</a>
     
     
    <?
    }
    }
    ?>

    ce code fonctionne tres bien si le champ est vide il ne m affiche rien

  8. #8
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Question bête : N'y aurait il pas des signes cabalistiques dans ton $donnees['lien2'] (du genre accents, apostrophes etc etc)

    Si la réponse à la question est OUI alors petit coup d'oeil ICI

    Si tu es vraiment persuadé que ton champ est vide mais qu'il passe quand même le empty c'est qu'il ne doit pas être si vide que ça peut être il ya un espace qui traine et qui te fait penser qu'il est vide !

    un te donne quoi ? les 4 underscores sont ils bien accolés ?
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Salut,

    Pour quoi tu ne verifie pas directement dans ta requete si le contenu du synopsis est vide?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $retour = mysql_query ('SELECT * FROM upload WHERE download="'.$_GET['dl'].'"and valide="1" and 
    fichier="'.$_GET['anime'].'" and numero="'.$_GET['numero'].'"and time="'.$_GET['date'].'"
    and pseudo="'.$_GET['pseudo'].'" AND synopsis!="" ORDER bY numero')or die(mysql_error());;
    Sinon tu peux toujours essayer de mettre un die(mysql_error()) pour voir si ta requete s'exécute bien.

    Par ailleurs, si ta requete est ce que tu peux regarder ce que contient ta variable $donneesyn['synopsis'] en faisant un echo.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut
    eh bien si donnees['lien2'] est vide c'est a dire que le champ est vide il ne peut y avoir aucun signes en fait c'est le cas pour quazi toutes les videos ,sur 100 seul 2 possèdent plusieurs liens ,donc le empty verifie si le champ contient quelques choses et comme ce n'est pas le cas il ne devrait rien afficher selon ma condition mais php n'en fait qu a sa tete

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut
    Citation Envoyé par dinde
    Salut,

    Pour quoi tu ne verifie pas directement dans ta requete si le contenu du synopsis est vide?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $retour = mysql_query ('SELECT * FROM upload WHERE download="'.$_GET['dl'].'"and valide="1" and 
    fichier="'.$_GET['anime'].'" and numero="'.$_GET['numero'].'"and time="'.$_GET['date'].'"
    and pseudo="'.$_GET['pseudo'].'" AND synopsis!="" ORDER bY numero')or die(mysql_error());;
    Sinon tu peux toujours essayer de mettre un die(mysql_error()) pour voir si ta requete s'exécute bien.

    Par ailleurs, si ta requete est ce que tu peux regarder ce que contient ta variable $donneesyn['synopsis'] en faisant un echo.






    le deuxieme exemple que j ai mis c'est un exemple ou justement ca fonctionne c'est dans le premier code (premier message) ou ca ne fonctionne pas pourtant le code est exactement le meme

  12. #12
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    met tout le code de ta page stp
    enfin la d'ou tu tire ton $lien2

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Désolé, j'avais pas fait attention mais comme tes requetes sont similaires je te repose la question pourquoi tu ne teste pas si ton champs lien2 est vide directement dans ta requete il te suffit de rajouter

    Parce que je chipote peut etre un peu mais je ne vois pas l'intéret de le faire dans le code php alors qu'on peut déjà le faire sur la requete.

    Et puis comme les deux requetes sont différentes, si la deuxieme est fausse (j'entend qu'elle ramene une erreur sous phpmyadmin), ta variable ne pourra pas etre renseignée.
    (donc essaie de rajouter un mysql_error() et essayer de faire un echo de ta variable pour voir si pbm se situe au niveau du code ou de la BDD)

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut
    voila le code entier de ma page les donnees s affichent corectement la boucle fonctionne mais pas le empty

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
     
     
     
     
     
     
     
     
     
     
     
    <?
     
    include ('db.php');
     
    mysql_connect ($home, $login, $password);
    mysql_select_db ($base);
     
     
    if (isset ($_GET['id']) )
    {
    $id=$_GET['id'];
    mysql_query("INSERT INTO telecharge VALUES('', '".$id. "','".time() . " ') ");
     
     
    }
     
    if (isset ($_GET['anime']) and isset ($_GET['dl']))
    {
     
    $retour = mysql_query ('SELECT * FROM upload WHERE download="'.$_GET['dl'].'"and valide="1" and fichier="'.$_GET['anime'].'" and numero="'.$_GET['numero'].'"and time="'.$_GET['date'].'"and pseudo="'.$_GET['pseudo'].'" ORDER bY numero   ');
     
    }
     
     
     
    $anime1 = mysql_query('SELECT COUNT(*) AS nbre_episode1 FROM upload WHERE fichier="'.$_GET['anime'].'" and valide="1"and download="'.$_GET['dl'].'" ');
    $anime = mysql_fetch_array($anime1);
     
    $nbre_lien_anime=$anime['nbre_episode1'];
     
    if($nbre_lien_anime==0)
    {
    echo'<p>-Il n y a pour l\'instant aucun épisode de '.$_GET['anime'].' répertorié  </p>';
     
    }
    else
    {
    echo'<p>['.$nbre_lien_anime.' episode(s) de '.$_GET['anime'].']</p>' ;
     
    }
     
     
     
     
     
    while ($donnees = mysql_fetch_array($retour) )
     
    {
     
     
     
    ?>
     
     
    <p>
    <? echo stripslashes($donnees['fichier']); ?> <? echo stripslashes($donnees['video']); ?> <? echo stripslashes($donnees['numero']); ?><br/><br/>
    </p>
     
     
     <center>[ <a href="<? echo stripslashes($donnees['lien']); ?>" class="download">partie 1</a> ] </center>
     
     
     <?
     
    if (isset($donnees['lien2']))
    {
    ?>
    <center>[ <a href="<? echo stripslashes($donnees['lien2']); ?>" class="download">partie 2</a> ] </center>
     
     <?
     
     }
     else
     {
     }
     ?>
     
     
     
     
      <?
    if (!empty($donnees['lien3']))
    {
    ?>
    <center>[ <a href="<? echo stripslashes($donnees['lien3']); ?>" class="download">partie 3</a> ] </center>
     
     <?
     
     }
      else
     {
     }
     ?>
     
     
       <?
    if (!empty($donnees['lien4']))
    {
    ?>
    <center>[ <a href="<? echo stripslashes($donnees['lien4']); ?>" class="download">partie 4</a> ] </center>
     
     <?
     
     } else
     {
     }
     ?>
     
     
     
    <?
     
    }
    ?>

  15. #15
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Je sais pas comment tu te débrouilles mais un coup ya isset , un coup ya empty je pige pas trop ta logique de programmation...

    Enfin bref, as tu au moins testé avec la solution que je t'ai donnée ?
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  16. #16
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Es normal que tu ai un isset au lieu d'un empty dans ce bout de code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    if (isset($donnees['lien2']))
    {
    ?>
    <center>[ <a href="<? echo stripslashes($donnees['lien2']); ?>" class="download">partie 2</a> ] </center>
     
     <?
     
     }
     else
     {
     }

  17. #17
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Et peux tu nous dire si ta requete passe bien sous phpmyadmin ?

    Merci

  18. #18
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    deja tu commence une while nommé données et tu fermes tes balise tout le temps puis tu les reouvres ...

    Ouvre ta while prepare tes variables puis fais des echo tu y verras plus clair

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut
    Citation Envoyé par guitou12
    Je sais pas comment tu te débrouilles mais un coup ya isset , un coup ya empty je pige pas trop ta logique de programmation...

    Enfin bref, as tu au moins testé avec la solution que je t'ai donnée ?

    oui il ya un isset avec lien2 mais c est pasque je suis entrain de tester normalement c'est un empty et j ai pas testé ta technique car je suis sur que les champ sont vides en fait j ai été verifié sur ma base de données je suis sur que le probleme ne se trouve pas la ^^ (ca au moins j en suis sur )

  20. #20
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Juste une question toute bete, sur l'exemple que tu teste est qu'il est possible que tu aie un espace dans le contenu de lien2 ?(parce que si tu as un espace il va considéré le champs comme renseigné)

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

Discussions similaires

  1. [Tableaux] Glob() ne fonctionne pas
    Par francoisch dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2008, 10h05
  2. [Tableaux] remote_host ne fonctionne pas
    Par kynri dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2007, 11h45
  3. [Tableaux] is_dir() ne fonctionne pas
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 20/06/2007, 17h12
  4. Des tableaux qui ne fonctionnent pas ?
    Par kevinf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 18/12/2006, 20h22
  5. [Tableaux] $_ENV ne fonctionne pas ? ? ?
    Par Yann1974 dans le forum Langage
    Réponses: 12
    Dernier message: 17/07/2006, 10h17

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