Les conditions PHP if, elseif, else

Résolu
zippeur Messages postés 210 Statut Membre -  
zippeur Messages postés 210 Statut Membre -
Bonjour,
voila je voudrai afficher le lien comme suite
(http://site/index_Fr.php?pg=pages&id=2) si le lien est défini
sinon on affiche
(http://site/index.php) si le lien n'est pas défini

Voici le code :
--------------------
include('db.php');
doDB();
 
// Lancer : Construire haut niveau
$top_sql = "SELECT * FROM menu_top_level /* WHERE top_level_visible = 'Yes' */ ORDER BY 
  top_level_order ASC";                                              // Créer une requête de base de données
$top_res = mysqli_query($mysqli, $top_sql) or die(mysqli_error($mysqli)); // Vérifier la connexion et d'exécuter la requête
if ($top_res = mysqli_query($mysqli, $top_sql)) {                     // Si la requête contient les résultats ...
    while ($row = mysqli_fetch_array($top_res)) {
                       // Boucle à travers chaque ligne donnée
        
 
        $menu_block .= "<li><a href='$row[top_level_url]'>".$row[top_level_name]."</a>";



EDIT : Ajout des balises de code.

Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

7 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    1 - Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    2 - Ton souci se trouve donc au niveau de la ligne :
     $menu_block .= "<li><a href='$row[top_level_url]'>".$row[top_level_name]."</a>";
    ??

    Si oui...

    écrit avec des IF (de façon plus classique...)
    if( isset($row['top_level_url'])){
     $URL =$row['top_level_url'] ;
    }else{
     $URL ='http://site/index.php' ;
    }
     $menu_block .= "<li><a href='".$URL."'>".$row['top_level_name']."</a>";
    


    Ce qui revient à faire (en écriture Ternaire) :
    $URL = isset($row['top_level_url']) ? $row['top_level_url'] : 'http://site/index.php' ;
     $menu_block .= "<li><a href='".$URL."'>".$row['top_level_name']."</a>";
    


    Avant de poser une question, merci de lire la charte du site.
    Cordialement, Jordane
    0
  2. zippeur Messages postés 210 Statut Membre 1
     
    Oui exactement mon probable se trouve au niveau de cette ligne
    mais se que je veux c'est pas exactement ça,
    je 'explique:
    quand je survole un lien qui mène a une page par rapport a (url = id ) de la page ça me donne ça (site/index.php?pg=pages&id=2)
    quand le lien n'a aucun chemin le id url n'es pas acheminer je veux que ça me donne ça
    (site/index.php#)
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Je ne comprend pas....

      1-Que contient la variable $row['top_level_url'] ??
      (donnes quelques exemples)

      2-As tu testé mon code ?
      Qu'est ce qui ne va pas avec ?
      0
  3. zippeur Messages postés 210 Statut Membre 1
     
    avec ton code ça donne ça:
    si le lien existe ça donne ça
    http://site/2
    se que je veux moi c'est
    http://site/index.php?pg=pages&id=2

    s'il est vide ça donne ça
    http://site/index.php

    if( isset($row['top_level_url'])){
     $URL =$row['top_level_url'] ;
    }else{
     $URL ='http://site/index.php' ;
    }
     $menu_block .= "<li><a href='".$URL."'>".$row['top_level_name']."</a>";
    
    0
  4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Donc.. tu veux.. si $row['top_level_url'] existe
    récupérer la valeur qui se trouve après le dernier SLASH .. pour l'ajouter à l'URL :
    http://site/index.php?pg=pages&id=


    Donc :

    if( isset($row['top_level_url'])){
      $urlTmp = "http://site/2";
      $arrTmp = explode('/',$urlTmp);
      $id = $arrTmp[count($arrTmp)-1];
      if($id){ 
        $URL = "http://site/index.php?pg=pages&id=".$id;
      }else{
         $URL ='http://site/index.php' ;
      }
    }else{
     $URL ='http://site/index.php' ;
    }
     $menu_block .= "<li><a href='".$URL."'>".$row['top_level_name']."</a>";
    
    

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. zippeur Messages postés 210 Statut Membre 1
     
    good jobbbbbbbbbb Merci
    0
  7. zippeur Messages postés 210 Statut Membre 1
     
    opps un léger problème
    le id de URL ne change pas!!
    c'est du a
    if( isset($row['top_level_url'])){
    $urlTmp = "http://site/1";

    ----------------------------------
    $urlTmp = "http://site/1"; 1=$id
    $urlTmp = "[http://site/$row['top_level_url
    en gros le id change mais sur mon site le id de page ne change pas il reste sur 1! ;(
    0
  8. zippeur Messages postés 210 Statut Membre 1
     
    c'est bon j'ai trouvé
    if( isset($row['top_level_url'])){ $urlTmp =($row['top_level_url']);
    0